verdaccio-memory
Version:
Storage implementation in memory
48 lines (47 loc) • 2.34 kB
TypeScript
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>;