UNPKG

@neo-one/server-plugin

Version:

NEO•ONE Server plugin API.

45 lines (44 loc) 2.02 kB
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; }