UNPKG

@buurman/sdk

Version:

The buurman SDK

48 lines 1.92 kB
export interface Task<TOptions extends TaskOptions> { npmPackage: string; name: string; description: string; category: TaskCategory; tags: string[]; options: TaskOptionMap<TOptions>; apply(options: TOptions): Promise<void>; isInstalled(): Promise<boolean> | boolean; isSupported(): Promise<boolean> | boolean; } export interface Integration<TOptions extends TaskOptions> extends Task<TOptions> { integrates: string[]; } export declare enum TaskCategory { UNKNOWN = "UNKNOWN", CI = "CI", TESTING = "TESTING", TOOLING = "TOOLING", BUILD = "BUILD", LIBRARY = "LIBRARY", DOCUMENTATION = "DOCUMENTATION", GENERATOR = "GENERATOR", VCS = "VCS" } export declare type TaskOptions = { [name: string]: TaskOptionPrimitiveType; }; export declare type TaskOptionPrimitiveType = string | number | boolean | object | Array<any>; export declare enum TaskOptionType { STRING = "STRING", BOOLEAN = "BOOLEAN", NUMBER = "NUMBER", OBJECT = "OBJECT", ARRAY = "ARRAY" } export declare type TaskOptionMap<TOptions extends TaskOptions> = { [P in keyof TOptions]: TaskOption<P, TOptions>; }; export declare type getTaskOptionType<TPrimitive extends TaskOptionPrimitiveType> = TPrimitive extends string ? TaskOptionType.STRING : TPrimitive extends number ? TaskOptionType.NUMBER : TPrimitive extends boolean ? TaskOptionType.BOOLEAN : TPrimitive extends Array<any> ? TaskOptionType.ARRAY : TPrimitive extends object ? TaskOptionType.OBJECT : unknown; export interface TaskOption<TKey extends keyof TOptions, TOptions extends TaskOptions> { name: TKey; type: getTaskOptionType<TOptions[TKey]>; required: boolean; defaultValue?: TOptions[TKey]; validate(value: TOptions[TKey], options: TOptions): Promise<boolean | string> | boolean | string; } //# sourceMappingURL=Task.d.ts.map