UNPKG

@alitajs/layout

Version:
101 lines (81 loc) 2.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; function _umi() { const data = require("umi"); _umi = function _umi() { return data; }; return data; } function _path() { const data = require("path"); _path = function _path() { return data; }; return data; } function _fs() { const data = require("fs"); _fs = function _fs() { return data; }; return data; } var _getLayoutContent = _interopRequireDefault(require("./utils/getLayoutContent")); var _getLayout = _interopRequireDefault(require("./utils/getLayout")); var _getModelContent = _interopRequireDefault(require("./utils/getModelContent")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const DIR_NAME = 'alita-layout'; const MODEL_NAME = 'layoutState'; const RELATIVE_MODEL = (0, _path().join)(DIR_NAME, MODEL_NAME); const RELATIVE_MODEL_PATH = `${RELATIVE_MODEL}.ts`; var _default = api => { if (!api.userConfig.mobileLayout) return; const isMicroApp = api.userConfig.appType === 'micro'; api.describe({ key: 'mobileLayout', config: { default: {}, schema(joi) { return joi.boolean(); }, onChange: api.ConfigChangeType.regenerateTmpFiles } }); // 注册runtime配置 api.addRuntimePluginKey(() => 'mobileLayout'); api.onGenerateFiles(() => { api.writeTmpFile({ path: (0, _path().join)(DIR_NAME, 'Layout.tsx'), content: (0, _getLayout.default)() }); api.writeTmpFile({ path: (0, _path().join)(DIR_NAME, 'AlitaLayout.tsx'), content: (0, _getLayoutContent.default)(_umi().utils.winPath((0, _path().join)(api.paths.absTmpPath || '', DIR_NAME, 'Layout.tsx')), !!api.userConfig.keepalive, isMicroApp) }); api.writeTmpFile({ path: RELATIVE_MODEL_PATH, content: (0, _getModelContent.default)() }); const exportsTpl = (0, _fs().readFileSync)((0, _path().join)(__dirname, 'exports.tpl'), 'utf-8'); api.writeTmpFile({ path: 'alita-layout/exports.ts', content: exportsTpl }); }); api.modifyRoutes(routes => [{ path: '/', component: _umi().utils.winPath((0, _path().join)(api.paths.absTmpPath || '', DIR_NAME, 'AlitaLayout.tsx')), routes }]); api.addUmiExports(() => [{ exportAll: true, source: '../alita-layout/exports' }, { exportAll: true, source: '@alitajs/alita-layout' }]); }; exports.default = _default;