UNPKG

@verdaccio/types

Version:

verdaccio types definitions

106 lines (105 loc) 4.59 kB
/// <reference types="node" /> import { PassThrough } from 'stream'; import { Callback, CallbackAction, StringValue } from '../commons'; import { Config, Logger } from '../configuration'; import { MergeTags, Package, Token, Version } from '../manifest'; import { IPlugin } from './commons'; export declare class IUploadTarball extends PassThrough { abort(): void; done(): void; } export declare class IReadTarball extends PassThrough { abort(): void; } export declare type StorageList = string[]; export interface LocalStorage { list: any; secret: string; } export interface ILocalStorage { add(name: string): void; remove(name: string): void; get(): StorageList; sync(): void; } interface TarballActions { addTarball(name: string, filename: string): IUploadTarball; getTarball(name: string, filename: string): IReadTarball; removeTarball(name: string, filename: string, revision: string, callback: Callback): void; } interface StoragePackageActions extends TarballActions { addVersion(name: string, version: string, metadata: Version, tag: StringValue, callback: Callback): void; mergeTags(name: string, tags: MergeTags, callback: Callback): void; removePackage(name: string, callback: Callback): void; changePackage(name: string, metadata: Package, revision: string, callback: Callback): void; } export interface IStorageManager<T> extends StoragePackageActions { config: T & Config; logger: Logger; init(config: T & Config, filters: any): Promise<any>; addPackage(name: string, metadata: any, callback: Callback): Promise<any>; getPackage(options: any): void; search(startkey: string, options: any): IReadTarball; getLocalDatabase(callback: Callback): void; } export interface IBasicStorage<T> extends StoragePackageActions { addPackage(name: string, info: Package, callback: Callback): void; updateVersions(name: string, packageInfo: Package, callback: Callback): void; getPackageMetadata(name: string, callback: Callback): void; search(startKey: string, options: any): IReadTarball; getSecret(config: T & Config): Promise<any>; } export interface TokenFilter { user: string; } export interface ITokenActions { saveToken(token: Token): Promise<any>; deleteToken(user: string, tokenKey: string): Promise<any>; readTokens(filter: TokenFilter): Promise<Token[]>; } /** * This method expect return a Package object * eg: * { * name: string; * time: number; * ... and other props * } * * The `cb` callback object will be executed if: * - it might return object (truly) * - it might reutrn null */ export declare type onSearchPackage = (item: Package, cb: CallbackAction) => void; export declare type onEndSearchPackage = (error?: any) => void; export declare type onValidatePackage = (name: string) => boolean; export declare type StorageUpdateCallback = (data: Package, cb: CallbackAction) => void; export declare type StorageWriteCallback = (name: string, json: Package, callback: Callback) => void; export declare type PackageTransformer = (pkg: Package) => Package; export declare type ReadPackageCallback = (err: any | null, data?: Package) => void; export interface ILocalPackageManager { logger: Logger; writeTarball(pkgName: string): IUploadTarball; readTarball(pkgName: string): IReadTarball; 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 declare type IPackageStorage = ILocalPackageManager | void; export declare type IPluginStorage<T> = ILocalData<T>; export declare 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 {};