fantasticon
Version:
Icon font generation tool
19 lines • 1.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.mergeOptions = exports.prefillOptions = exports.getGeneratorOptions = void 0;
const path_1 = require("path");
const constants_1 = require("../constants");
const codepoints_1 = require("../utils/codepoints");
const misc_1 = require("../types/misc");
const getGeneratorOptions = (options, assets) => (Object.assign(Object.assign({}, options), { codepoints: (0, codepoints_1.getCodepoints)(assets, options.codepoints), formatOptions: (0, exports.prefillOptions)(Object.values(misc_1.ASSET_TYPES), options.formatOptions, assetType => constants_1.DEFAULT_OPTIONS.formatOptions[assetType] || {}), templates: (0, exports.prefillOptions)(misc_1.ASSET_TYPES_WITH_TEMPLATE, options.templates, assetType => (0, path_1.join)(constants_1.TEMPLATES_DIR, `${assetType}.hbs`)), assets }));
exports.getGeneratorOptions = getGeneratorOptions;
const prefillOptions = (keys, userOptions = {}, getDefault) => keys.reduce((cur = {}, type) => (Object.assign(Object.assign({}, cur), { [type]: (0, exports.mergeOptions)(userOptions[type], getDefault(type)) })), {});
exports.prefillOptions = prefillOptions;
const mergeOptions = (input, defaultVal) => {
if (typeof defaultVal === 'object') {
return Object.assign(Object.assign({}, defaultVal), input);
}
return input || defaultVal;
};
exports.mergeOptions = mergeOptions;
//# sourceMappingURL=generator-options.js.map