@gluestack-v2/glue-plugin-sdk
Version:
Gluestack V2 Service SDK Plugin
106 lines (105 loc) • 4.82 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
(function (factory) {
if (typeof module === "object" && typeof module.exports === "object") {
var v = factory(require, exports);
if (v !== undefined) module.exports = v;
}
else if (typeof define === "function" && define.amd) {
define(["require", "exports", "../package.json", "./PluginInstance", "@gluestack-v2/framework-cli/build/plugin/BaseGluestackPlugin", "@gluestack-v2/framework-cli/build/constants/gluestack.v2", "./helpers/create-config-package", "path"], factory);
}
})(function (require, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GlueStackPlugin = void 0;
// @ts-ignore
const package_json_1 = __importDefault(require("../package.json"));
const PluginInstance_1 = require("./PluginInstance");
const BaseGluestackPlugin_1 = __importDefault(require("@gluestack-v2/framework-cli/build/plugin/BaseGluestackPlugin"));
const gluestack_v2_1 = require("@gluestack-v2/framework-cli/build/constants/gluestack.v2");
const create_config_package_1 = require("./helpers/create-config-package");
const path_1 = require("path");
// Do not edit the name of this class
class GlueStackPlugin extends BaseGluestackPlugin_1.default {
getGeneratedSDKPaths() {
return this.generatedSDKPaths;
}
setGeneratedSDKPaths(paths) {
this.generatedSDKPaths.push(paths);
}
resetGeneratedSDKPaths() {
if (Array.isArray(this.generatedSDKPaths)) {
this.generatedSDKPaths.splice(0, this.generatedSDKPaths.length);
}
}
constructor(app, gluePluginStore) {
super(app, gluePluginStore);
this.type = 'devonly';
this.runningPlatforms = [];
this.generatedSDKPaths = [];
}
init() {
this.app.addEventListener('booting.web', (..._args) => {
this.gluePluginStore.set('message', 'Hello from function plugin');
});
}
destroy() {
//
}
getName() {
return package_json_1.default.name;
}
getVersion() {
return package_json_1.default.version;
}
getType() {
return this.type;
}
// getInstallationPath(target: string): string {
// return `./.glue/__generated__/packages/${target}/src/${target}`;
// }
getInternalFolderPath() {
return `${process.cwd()}/node_modules/${this.getName()}/internal`;
}
runPostInstall(instanceName, _target) {
return __awaiter(this, void 0, void 0, function* () {
const instance = yield this.app.createPluginInstance(this, instanceName, this.getTemplateFolderPath()
// target
);
if (!instance) {
return;
}
});
}
createInstance(key, gluePluginStore, installationPath) {
const instance = new PluginInstance_1.PluginInstance(this.app, this, key, gluePluginStore, installationPath !== null && installationPath !== void 0 ? installationPath : '');
this.instances.push(instance);
return instance;
}
getInstances() {
return this.instances;
}
getConfigPath() {
return (0, path_1.join)(process.cwd(), 'config');
}
getGeneratedConfigPath(packageName) {
return (0, path_1.join)(process.cwd(), gluestack_v2_1.GLUE_GENERATED_PACKAGES_PATH, `${packageName}-config`);
}
createConfigPackage(packageName) {
return __awaiter(this, void 0, void 0, function* () {
yield (0, create_config_package_1.createConfigPackageHelper)(packageName, this.getConfigPath(), this.getGeneratedConfigPath(packageName), this);
});
}
}
exports.GlueStackPlugin = GlueStackPlugin;
});