verdaccio-memory
Version:
Storage implementation in memory
1 lines • 4.92 kB
Source Map (JSON)
{"version":3,"file":"local-memory.mjs","names":[],"sources":["../src/local-memory.ts"],"sourcesContent":["import { errorUtils } from '@verdaccio/core';\nimport type { Callback, Config, Logger, Token, TokenFilter } from '@verdaccio/types';\n\nimport type { IPluginStorage, PluginOptions } from './legacy-plugin-api';\n\nimport type { DataHandler } from './memory-handler';\nimport MemoryHandler from './memory-handler';\n\nexport type ConfigMemory = Config & { limit?: number };\nexport interface MemoryLocalStorage {\n secret: string;\n list: string[];\n files: DataHandler;\n}\n\nconst DEFAULT_LIMIT = 1000;\nclass LocalMemory implements IPluginStorage<ConfigMemory> {\n private path: string;\n private limit: number;\n public logger: Logger;\n private data: MemoryLocalStorage;\n public config: ConfigMemory;\n\n public constructor(config: ConfigMemory, options: PluginOptions<ConfigMemory>) {\n this.config = config;\n this.limit = config.limit || DEFAULT_LIMIT;\n this.logger = options.logger;\n this.data = this._createEmtpyDatabase();\n this.path = '/';\n }\n\n public getSecret(): Promise<string> {\n return Promise.resolve(this.data.secret);\n }\n\n public setSecret(secret: string): Promise<string | null> {\n return new Promise((resolve): void => {\n this.data.secret = secret;\n resolve(null);\n });\n }\n\n public add(name: string, cb: Callback): void {\n const { list } = this.data;\n\n if (list.length < this.limit) {\n if (list.indexOf(name) === -1) {\n list.push(name);\n }\n cb(null);\n } else {\n this.logger.info(\n { limit: this.limit },\n 'Storage memory has reached limit of @{limit} packages'\n );\n cb(new Error('Storage memory has reached limit of limit packages'));\n }\n }\n\n public search(onPackage: Callback, onEnd: Callback, validateName: Function): void {\n void onPackage;\n void validateName;\n\n this.logger.warn('[verdaccio/memory]: search method not implemented, PR is welcome');\n onEnd();\n }\n\n public remove(name: string, cb: Callback): void {\n const { list } = this.data;\n const item = list.indexOf(name);\n\n if (item !== -1) {\n list.splice(item, 1);\n }\n\n cb(null);\n }\n\n public get(cb: Callback): void {\n cb(null, this.data.list);\n }\n\n public getPackageStorage(packageInfo: string): MemoryHandler {\n return new MemoryHandler(packageInfo, this.data.files, this.logger);\n }\n\n private _createEmtpyDatabase(): MemoryLocalStorage {\n const list: string[] = [];\n const files = {};\n const emptyDatabase = {\n list,\n files,\n secret: '',\n };\n\n return emptyDatabase;\n }\n\n public saveToken(_token: Token): Promise<void> {\n this.logger.warn('[verdaccio/memory][saveToken] save token has not been implemented yet');\n\n return Promise.reject(errorUtils.getServiceUnavailable('method not implemented'));\n }\n\n public deleteToken(user: string, tokenKey: string): Promise<void> {\n this.logger.warn(\n { tokenKey, user },\n '[verdaccio/memory][deleteToken] delete token has not been implemented yet @{user}'\n );\n\n return Promise.reject(errorUtils.getServiceUnavailable('method not implemented'));\n }\n\n public readTokens(_filter: TokenFilter): Promise<Token[]> {\n this.logger.warn('[verdaccio/memory][readTokens] read tokens has not been implemented yet ');\n\n return Promise.reject(errorUtils.getServiceUnavailable('method not implemented'));\n }\n}\n\nexport default LocalMemory;\n"],"mappings":";;;AAeA,IAAM,gBAAgB;AACtB,IAAM,cAAN,MAA0D;CACxD;CACA;CACA;CACA;CACA;CAEA,YAAmB,QAAsB,SAAsC;EAC7E,KAAK,SAAS;EACd,KAAK,QAAQ,OAAO,SAAS;EAC7B,KAAK,SAAS,QAAQ;EACtB,KAAK,OAAO,KAAK,qBAAqB;EACtC,KAAK,OAAO;CACd;CAEA,YAAoC;EAClC,OAAO,QAAQ,QAAQ,KAAK,KAAK,MAAM;CACzC;CAEA,UAAiB,QAAwC;EACvD,OAAO,IAAI,SAAS,YAAkB;GACpC,KAAK,KAAK,SAAS;GACnB,QAAQ,IAAI;EACd,CAAC;CACH;CAEA,IAAW,MAAc,IAAoB;EAC3C,MAAM,EAAE,SAAS,KAAK;EAEtB,IAAI,KAAK,SAAS,KAAK,OAAO;GAC5B,IAAI,KAAK,QAAQ,IAAI,MAAM,IACzB,KAAK,KAAK,IAAI;GAEhB,GAAG,IAAI;EACT,OAAO;GACL,KAAK,OAAO,KACV,EAAE,OAAO,KAAK,MAAM,GACpB,uDACF;GACA,mBAAG,IAAI,MAAM,oDAAoD,CAAC;EACpE;CACF;CAEA,OAAc,WAAqB,OAAiB,cAA8B;EAIhF,KAAK,OAAO,KAAK,kEAAkE;EACnF,MAAM;CACR;CAEA,OAAc,MAAc,IAAoB;EAC9C,MAAM,EAAE,SAAS,KAAK;EACtB,MAAM,OAAO,KAAK,QAAQ,IAAI;EAE9B,IAAI,SAAS,IACX,KAAK,OAAO,MAAM,CAAC;EAGrB,GAAG,IAAI;CACT;CAEA,IAAW,IAAoB;EAC7B,GAAG,MAAM,KAAK,KAAK,IAAI;CACzB;CAEA,kBAAyB,aAAoC;EAC3D,OAAO,IAAI,cAAc,aAAa,KAAK,KAAK,OAAO,KAAK,MAAM;CACpE;CAEA,uBAAmD;EASjD,OAAO;GALL,MAAA,CAAA;GACA,OAAA,CAAA;GACA,QAAQ;EAGH;CACT;CAEA,UAAiB,QAA8B;EAC7C,KAAK,OAAO,KAAK,uEAAuE;EAExF,OAAO,QAAQ,OAAO,WAAW,sBAAsB,wBAAwB,CAAC;CAClF;CAEA,YAAmB,MAAc,UAAiC;EAChE,KAAK,OAAO,KACV;GAAE;GAAU;EAAK,GACjB,mFACF;EAEA,OAAO,QAAQ,OAAO,WAAW,sBAAsB,wBAAwB,CAAC;CAClF;CAEA,WAAkB,SAAwC;EACxD,KAAK,OAAO,KAAK,0EAA0E;EAE3F,OAAO,QAAQ,OAAO,WAAW,sBAAsB,wBAAwB,CAAC;CAClF;AACF"}