@neo-one/server-plugin
Version:
NEO•ONE Server plugin API.
27 lines (26 loc) • 1.48 kB
TypeScript
import { Observable } from 'rxjs';
import { CLIOption, CRUDBase } from './CRUDBase';
import { ResourceType } from './ResourceType';
import { BaseResource, BaseResourceOptions, Client, InteractiveCLI } from './types';
export interface ExecCLIOptions<ResourceOptions extends BaseResourceOptions> {
readonly cli: InteractiveCLI;
readonly options: ResourceOptions;
}
export interface GetResources$Options<ResourceOptions extends BaseResourceOptions> {
readonly client: Client;
readonly options: ResourceOptions;
}
export interface GetCRUDOptions<Resource extends BaseResource, ResourceOptions extends BaseResourceOptions> {
readonly resourceType: ResourceType<Resource, ResourceOptions>;
readonly help?: string;
readonly aliases?: readonly string[];
readonly options?: readonly CLIOption[];
readonly autocomplete?: readonly string[];
readonly hidden?: boolean;
}
export declare class GetCRUD<Resource extends BaseResource = BaseResource, ResourceOptions extends BaseResourceOptions = BaseResourceOptions> extends CRUDBase<Resource, ResourceOptions> {
constructor({ resourceType, help, aliases, options, autocomplete, hidden, }: GetCRUDOptions<Resource, ResourceOptions>);
preExecCLI(_options: ExecCLIOptions<ResourceOptions>): Promise<void>;
postExecCLI(_options: ExecCLIOptions<ResourceOptions>): Promise<void>;
getResources$({ client, options }: GetResources$Options<ResourceOptions>): Observable<readonly Resource[]>;
}