UNPKG

vike

Version:

The Framework *You* Control - Next.js & Nuxt alternative for unprecedented flexibility and dependability.

57 lines (56 loc) 2.34 kB
"use strict"; // TODO/v1-release: remove Object.defineProperty(exports, "__esModule", { value: true }); exports.getPageFileObject = getPageFileObject; const determinePageIdOld_js_1 = require("../determinePageIdOld.js"); const error_page_js_1 = require("../error-page.js"); const utils_js_1 = require("../utils.js"); const fileTypes_js_1 = require("./fileTypes.js"); function getPageFileObject(filePath) { const isRelevant = (pageId) => pageFile.pageId === pageId || (pageFile.isDefaultPageFile && (isRendererFilePath(pageFile.filePath) || isAncestorDefaultPage(pageId, pageFile.filePath))); const fileType = (0, fileTypes_js_1.determineFileType)(filePath); const isEnv = (env) => { (0, utils_js_1.assert)(fileType !== '.page.route'); // We can't determine `.page.route.js` if (env === 'CLIENT_ONLY') { return fileType === '.page.client' || fileType === '.css'; } if (env === 'SERVER_ONLY') { return fileType === '.page.server'; } if (env === 'CLIENT_AND_SERVER') { return fileType === '.page'; } (0, utils_js_1.assert)(false); }; const pageFile = { filePath, fileType, isEnv, isRelevant, isDefaultPageFile: isDefaultFilePath(filePath), isRendererPageFile: fileType !== '.css' && isDefaultFilePath(filePath) && isRendererFilePath(filePath), isErrorPageFile: (0, error_page_js_1.isErrorPageId)(filePath, false), pageId: (0, determinePageIdOld_js_1.determinePageIdOld)(filePath), }; return pageFile; } function isDefaultFilePath(filePath) { if ((0, error_page_js_1.isErrorPageId)(filePath, false)) { return false; } return filePath.includes('/_default'); } function isRendererFilePath(filePath) { return filePath.includes('/renderer/'); } function isAncestorDefaultPage(pageId, defaultPageFilePath) { (0, utils_js_1.assert)(!pageId.endsWith('/')); (0, utils_js_1.assert)(!defaultPageFilePath.endsWith('/')); (0, utils_js_1.assert)(isDefaultFilePath(defaultPageFilePath)); const defaultPageDir = (0, utils_js_1.slice)(defaultPageFilePath.split('/'), 0, -1) .filter((filePathSegment) => filePathSegment !== '_default') .join('/'); return pageId.startsWith(defaultPageDir); }