UNPKG

verdaccio-memory

Version:

Storage implementation in memory

48 lines (47 loc) 2.34 kB
import type { ReadTarball, UploadTarball } from '@verdaccio/streams'; import type { Callback, CallbackAction, Config, Logger, Package, PackageTransformer, ReadPackageCallback, StorageUpdateCallback, StorageWriteCallback, Token, TokenFilter } from '@verdaccio/types'; /** * Legacy storage plugin API, previously provided by the removed * @verdaccio/legacy-types package. This plugin still implements the legacy * storage contract, so the interfaces live here now. */ export interface PluginOptions<T> { config: T & Config; logger: Logger; } export interface IPlugin<_T> { version?: string; } export interface ITokenActions { saveToken(token: Token): Promise<any>; deleteToken(user: string, tokenKey: string): Promise<any>; readTokens(filter: TokenFilter): Promise<Token[]>; } export type onSearchPackage = (item: Package, cb: CallbackAction) => void; export type onEndSearchPackage = (error?: any) => void; export type onValidatePackage = (name: string) => boolean; export interface ILocalPackageManager { logger: Logger; writeTarball(pkgName: string): UploadTarball; readTarball(pkgName: string): ReadTarball; readPackage(fileName: string, callback: ReadPackageCallback): void; createPackage(pkgName: string, value: Package, cb: CallbackAction): void; deletePackage(fileName: string, callback: CallbackAction): void; removePackage(callback: CallbackAction): void; updatePackage(pkgFileName: string, updateHandler: StorageUpdateCallback, onWrite: StorageWriteCallback, transformPackage: PackageTransformer, onEnd: CallbackAction): void; savePackage(fileName: string, json: Package, callback: CallbackAction): void; } export type IPackageStorage = ILocalPackageManager | void; export type IPackageStorageManager = ILocalPackageManager; export interface ILocalData<T> extends IPlugin<T>, ITokenActions { logger: Logger; config: T & Config; add(name: string, callback: Callback): void; remove(name: string, callback: Callback): void; get(callback: Callback): void; getSecret(): Promise<string>; setSecret(secret: string): Promise<any>; getPackageStorage(packageInfo: string): IPackageStorage; search(onPackage: onSearchPackage, onEnd: onEndSearchPackage, validateName: onValidatePackage): void; } export type IPluginStorage<T> = ILocalData<T>;