gulp-addDtsExport.js 1.5 KB

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