173 lines
16 KiB
JavaScript
173 lines
16 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.parse = exports.parseProfile = void 0;
|
|
const path = require("path");
|
|
const constants_1 = require("@plastichub/core/constants");
|
|
const read_1 = require("@plastichub/fs/read");
|
|
const exists_1 = require("@plastichub/fs/exists");
|
|
const primitives_1 = require("@plastichub/core/primitives");
|
|
const osr_commons_1 = require("@plastichub/osr-commons");
|
|
const _1 = require("./");
|
|
const lib_1 = require("./lib/");
|
|
const constants_2 = require("./constants");
|
|
const parseProfile = (profilePath, profile, options, rel) => {
|
|
var _a;
|
|
profilePath = path.resolve((0, osr_commons_1.resolve)(profilePath, false, profile.variables));
|
|
if (!(0, exists_1.sync)(profilePath)) {
|
|
_1.logger.warn(`Profile file not found: ${profilePath}`);
|
|
return;
|
|
}
|
|
const _profile = (0, read_1.sync)(profilePath, 'json') || { includes: [], variables: {} };
|
|
_profile.includes = _profile.includes || [];
|
|
_profile.variables = _profile.variables || {};
|
|
if (options.env && _profile.env && _profile.env[options.env] && _profile.env[options.env].includes) {
|
|
profile.includes = [
|
|
...profile.includes,
|
|
..._profile.includes,
|
|
..._profile.env[options.env].includes
|
|
];
|
|
}
|
|
else {
|
|
profile.includes = [
|
|
...profile.includes,
|
|
..._profile.includes
|
|
];
|
|
}
|
|
if (options.env && _profile.env && _profile.env[options.env] && _profile.env[options.env].variables) {
|
|
profile.variables = Object.assign(Object.assign(Object.assign({}, profile.variables), _profile.variables), _profile.env[options.env].variables);
|
|
}
|
|
for (const k in _profile.variables) {
|
|
if ((0, primitives_1.isString)(_profile.variables[k])) {
|
|
_profile.variables[k] = (0, _1.substitute)(false, _profile.variables[k], profile.variables);
|
|
}
|
|
}
|
|
profile.variables = Object.assign(Object.assign(Object.assign({}, profile.variables), _profile.variables), ((_a = _profile.env[options.env]) === null || _a === void 0 ? void 0 : _a.variables) || {});
|
|
for (const k in profile.variables) {
|
|
if ((0, primitives_1.isString)(profile.variables[k])) {
|
|
profile.variables[k] = (0, _1.substitute)(false, profile.variables[k], profile.variables);
|
|
}
|
|
}
|
|
profile.includes = Array.from(new Set(profile.includes));
|
|
profile.includes = [
|
|
...profile.includes.map((i) => {
|
|
if (!path.isAbsolute(i) && rel && !i.match(constants_1.REGEX_VAR)) {
|
|
return path.resolve(`${rel}/${i}`);
|
|
}
|
|
let ret = (0, osr_commons_1.resolve)(i, false, profile.variables);
|
|
ret = path.resolve((0, _1.substitute)(false, ret, profile.variables));
|
|
return ret;
|
|
})
|
|
];
|
|
profile.includes = profile.includes.filter((include) => include !== null &&
|
|
include !== '');
|
|
profile.includes = Array.from(new Set(profile.includes));
|
|
return profile;
|
|
};
|
|
exports.parseProfile = parseProfile;
|
|
const parse = (options, argv) => {
|
|
var _a;
|
|
for (const k in argv) {
|
|
if (!(k in options.variables)
|
|
&& k !== '_'
|
|
&& k !== '$0'
|
|
&& k !== 'variables'
|
|
&& k !== 'source'
|
|
&& k !== 'language'
|
|
&& k !== 'envVariables'
|
|
&& k !== 'env-variables'
|
|
&& k !== 'format'
|
|
&& k !== 'profile'
|
|
&& k !== 'output'
|
|
&& k !== 'plugins'
|
|
&& k !== 'dry'
|
|
&& k !== 'stdout'
|
|
&& k !== 'alt'
|
|
&& k !== 'template'
|
|
&& k !== 'trace'
|
|
&& k !== 'string'
|
|
&& k !== 'bootstrap') {
|
|
options.variables[k] = argv[k];
|
|
}
|
|
}
|
|
const variables = Object.assign(Object.assign(Object.assign({}, osr_commons_1.DEFAULT_ROOTS), options.variables), { sourceLanguage: argv.sourceLanguage, targetLanguage: argv.targetLanguage, cwd: ((_a = options.variables) === null || _a === void 0 ? void 0 : _a.cwd) || options.cwd, trace: argv.trace });
|
|
(0, lib_1.resolveConfig)(variables);
|
|
const profile = { variables: Object.assign({}, variables), includes: [] };
|
|
const srcInfo = (0, osr_commons_1.pathInfo)(options.source);
|
|
if (argv.profile) {
|
|
if (typeof argv.profile === 'string') {
|
|
argv.profile = [argv.profile];
|
|
}
|
|
else if ((0, primitives_1.isArray)(argv.profile)) {
|
|
argv.profile = argv.profile;
|
|
}
|
|
else {
|
|
argv.profile = [];
|
|
}
|
|
}
|
|
if (options.source) {
|
|
if (srcInfo && srcInfo.FILES && srcInfo.FILES.length) {
|
|
options.srcInfo = srcInfo;
|
|
for (const key in srcInfo) {
|
|
if (Object.prototype.hasOwnProperty.call(srcInfo, key)) {
|
|
options.variables['SRC_' + key] = srcInfo[key];
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
options.source = path.resolve((0, _1.substitute)(options.alt, options.source, profile.variables));
|
|
}
|
|
}
|
|
if (argv.profile) {
|
|
argv.profile.forEach((p) => (0, exports.parseProfile)(p, profile, options));
|
|
}
|
|
if (srcInfo && srcInfo.FILES && srcInfo.FILES.length) {
|
|
options.srcInfo = srcInfo;
|
|
for (const key in srcInfo) {
|
|
if (Object.prototype.hasOwnProperty.call(srcInfo, key)) {
|
|
options.variables['SRC_' + key] = srcInfo[key];
|
|
}
|
|
}
|
|
srcInfo.FILES.forEach((f) => {
|
|
const srcParts = path.parse(f);
|
|
const profilePath = path.resolve(`${srcParts.dir}/${constants_2.PROFILE_FILE_NAME}`);
|
|
if ((0, exists_1.sync)(profilePath)) {
|
|
(0, exports.parseProfile)(profilePath, profile, options, srcParts.dir);
|
|
}
|
|
});
|
|
}
|
|
options.profile = profile;
|
|
if (options.plugins) {
|
|
options.plugins = options.plugins.map((p) => {
|
|
let dir = path.resolve((0, _1.substitute)(false, p, options.variables));
|
|
if ((0, exists_1.sync)(dir)) {
|
|
return dir;
|
|
}
|
|
});
|
|
}
|
|
if (options.output) {
|
|
const out = (0, _1.substitute)(options.alt, options.output, options.variables);
|
|
let targetInfo = (0, osr_commons_1.pathInfo)(out);
|
|
if (options.srcInfo && targetInfo) {
|
|
targetInfo.PATH = options.output;
|
|
for (const key in targetInfo) {
|
|
if (Object.prototype.hasOwnProperty.call(targetInfo, key)) {
|
|
options.variables['DST_' + key] = targetInfo[key];
|
|
}
|
|
}
|
|
options.targetInfo = targetInfo;
|
|
}
|
|
else {
|
|
options.output = path.resolve((0, _1.substitute)(options.alt, options.output || '', options.variables));
|
|
}
|
|
}
|
|
else {
|
|
options.stdout = true;
|
|
}
|
|
options.pathVariables = options.variables;
|
|
options.sourceLanguage = argv.sourceLanguage || 'en';
|
|
options.targetLanguage = argv.targetLanguage || 'en';
|
|
options.logLevel = argv.logLevel || 'warn';
|
|
return options;
|
|
};
|
|
exports.parse = parse;
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNyYy9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUE0QjtBQUU1QiwwREFBc0Q7QUFDdEQsOENBQWtEO0FBQ2xELGtEQUFzRDtBQUN0RCw0REFBK0Q7QUFDL0QseURBQW1GO0FBR25GLHlCQUF1QztBQUN2QyxnQ0FBc0M7QUFDdEMsMkNBQStDO0FBRXhDLE1BQU0sWUFBWSxHQUFHLENBQUMsV0FBbUIsRUFBRSxPQUFpQixFQUFFLE9BQWlCLEVBQUUsR0FBWSxFQUFFLEVBQUU7O0lBQ3ZHLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUEscUJBQU8sRUFBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFBO0lBQzFFLElBQUksQ0FBQyxJQUFBLGFBQU0sRUFBQyxXQUFxQixDQUFDLEVBQUU7UUFDbkMsU0FBTSxDQUFDLElBQUksQ0FBQywyQkFBMkIsV0FBVyxFQUFFLENBQUMsQ0FBQTtRQUNyRCxPQUFNO0tBQ047SUFDRCxNQUFNLFFBQVEsR0FBRyxJQUFBLFdBQUksRUFBQyxXQUFxQixFQUFFLE1BQU0sQ0FBUSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFjLENBQUE7SUFFMUcsUUFBUSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQTtJQUMzQyxRQUFRLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFBO0lBRTdDLElBQUksT0FBTyxDQUFDLEdBQUcsSUFBSSxRQUFRLENBQUMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRTtRQUNuRyxPQUFPLENB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
|