nope-js-browser
Version:
NoPE Runtime for the Browser. For nodejs please use nope-js-node
72 lines (71 loc) • 2.8 kB
TypeScript
/**
* @author Martin Karkowski
* @email m.karkowski@zema.de
*/
import { ICallOptions, INopeCore, INopeEventEmitter } from "../types";
import { IEventOptions, IServiceOptions, INopeModuleDescription } from "../types/nope/nopeModule.interface";
import { INopeObservable } from "../types/nope/nopeObservable.interface";
import { INopePromise } from "../types/nope/nopePromise.interface";
import { NopeBaseModule } from "./BaseModule";
/**
* A Generic Wrapper
*
* @author M.Karkowski
* @export
* @class NopeGenericModule
* @extends {NopeBaseModule}
*/
export declare class NopeGenericWrapper extends NopeBaseModule {
protected _emitterFactory: () => INopeEventEmitter<any>;
protected _observableFactory: () => INopeObservable<any>;
protected _linkProperties: boolean;
protected _linkEvents: boolean;
private _type;
/**
*
* Return the Class Identifier.
*/
get type(): string;
/**
* Return the Class Identifier.
*/
set type(value: string);
dynamicInstanceMethods: {
[index: string]: <T>(...args: any[]) => INopePromise<T>;
};
dynamicInstanceProperties: {
[index: string]: INopeObservable<any>;
};
dynamicInstanceEvents: {
[index: string]: INopeEventEmitter<any>;
};
dynamicInstanceMethodsWithOptions: {
[index: string]: <T>(options: Partial<ICallOptions>, ...args: any[]) => INopePromise<T>;
};
protected _description: INopeModuleDescription;
/**
* Function, used to add the Attributes based on the Description.
*
* @param {INopeModuleDescription} description
* @param {('overwrite' | 'add')} [mode='overwrite']
* @memberof NopeGenericModule
*/
fromDescription(description: INopeModuleDescription, mode?: "overwrite" | "add"): Promise<void>;
/**
* Creates an instance of NopeGenericModule.
* @param {INopeDispatcher} _core
* @param {() => INopeObservable<any>} _observableFactory
* @memberof NopeGenericModule
*/
constructor(_core: INopeCore, _emitterFactory: () => INopeEventEmitter<any>, _observableFactory: () => INopeObservable<any>, _linkProperties?: boolean, _linkEvents?: boolean);
listMethods(): Promise<{
method: <T>(...args: any[]) => INopePromise<T, any>;
options: any;
}[]>;
registerProperty<T, S = T, G = T>(name: string, observable: INopeObservable<T, S, G>, options: IEventOptions): Promise<void>;
registerMethod(name: string, func: (...args: any[]) => Promise<any>, options: IServiceOptions): Promise<void>;
unregisterFunction(name: string): Promise<void>;
unregisterProperty(name: string): Promise<void>;
init(): Promise<void>;
dispose(): Promise<void>;
}