@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
44 lines (42 loc) • 1.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const fancy_log_1 = tslib_1.__importDefault(require("fancy-log"));
const plugin_error_1 = tslib_1.__importDefault(require("plugin-error"));
const through2_1 = tslib_1.__importDefault(require("through2"));
const util = tslib_1.__importStar(require("../utilities"));
const jsonMerge = tslib_1.__importStar(require("./json-merge"));
const PLUGIN_NAME = 'gulp-merge-json-in-folders';
function gulpMergeJsonInFolders(options) {
// override options settings if not specified.
options = Object.assign({ src: './src/assets/strings' }, options || {});
const externalSources = [];
return through2_1.default.obj(
/**
* Transform
*/
function (file, encoding, callback) {
if (file.isDirectory()) {
externalSources.push(file.path);
}
callback();
},
/**
* Flush
*/
function (callback) {
try {
const merge = new jsonMerge.JsonMerge();
const files = merge.mergeJsonInFolders(options.src, externalSources);
files.forEach(file => this.push(file));
}
catch (e) {
const error = (!e.plugin || (e.plugin !== PLUGIN_NAME)) ?
util.extendError(new plugin_error_1.default({ plugin: PLUGIN_NAME, message: e.message }), e) : e;
fancy_log_1.default.error(error);
}
callback();
});
}
module.exports = gulpMergeJsonInFolders;
//# sourceMappingURL=index.js.map