@dapplets/dapplet-extension
Version:
The Bridge to the Augmented Web.
74 lines (73 loc) • 2.5 kB
TypeScript
import { Subject } from 'rxjs';
import VersionInfo from '../background/models/versionInfo';
import { JsonRpc } from '../common/jsonrpc';
import { BaseEvent, DefaultConfig, SchemaConfig } from '../common/types';
import Core from './core';
type RegistriedModule = {
manifest: VersionInfo;
clazz: any;
instance?: any;
order: number;
contextIds: string[];
constructorDependencies: string[];
instancedPropertyDependencies: {
[name: string]: any;
};
instancedConstructorDeps: any[];
activateMethodsDependencies: string[];
instancedActivateMethodsDependencies: any[];
defaultConfig?: DefaultConfig;
schemaConfig?: SchemaConfig;
onActionHandler?: Function;
onHomeHandler?: Function;
onShareLinkHandler?: Function;
onWalletsUpdateHandler?: Function;
onConnectedAccountsUpdateHandler?: Function;
};
export declare const widgets: any[];
export declare class Injector {
core: Core;
private eventStream;
private jsonrpc;
private env?;
availableContextIds: string[];
registry: RegistriedModule[];
private _dynamicAdapter;
private _iframeContainer;
constructor(core: Core, eventStream: Subject<BaseEvent>, jsonrpc: JsonRpc, env?: {
shareLinkPayload: {
moduleId: string;
payload: any;
isAllOk: boolean;
};
});
loadModules(modules: {
name: string;
branch: string;
version: string;
order: number;
contextIds: string[];
}[]): Promise<void>;
unloadModules(modules: {
name: string;
branch: string;
version: string;
}[]): Promise<void>;
openDappletAction(moduleName: string): Promise<void>;
openDappletHome(moduleName: string): Promise<void>;
sendShareLinkData(moduleName: string, data: any): Promise<void>;
executeWalletsUpdateHandler(): Promise<void>;
executeConnectedAccountsUpdateHandler(): Promise<void>;
setActionHandler(moduleName: string, handler: Function): void;
setHomeHandler(moduleName: string, handler: Function): void;
setShareLinkHandler(moduleName: string, handler: Function): void;
setWalletsUpdateHandler(moduleName: string, handler: Function): void;
setConnectedAccountsUpdate(moduleName: string, handler: Function): void;
dispose(): Promise<void>;
private _processModules;
private _setContextActivivty;
private _getDependency;
private _proxifyModule;
private _registerModule;
}
export {};