php-htx-cli
Version:
A cli to convert .htx (different components) files to .php
56 lines (55 loc) • 1.89 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.readConfig = exports.configFileLocation = void 0;
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
exports.configFileLocation = "./htx_config.json";
function fillConfiguration(defaults, value) {
const keys = Object.keys(defaults);
for (const key of keys) {
if (key in value) {
if (typeof (value[key]) == "object") {
defaults[key] = fillConfiguration(defaults[key], value[key]);
}
else {
defaults[key] = (typeof (value[key]) == "object") ?
fillConfiguration(defaults[key], value[key]) :
value[key];
}
}
}
return defaults;
}
function readConfig() {
const rootPath = process.cwd();
const configFilePath = path_1.default.join(rootPath, exports.configFileLocation);
if (fs_1.default.existsSync(configFilePath)) {
console.log(`Using '${exports.configFileLocation}' file for configuration`);
const fileContents = fs_1.default.readFileSync(configFilePath, 'utf8');
const customConfig = JSON.parse(fileContents);
const finalConfig = fillConfiguration(defaultConfig, customConfig);
return finalConfig;
}
console.log(`Using default config`);
return defaultConfig;
}
exports.readConfig = readConfig;
const defaultConfig = {
environment: "dev",
extension: {
src: "htx",
out: "php"
},
directory: {
src: "./src/pages",
out: "./out"
},
constant: {
variable: "htx_<component>_<uid>_<variable>",
props: "props"
}
};
exports.default = defaultConfig;