UNPKG

verdaccio-memory

Version:

Storage implementation in memory

101 lines (99 loc) 3.5 kB
"use strict"; 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