@verdaccio/types
Version:
verdaccio types definitions
106 lines (105 loc) • 4.59 kB
TypeScript
/// <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 {};