verdaccio-memory
Version:
Storage implementation in memory
79 lines (78 loc) • 2.3 kB
JavaScript
const require_memory_handler = require("./memory-handler.js");
let _verdaccio_core = require("@verdaccio/core");
//#region src/local-memory.ts
var DEFAULT_LIMIT = 1e3;
var LocalMemory = class {
path;
limit;
logger;
data;
config;
constructor(config, options) {
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(/* @__PURE__ */ new Error("Storage memory has reached limit of limit packages"));
}
}
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 require_memory_handler.default(packageInfo, this.data.files, this.logger);
}
_createEmtpyDatabase() {
return {
list: [],
files: {},
secret: ""
};
}
saveToken(_token) {
this.logger.warn("[verdaccio/memory][saveToken] save token has not been implemented yet");
return Promise.reject(_verdaccio_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(_verdaccio_core.errorUtils.getServiceUnavailable("method not implemented"));
}
readTokens(_filter) {
this.logger.warn("[verdaccio/memory][readTokens] read tokens has not been implemented yet ");
return Promise.reject(_verdaccio_core.errorUtils.getServiceUnavailable("method not implemented"));
}
};
//#endregion
exports.default = LocalMemory;
//# sourceMappingURL=local-memory.js.map