@gluestack/glue-plugin-sdk
Version:
Gluestack Plugin SDK Manager
59 lines (50 loc) • 1.72 kB
text/typescript
import IApp from "@gluestack/framework/types/app/interface/IApp";
import IPlugin from "@gluestack/framework/types/plugin/interface/IPlugin";
import IInstance from "@gluestack/framework/types/plugin/interface/IInstance";
import ILifeCycle from "@gluestack/framework/types/plugin/interface/ILifeCycle";
import { PluginInstanceContainerController } from "./PluginInstanceContainerController";
import IContainerController from "@gluestack/framework/types/plugin/interface/IContainerController";
import IHasContainerController from "@gluestack/framework/types/plugin/interface/IHasContainerController";
import IGlueStorePlugin from "@gluestack/framework/types/store/interface/IGluePluginStore";
export class PluginInstance implements IInstance, IHasContainerController, ILifeCycle
{
app: IApp;
name: string;
callerPlugin: IPlugin;
containerController: IContainerController;
isOfTypeInstance: boolean = false;
gluePluginStore: IGlueStorePlugin;
installationPath: string;
constructor(
app: IApp,
callerPlugin: IPlugin,
name: string,
gluePluginStore: IGlueStorePlugin,
installationPath: string,
) {
this.app = app;
this.name = name;
this.callerPlugin = callerPlugin;
this.gluePluginStore = gluePluginStore;
this.installationPath = installationPath;
this.containerController = new PluginInstanceContainerController(app, this);
}
init() {
//
}
destroy() {
//
}
getName(): string {
return this.name;
}
getCallerPlugin(): IPlugin {
return this.callerPlugin;
}
getInstallationPath(): string {
return this.installationPath;
}
getContainerController(): IContainerController {
return this.containerController;
}
}