kt-extendscript-builder
Version:
Vite based builder for transpile TypeScript to ExtendScript
62 lines (61 loc) • 2.23 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ConfigLoader = void 0;
const path_1 = __importDefault(require("path"));
const fs_1 = __importDefault(require("fs"));
const configs_json_1 = __importDefault(require("./configs.json"));
const options_1 = require("../options");
class ConfigLoader {
constructor() {
this._configurations = {};
this._configurations = this.parseConfig(configs_json_1.default);
}
load(configPath) {
if (!configPath) {
configPath = 'kt.config.json';
}
const absolutePath = path_1.default.resolve(process.cwd(), configPath);
let config = {};
if (!fs_1.default.existsSync(absolutePath)) {
console.warn(`${absolutePath} config file does not exist. Skipping...`);
return {};
}
const fileContent = fs_1.default.readFileSync(absolutePath, 'utf-8');
this.parseConfig(JSON.parse(fileContent));
return this._configurations;
}
parseConfig(config) {
try {
const parsedConfig = JSON.parse(JSON.stringify(config));
this._configurations = { ...this._configurations, ...ConfigLoader.filter(parsedConfig) };
return this._configurations;
}
catch (error) {
console.warn(`Error parsing config: ${error.message}`);
return {};
}
}
getConfig(name = 'default') {
const config = this._configurations[name];
if (!config) {
console.warn(`Configuration "${name}" was not found in the configuration file.`);
return {};
}
return config;
}
static filter(configurations) {
const filteredConfig = {};
for (const key in configurations) {
const config = options_1.OptionsParser.filter(configurations[key]);
if (config) {
const configName = key;
filteredConfig[configName] = config;
}
}
return filteredConfig;
}
}
exports.ConfigLoader = ConfigLoader;