@neo-one/server-plugin
Version:
NEO•ONE Server plugin API.
45 lines (44 loc) • 2.02 kB
TypeScript
import { Observable } from 'rxjs';
import { CRUD } from './CRUD';
import { MasterResourceAdapter } from './MasterResourceAdapter';
import { Plugin } from './Plugin';
import { BaseResource, BaseResourceOptions, Binary, Client, DescribeTable, ListTable, PluginManager, PortAllocator } from './types';
export interface ResourceTypeOptions {
readonly plugin: Plugin;
readonly name: string;
readonly names: {
readonly capital: string;
readonly capitalPlural: string;
readonly lower: string;
readonly lowerPlural: string;
};
}
export interface MasterResourceAdapterOptions {
readonly pluginManager: PluginManager;
readonly dataPath: string;
readonly binary: Binary;
readonly portAllocator: PortAllocator;
}
export interface GetResource$Options<ResourceOptions extends BaseResourceOptions> {
readonly name: string;
readonly client: Client;
readonly options: ResourceOptions;
}
export declare class ResourceType<Resource extends BaseResource = BaseResource, ResourceOptions extends BaseResourceOptions = BaseResourceOptions> {
readonly plugin: Plugin;
readonly name: string;
readonly names: {
readonly capital: string;
readonly capitalPlural: string;
readonly lower: string;
readonly lowerPlural: string;
};
constructor({ plugin, name, names }: ResourceTypeOptions);
filterResources(resources: readonly Resource[], _options: ResourceOptions): readonly Resource[];
getResource$({ name, client, options, }: GetResource$Options<ResourceOptions>): Observable<Resource | undefined>;
getResource({ name, client, options, }: GetResource$Options<ResourceOptions>): Promise<Resource | undefined>;
createMasterResourceAdapter(_options: MasterResourceAdapterOptions): Promise<MasterResourceAdapter<Resource, ResourceOptions>>;
getCRUD(): CRUD<Resource, ResourceOptions>;
getListTable(resources: readonly Resource[]): ListTable;
getDescribeTable(resource: Resource): DescribeTable;
}