UNPKG

@gluestack-v2/framework-cli

Version:

Gluestack V2 Framework CLI

101 lines (100 loc) 4.7 kB
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", "lodash", "../print", "../getPlugin", "../isGluePackage", "../file"], factory); } })(function (require, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getBottomToTopPluginTree = exports.getTopToBottomPluginTree = exports.getPluginTree = exports.writePlugin = void 0; const lodash_1 = require("lodash"); const print_1 = require("../print"); const getPlugin_1 = __importDefault(require("../getPlugin")); const isGluePackage_1 = __importDefault(require("../isGluePackage")); const file_1 = require("../file"); const writePlugin = (pluginFilePath, pluginName, plugin) => __awaiter(void 0, void 0, void 0, function* () { let data = yield (0, file_1.readFile)(pluginFilePath); if (!data) { (0, print_1.error)('.glue/internals plugins file is corrupted.'); process.exit(0); } if (!data[pluginName]) { data[pluginName] = { package: pluginName, }; // write plugins in file yield (0, file_1.writeFile)(pluginFilePath, JSON.stringify(data, null, 2)); } }); exports.writePlugin = writePlugin; const getPluginTree = (app, path, depth = 0, tree = {}) => __awaiter(void 0, void 0, void 0, function* () { let key = depth ? 'peerDependencies' : 'dependencies'; const pluginFilePath = `${path}/package.json`; const data = yield require(pluginFilePath); if (!data[key] || (0, lodash_1.isEmpty)(data[key])) { return null; } const plugins = Object.keys(data[key]).filter((_package) => { if ((0, isGluePackage_1.default)(_package)) return _package; }); if (!plugins || !plugins.length) { return null; } for (const plugin of plugins) { tree[plugin] = { plugin: yield (0, getPlugin_1.default)(app, plugin, plugin), dependencies: yield (0, exports.getPluginTree)(app, plugin, ++depth), }; } return tree; }); exports.getPluginTree = getPluginTree; const getTopToBottomPluginTree = (app, path) => __awaiter(void 0, void 0, void 0, function* () { const tree = yield (0, exports.getPluginTree)(app, path); function recursivelyJoinArray(tree, arr) { if (tree && !(0, lodash_1.isEmpty)(tree)) { Object.keys(tree).forEach((key) => { if (tree[key].dependencies) { recursivelyJoinArray(tree[key].dependencies, arr); } }); Object.keys(tree).forEach((key) => { if (tree[key].plugin) { const exists = arr.some((obj) => obj.key === key); if (!exists) { arr.push({ key: key, plugin: tree[key].plugin, }); } } }); } return arr; } const arr = []; return recursivelyJoinArray(tree, arr); }); exports.getTopToBottomPluginTree = getTopToBottomPluginTree; const getBottomToTopPluginTree = (app, path) => __awaiter(void 0, void 0, void 0, function* () { const array = yield (0, exports.getTopToBottomPluginTree)(app, path); return array.reverse(); }); exports.getBottomToTopPluginTree = getBottomToTopPluginTree; });