@awesome-fe/translate
Version:
Translation utils
53 lines • 2.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.handler = exports.builder = exports.describe = exports.command = void 0;
const fs_1 = require("fs");
const globby_1 = require("globby");
const injector_1 = require("../../injector/injector");
exports.command = `inject <sourceGlobs...>`;
exports.describe = '为双语 HTML 文件做后期处理,注入翻译工具';
exports.builder = {
sourceGlobs: {
description: '文件通配符,注意:要包含在引号里,参见 https://github.com/isaacs/node-glob#glob-primer',
},
styleUrls: {
array: true,
alias: 'c',
description: '要注入的 css 文件,可传多个',
},
scriptUrls: {
array: true,
alias: 's',
description: '要注入的 javascript 文件,可传多个',
},
urlMap: {
string: true,
alias: 'm',
coerce: (filename) => {
return JSON.parse((0, fs_1.readFileSync)(filename, 'utf-8'));
},
description: '供替换的 url 映射(脚本、css、图片),指向一个 JSON 格式的配置文件,其内容形如:{"old": "new"}',
},
textMap: {
string: true,
alias: 't',
coerce: (filename) => {
return JSON.parse((0, fs_1.readFileSync)(filename, 'utf-8'));
},
description: '供替换的文本映射,指向一个 JSON 格式的配置文件,其内容形如:{"oldRegExp": "new"}',
},
};
const handler = function ({ sourceGlobs, styleUrls, scriptUrls, urlMap, textMap }) {
const filenames = (0, globby_1.sync)(sourceGlobs);
if (filenames.length === 0) {
console.error('没有找到任何文件,请检查 sourceGlobs 是否正确!');
return;
}
const injector = new injector_1.Injector(styleUrls, scriptUrls, urlMap, textMap);
for (const filename of filenames) {
injector.injectFile(filename);
console.log(`injected: ${filename}!`);
}
};
exports.handler = handler;
//# sourceMappingURL=inject.js.map