vike
Version:
The Framework *You* Control - Next.js & Nuxt alternative for unprecedented flexibility and dependability.
65 lines (64 loc) • 2.61 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getConfigDefinedAt = getConfigDefinedAt;
exports.getConfigDefinedAtOptional = getConfigDefinedAtOptional;
exports.getDefinedAtString = getDefinedAtString;
exports.getDefinedByString = getDefinedByString;
const utils_js_1 = require("../utils.js");
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
const getExportPath_js_1 = require("./getExportPath.js");
function getConfigDefinedAt(sentenceBegin, configName, definedAtData) {
return `${begin(sentenceBegin, configName)} at ${getDefinedAtString(definedAtData, configName)}`;
}
function getConfigDefinedAtOptional(sentenceBegin, configName, definedAtData) {
if (!definedAtData) {
return `${begin(sentenceBegin, configName)} internally`;
}
else {
return `${begin(sentenceBegin, configName)} at ${getDefinedAtString(definedAtData, configName)}`;
}
}
function begin(sentenceBegin, configName) {
return `${sentenceBegin} ${picocolors_1.default.cyan(configName)} defined`;
}
function getDefinedAtString(definedAtData, configName) {
let files;
if ((0, utils_js_1.isArray)(definedAtData)) {
files = definedAtData;
}
else {
files = [definedAtData];
}
(0, utils_js_1.assert)(files.length >= 1);
const definedAtString = files
.map((definedAt) => {
if (definedAt.definedBy)
return getDefinedByString(definedAt, configName);
const { filePathToShowToUser, fileExportPathToShowToUser } = definedAt;
let s = filePathToShowToUser;
const exportPath = (0, getExportPath_js_1.getExportPath)(fileExportPathToShowToUser, configName);
if (exportPath) {
s = `${s} > ${picocolors_1.default.cyan(exportPath)}`;
}
return s;
})
.join(' / ');
return definedAtString;
}
function getDefinedByString(definedAt, configName) {
if (definedAt.definedBy === 'api') {
return `API call ${picocolors_1.default.cyan(`${definedAt.operation}({ vikeConfig: { ${configName} } })`)}`;
}
const { definedBy } = definedAt;
if (definedBy === 'cli') {
return `CLI option ${picocolors_1.default.cyan(`--${configName}`)}`;
}
if (definedBy === 'env') {
return `environment variable ${picocolors_1.default.cyan(`VIKE_CONFIG="{${configName}}"`)}`;
}
(0, utils_js_1.checkType)(definedBy);
(0, utils_js_1.assert)(false);
}