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