UNPKG

@neo-one/server-plugin

Version:

NEO•ONE Server plugin API.

36 lines (35 loc) 1.89 kB
import { CLIOption, CRUDBase, NamesIn } from './CRUDBase'; import { ResourceType } from './ResourceType'; import { BaseResource, BaseResourceOptions, InteractiveCLI } from './types'; export interface ExecCLIOptions<ResourceOptions extends BaseResourceOptions> { readonly name: string; readonly cli: InteractiveCLI; readonly options: ResourceOptions; } export interface GetCLIAutocompleteOptions { readonly cli: InteractiveCLI; } export interface CRUDResourceOptions<Resource extends BaseResource, ResourceOptions extends BaseResourceOptions> { readonly name: string; readonly names?: NamesIn; readonly resourceType: ResourceType<Resource, ResourceOptions>; readonly help: string; readonly aliases?: readonly string[]; readonly extraArgs?: readonly string[]; readonly options?: readonly CLIOption[]; readonly autocomplete?: readonly string[]; readonly hidden?: boolean; } export interface GetCLINameOptions<ResourceOptions extends BaseResourceOptions> { readonly baseName: string; readonly cli: InteractiveCLI; readonly options: ResourceOptions; } export declare class CRUDResourceBase<Resource extends BaseResource = BaseResource, ResourceOptions extends BaseResourceOptions = BaseResourceOptions> extends CRUDBase<Resource, ResourceOptions> { constructor({ name, names, resourceType, help, aliases, extraArgs, options, autocomplete, hidden, }: CRUDResourceOptions<Resource, ResourceOptions>); getCLIName({ baseName }: GetCLINameOptions<ResourceOptions>): Promise<string>; getCLIAutocomplete(options: GetCLIAutocompleteOptions): Promise<readonly string[]>; getCLIAutocompleteResourceOptions({ cli }: GetCLIAutocompleteOptions): Promise<ResourceOptions>; preExecCLI(_options: ExecCLIOptions<ResourceOptions>): Promise<void>; postExecCLI(_options: ExecCLIOptions<ResourceOptions>): Promise<void>; }