1
0
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:
Juan Picado @jotadeveloper 2017-08-13 10:11:18 +02:00 committed by juanpicado
parent e8389bcbd9
commit 9c5eec1ca5
2 changed files with 14 additions and 14 deletions

@ -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