gulp-addDtsExport.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. var gutil = require('gulp-util');
  2. var through = require('through2');
  3. module.exports = function (varName, moduleName, subModule, extendsRoot, dependencies) {
  4. return through.obj(function (file, enc, cb) {
  5. let exportText = "BABYLON";
  6. if (subModule && !extendsRoot) {
  7. exportText += '.' + varName;
  8. }
  9. let referenceText = '';
  10. if (subModule) {
  11. referenceText = '/// <reference types="babylonjs"/>\n';
  12. }
  13. if (dependencies) {
  14. referenceText = '';
  15. dependencies.forEach(element => {
  16. referenceText += `/// <reference types="babylonjs/${element}"/>
  17. `
  18. });
  19. }
  20. var moduleExportsAddition =
  21. `${referenceText}
  22. declare module '${moduleName}' {
  23. export = ${exportText};
  24. }
  25. `;
  26. //'export = ' + (subModule ? 'BABYLON.' : '') + varName + ';\n';// +
  27. //'export as namespace ' + varName + ';\n\n';
  28. if (file.isNull()) {
  29. cb(null, file);
  30. return;
  31. }
  32. if (file.isStream()) {
  33. //streams not supported, no need for now.
  34. return;
  35. }
  36. try {
  37. file.contents = new Buffer(moduleExportsAddition + String(file.contents));
  38. this.push(file);
  39. } catch (err) {
  40. this.emit('error', new gutil.PluginError('gulp-add-module-exports', err, { fileName: file.path }));
  41. }
  42. cb();
  43. });
  44. };