@alitajs/layout
Version:
101 lines (81 loc) • 2.5 kB
JavaScript
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;
;