UNPKG

@foxpage/foxpage-node-sdk

Version:

foxpage node sdk

57 lines (56 loc) 2.03 kB
"use strict"; var __rest = (this && this.__rest) || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.formatePageWithModules = exports.getModuleDSL = void 0; const foxpage_core_1 = require("@foxpage/foxpage-core"); /** * get module dsl * @param dsl origin parsed dsl * @param moduleIds module ids * @returns module dsl */ function getModuleDSL(dsl, moduleIds) { if (moduleIds.length === 0) { return dsl; } const _dsl = []; moduleIds.forEach(id => { const node = foxpage_core_1.structure.findStructureById(dsl, id); if (node) { _dsl.push(node); } }); return _dsl.length > 0 ? _dsl : undefined; } exports.getModuleDSL = getModuleDSL; /** * formate page with modules * @param page * @param ctx * @returns */ function formatePageWithModules(page, ctx) { const { moduleIds } = ctx; const { schemas = [] } = page, rest = __rest(page, ["schemas"]); // TODO: entity page component type is react.component const pageNode = schemas.find(item => item.name === 'page' && item.type === 'dsl.template'); if (!pageNode) { throw new Error('Page node not valid.'); } const modules = getModuleDSL(schemas, moduleIds || []); const { props, children } = pageNode, others = __rest(pageNode, ["props", "children"]); const _pageNode = Object.assign({ props: {}, children: modules }, others); const _schemas = [_pageNode]; return Object.assign(Object.assign({}, rest), { schemas: _schemas }); } exports.formatePageWithModules = formatePageWithModules;