var gutil = require('gulp-util'); var through = require('through2'); module.exports = function (varName, moduleName, subModule, extendsRoot, dependencies) { return through.obj(function (file, enc, cb) { let exportText = "BABYLON"; if (subModule && !extendsRoot) { exportText += '.' + varName.name; } let referenceText = ''; if (subModule) { referenceText = '/// \n'; } if (dependencies) { referenceText = ''; dependencies.forEach(element => { // was "babylonjs/${element}"" referenceText += `/// `; }); } var moduleExportsAddition = `${referenceText} declare module '${moduleName}' { export = ${exportText}; } `; //'export = ' + (subModule ? 'BABYLON.' : '') + varName + ';\n';// + //'export as namespace ' + varName + ';\n\n'; if (file.isNull()) { cb(null, file); return; } if (file.isStream()) { //streams not supported, no need for now. return; } try { file.contents = new Buffer(moduleExportsAddition + String(file.contents)); this.push(file); } catch (err) { this.emit('error', new gutil.PluginError('gulp-add-module-exports', err, { fileName: file.path })); } cb(); }); };