create-ts-index
Version:
Automatic create index.ts file
79 lines • 7.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const debug_1 = tslib_1.__importDefault(require("debug"));
const fs = tslib_1.__importStar(require("fs"));
const json5 = tslib_1.__importStar(require("json5"));
const merge = require("merge");
const path = tslib_1.__importStar(require("path"));
const CTIUtility_1 = require("../tools/CTIUtility");
const CreateTsIndexOption_1 = require("./CreateTsIndexOption");
const log = debug_1.default('cti:ctircLoader');
const CTIRC_FILENAME = '.ctirc';
function withoutUndefined(value) {
const newValue = Object.assign({}, value, { globOptions: Object.assign({}, value.globOptions) });
Object.keys(newValue).forEach((key) => {
if (CTIUtility_1.isEmpty(newValue[key])) {
delete newValue[key];
}
});
Object.keys(newValue.globOptions).forEach((key) => {
if (CTIUtility_1.isEmpty(newValue.globOptions[key])) {
delete newValue.globOptions[key];
}
});
return newValue;
}
function ctircLoader({ inputDir, cwd, fromCliOption, }) {
log(`inputDir: (${inputDir}) /cwd: (${cwd})`);
const cleanCliOption = withoutUndefined(fromCliOption);
const targetDirs = (() => {
const target = new Set();
if (CTIUtility_1.isNotEmpty(inputDir) &&
fs.existsSync(inputDir) &&
fs.existsSync(path.join(inputDir, CTIRC_FILENAME))) {
target.add(inputDir);
}
if (fs.existsSync(cwd) && fs.existsSync(path.join(cwd, CTIRC_FILENAME))) {
target.add(cwd);
}
return Array.from(target);
})();
log('targetDirs: ', targetDirs);
try {
if (targetDirs.length <= 0) {
return {
option: new CreateTsIndexOption_1.CreateTsIndexOption(CreateTsIndexOption_1.CreateTsIndexOption.getOption(cleanCliOption)),
readedFrom: 'from cli option',
};
}
const fromConfigfiles = targetDirs.map((targetDir) => {
const ctircPath = path.join(targetDir, CTIRC_FILENAME);
const rawConf = fs.readFileSync(ctircPath).toString();
const fromConfigfile = Object.assign({}, json5.parse(rawConf), { globOptions: { cwd: inputDir } });
return fromConfigfile;
});
const mergedCTIRC = fromConfigfiles.reduce((src, dst) => merge.recursive(true, src, dst));
mergedCTIRC.__for_debug_from = 'from-config-file';
if (Object.keys(cleanCliOption).length > 0) {
cleanCliOption.__for_debug_from = 'from-cli-option';
}
const option = [
Object.assign({ __for_debug_from: 'from-default-config' }, CreateTsIndexOption_1.getDefailtICreateTsIndexOption()),
mergedCTIRC,
cleanCliOption,
].reduce((src, dst) => merge.recursive(true, src, dst));
log('final option-1: ', mergedCTIRC);
log('final option-2: ', cleanCliOption);
log('final option-3: ', option);
return { option: CreateTsIndexOption_1.CreateTsIndexOption.factory({ option }), readedFrom: 'from config file' };
}
catch (err) {
log(err.message);
log(err.stack);
const option = new CreateTsIndexOption_1.CreateTsIndexOption();
return { option, readedFrom: '' };
}
}
exports.ctircLoader = ctircLoader;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3RpcmNMb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvb3B0aW9ucy9jdGlyY0xvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwwREFBMEI7QUFDMUIsK0NBQXlCO0FBQ3pCLHFEQUErQjtBQUMvQiwrQkFBZ0M7QUFDaEMsbURBQTZCO0FBQzdCLG9EQUEwRDtBQUMxRCwrREFBNEY7QUFHNUYsTUFBTSxHQUFHLEdBQUcsZUFBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDckMsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDO0FBRWhDLFNBQVMsZ0JBQWdCLENBQ3ZCLEtBQW9DO0lBRXBDLE1BQU0sUUFBUSxxQkFBUSxLQUFLLEVBQUssRUFBRSxXQUFXLG9CQUFPLEtBQUssQ0FBQyxXQUFXLENBQUUsRUFBRSxDQUFFLENBQUM7SUFFNUUsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNwQyxJQUFJLG9CQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDMUIsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdEI7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ2hELElBQUksb0JBQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDdEMsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQsU0FBZ0IsV0FBVyxDQUFDLEVBQzFCLFFBQVEsRUFDUixHQUFHLEVBQ0gsYUFBYSxHQUtkO0lBQ0Ms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