UNPKG

@neo-one/server-plugin

Version:

NEO•ONE Server plugin API.

46 lines (45 loc) 1.82 kB
import { ResourceType } from './ResourceType'; import { BaseResource, BaseResourceOptions, InteractiveCLI } from './types'; export interface CLIOption { readonly option: string; readonly description: string; } export interface NamesIn { readonly ing: string; readonly ingUpper: string; readonly ed: string; readonly edUpper: string; } export interface Names extends NamesIn { readonly lower: string; readonly upper: string; } export interface CRUDBaseOptions<Resource extends BaseResource = BaseResource, ResourceOptions extends BaseResourceOptions = BaseResourceOptions> { readonly name: string; readonly names?: NamesIn; readonly command: string; readonly resourceType: ResourceType<Resource, ResourceOptions>; readonly help: string; readonly aliases?: readonly string[]; readonly options?: readonly CLIOption[]; readonly autocomplete?: readonly string[]; readonly hidden?: boolean; } export interface GetCLIResourceOptions { readonly cli: InteractiveCLI; readonly args: any; readonly options: any; } export declare class CRUDBase<Resource extends BaseResource = BaseResource, ResourceOptions extends BaseResourceOptions = BaseResourceOptions> { readonly name: string; readonly names: Names; readonly command: string; readonly resourceType: ResourceType<Resource, ResourceOptions>; readonly help: string; readonly aliases: readonly string[]; readonly options: readonly CLIOption[]; readonly autocomplete: readonly string[]; readonly hidden: boolean; constructor({ name: nameIn, names: namesIn, command, resourceType, help, aliases, options, autocomplete, hidden, }: CRUDBaseOptions<Resource, ResourceOptions>); getCLIResourceOptions({ options }: GetCLIResourceOptions): Promise<ResourceOptions>; }