mirror of
https://github.com/verdaccio/verdaccio.git
synced 2025-02-21 07:29:37 +01:00
refactor: use external local storage (first step to become a plugin)
This commit is contained in:
parent
e8389bcbd9
commit
9c5eec1ca5
@ -15,8 +15,10 @@
|
||||
"verdaccio": "./bin/verdaccio"
|
||||
},
|
||||
"dependencies": {
|
||||
"@verdaccio/file-locking": "0.0.3",
|
||||
"@verdaccio/streams": "0.0.2",
|
||||
"@verdaccio/file-locking": "^0.0.3",
|
||||
"@verdaccio/local-storage": "0.0.3",
|
||||
"@verdaccio/streams": "^0.0.2",
|
||||
"@verdaccio/types": "0.0.3",
|
||||
"JSONStream": "^1.1.1",
|
||||
"apache-md5": "^1.1.2",
|
||||
"async": "^2.0.1",
|
||||
|
@ -8,8 +8,8 @@ const semver = require('semver');
|
||||
const Stream = require('stream');
|
||||
|
||||
const Search = require('./search');
|
||||
const LocalStorage = require('./storage/local/local-storage');
|
||||
const Logger = require('./logger');
|
||||
const LocalStorage = require('@verdaccio/local-storage').LocalStorage;
|
||||
const MyStreams = require('@verdaccio/streams');
|
||||
const Proxy = require('./storage/up-storage');
|
||||
const Utils = require('./utils');
|
||||
@ -61,7 +61,7 @@ class Storage {
|
||||
*/
|
||||
const checkPackageLocal = () => {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.localStorage.getPackageMetadata(name, {}, (err, results) => {
|
||||
this.localStorage.getPackageMetadata(name, (err, results) => {
|
||||
if (!_.isNil(err) && err.status !== 404) {
|
||||
return reject(err);
|
||||
}
|
||||
@ -247,17 +247,17 @@ class Storage {
|
||||
// information about it, so fetching package info is unnecessary
|
||||
|
||||
// trying local first
|
||||
let rstream = self.localStorage.getTarball(name, filename);
|
||||
let localStream = self.localStorage.getTarball(name, filename);
|
||||
let is_open = false;
|
||||
rstream.on('error', function(err) {
|
||||
localStream.on('error', (err) => {
|
||||
if (is_open || err.status !== 404) {
|
||||
return readStream.emit('error', err);
|
||||
}
|
||||
|
||||
// local reported 404
|
||||
let err404 = err;
|
||||
rstream.abort();
|
||||
rstream = null; // gc
|
||||
localStream.abort();
|
||||
localStream = null; // gc
|
||||
self.localStorage.getPackageMetadata(name, (err, info) => {
|
||||
if (_.isNil(err) && info._distfiles && _.isNil(info._distfiles[filename]) === false) {
|
||||
// information about this file exists locally
|
||||
@ -276,12 +276,12 @@ class Storage {
|
||||
}
|
||||
});
|
||||
});
|
||||
rstream.on('content-length', function(v) {
|
||||
localStream.on('content-length', function(v) {
|
||||
readStream.emit('content-length', v);
|
||||
});
|
||||
rstream.on('open', function() {
|
||||
localStream.on('open', function() {
|
||||
is_open = true;
|
||||
rstream.pipe(readStream);
|
||||
localStream.pipe(readStream);
|
||||
});
|
||||
return readStream;
|
||||
|
||||
@ -371,7 +371,7 @@ class Storage {
|
||||
callback = options, options = {};
|
||||
}
|
||||
|
||||
this.localStorage.getPackageMetadata(name, options, (err, data) => {
|
||||
this.localStorage.getPackageMetadata(name, (err, data) => {
|
||||
if (err && (!err.status || err.status >= 500)) {
|
||||
// report internal errors right away
|
||||
return callback(err);
|
||||
@ -505,7 +505,6 @@ class Storage {
|
||||
let exists = false;
|
||||
const self = this;
|
||||
const upLinks = [];
|
||||
|
||||
if (_.isNil(packageInfo)) {
|
||||
exists = false;
|
||||
packageInfo = getDefaultMetadata(name);
|
||||
@ -584,7 +583,6 @@ class Storage {
|
||||
});
|
||||
}, (err, upLinksErrors) => {
|
||||
assert(!err && Array.isArray(upLinksErrors));
|
||||
|
||||
if (!exists) {
|
||||
return callback( Error[404]('no such package available')
|
||||
, null
|
||||
|
Loading…
Reference in New Issue
Block a user