verdaccio-memory
Version:
Storage implementation in memory
101 lines (99 loc) • 3.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _core = require("@verdaccio/core");
var _memoryHandler = _interopRequireDefault(require("./memory-handler"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
const DEFAULT_LIMIT = 1000;
class LocalMemory {
constructor(config, options) {
_defineProperty(this, "path", void 0);
_defineProperty(this, "limit", void 0);
_defineProperty(this, "logger", void 0);
_defineProperty(this, "data", void 0);
_defineProperty(this, "config", void 0);
this.config = config;
this.limit = config.limit || DEFAULT_LIMIT;
this.logger = options.logger;
this.data = this._createEmtpyDatabase();
this.path = '/';
}
getSecret() {
return Promise.resolve(this.data.secret);
}
setSecret(secret) {
return new Promise(resolve => {
this.data.secret = secret;
resolve(null);
});
}
add(name, cb) {
const {
list
} = this.data;
if (list.length < this.limit) {
if (list.indexOf(name) === -1) {
list.push(name);
}
cb(null);
} else {
this.logger.info({
limit: this.limit
}, 'Storage memory has reached limit of @{limit} packages');
cb(new Error('Storage memory has reached limit of limit packages'));
}
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
search(onPackage, onEnd, validateName) {
this.logger.warn('[verdaccio/memory]: search method not implemented, PR is welcome');
onEnd();
}
remove(name, cb) {
const {
list
} = this.data;
const item = list.indexOf(name);
if (item !== -1) {
list.splice(item, 1);
}
cb(null);
}
get(cb) {
cb(null, this.data.list);
}
getPackageStorage(packageInfo) {
return new _memoryHandler.default(packageInfo, this.data.files, this.logger);
}
_createEmtpyDatabase() {
const list = [];
const files = {};
const emptyDatabase = {
list,
files,
secret: ''
};
return emptyDatabase;
}
saveToken(token) {
this.logger.warn('[verdaccio/memory][saveToken] save token has not been implemented yet');
return Promise.reject(_core.errorUtils.getServiceUnavailable('method not implemented'));
}
deleteToken(user, tokenKey) {
this.logger.warn({
tokenKey,
user
}, '[verdaccio/memory][deleteToken] delete token has not been implemented yet @{user}');
return Promise.reject(_core.errorUtils.getServiceUnavailable('method not implemented'));
}
readTokens(filter) {
this.logger.warn('[verdaccio/memory][readTokens] read tokens has not been implemented yet ');
return Promise.reject(_core.errorUtils.getServiceUnavailable('method not implemented'));
}
}
var _default = exports.default = LocalMemory;
//# sourceMappingURL=local-memory.js.map