@neo-one/server-plugin
Version:
NEO•ONE Server plugin API.
36 lines (35 loc) • 1.89 kB
TypeScript
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>;
}