80 lines
2.5 KiB
JavaScript
80 lines
2.5 KiB
JavaScript
|
"use strict";
|
||
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||
|
};
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.normalizeUniAppXAppPagesJson = void 0;
|
||
|
const path_1 = __importDefault(require("path"));
|
||
|
const shared_1 = require("@vue/shared");
|
||
|
const json_1 = require("./json");
|
||
|
const pages_1 = require("./pages");
|
||
|
const utils_1 = require("../utils");
|
||
|
function normalizeUniAppXAppPagesJson(jsonStr) {
|
||
|
const pagesJson = {
|
||
|
pages: [],
|
||
|
globalStyle: {},
|
||
|
};
|
||
|
let userPagesJson = {
|
||
|
pages: [],
|
||
|
globalStyle: {},
|
||
|
};
|
||
|
// preprocess
|
||
|
try {
|
||
|
userPagesJson = (0, json_1.parseJson)(jsonStr, true);
|
||
|
}
|
||
|
catch (e) {
|
||
|
console.error(`[vite] Error: pages.json parse failed.\n`, jsonStr, e);
|
||
|
}
|
||
|
// pages
|
||
|
(0, pages_1.validatePages)(userPagesJson, jsonStr);
|
||
|
userPagesJson.subPackages =
|
||
|
userPagesJson.subPackages || userPagesJson.subpackages;
|
||
|
// subPackages
|
||
|
if (userPagesJson.subPackages) {
|
||
|
userPagesJson.pages.push(...normalizeSubPackages(userPagesJson.subPackages));
|
||
|
}
|
||
|
pagesJson.pages = userPagesJson.pages;
|
||
|
// pageStyle
|
||
|
normalizePages(pagesJson.pages);
|
||
|
// globalStyle
|
||
|
pagesJson.globalStyle = normalizePageStyle(userPagesJson.globalStyle);
|
||
|
// tabBar
|
||
|
if (userPagesJson.tabBar) {
|
||
|
pagesJson.tabBar = userPagesJson.tabBar;
|
||
|
}
|
||
|
// condition
|
||
|
if (userPagesJson.condition) {
|
||
|
pagesJson.condition = userPagesJson.condition;
|
||
|
}
|
||
|
return pagesJson;
|
||
|
}
|
||
|
exports.normalizeUniAppXAppPagesJson = normalizeUniAppXAppPagesJson;
|
||
|
function normalizeSubPackages(subPackages) {
|
||
|
const pages = [];
|
||
|
if ((0, shared_1.isArray)(subPackages)) {
|
||
|
subPackages.forEach(({ root, pages: subPages }) => {
|
||
|
if (root && subPages.length) {
|
||
|
subPages.forEach((subPage) => {
|
||
|
subPage.path = (0, utils_1.normalizePath)(path_1.default.join(root, subPage.path));
|
||
|
subPage.style = subPage.style;
|
||
|
pages.push(subPage);
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
return pages;
|
||
|
}
|
||
|
function normalizePages(pages) {
|
||
|
pages.forEach((page) => {
|
||
|
page.style = normalizePageStyle(page.style);
|
||
|
});
|
||
|
}
|
||
|
function normalizePageStyle(pageStyle) {
|
||
|
if (pageStyle) {
|
||
|
(0, shared_1.extend)(pageStyle, pageStyle['app']);
|
||
|
(0, pages_1.removePlatformStyle)(pageStyle);
|
||
|
return pageStyle;
|
||
|
}
|
||
|
return {};
|
||
|
}
|