@criticalmanufacturing/dev-i18n-transform
Version:
i18n <--> gettext transform
41 lines • 1.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const through = require("through2");
const File = require("vinyl");
const index_1 = require("./parsers/index");
const index_2 = require("./writers/index");
module.exports = function (options) {
options.languages = options.languages || [];
let files = [];
function processFiles(file, encoding, callback) {
// ignore empty files
if (file.isNull()) {
return callback();
}
files.push(file.path);
callback();
}
function executeConversion(callback) {
if (files.length === 0) {
return callback();
}
// Get the parser
let parser = index_1.ParserFactory.getParser(options.base || process.cwd(), files);
// Run the parser and get all files for this package
let pack = parser.run();
// For each language, generate output files
options.languages.forEach((language) => {
let writer = index_2.WriterFactory.getWriter(pack, language, options.dest);
let buffer = writer.run();
for (let i = 0; i < buffer.length; i++) {
let file = new File();
file.path = buffer[i].file;
file.contents = buffer[i].content;
this.push(file);
}
});
callback();
}
return through.obj(processFiles, executeConversion);
};
//# sourceMappingURL=gulp.js.map