processUMDViewer.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. // Dependecies.
  2. const shelljs = require('shelljs');
  3. const fs = require('fs-extra');
  4. const path = require('path');
  5. const colorConsole = require("../../NodeHelpers/colorConsole");
  6. // Helpers.
  7. const publish = require("../helpers/publish");
  8. const getFiles = require("../helpers/getFiles");
  9. // Global Variables.
  10. const config = require("../../Config/config.js");
  11. /**
  12. * Special treatment for umd viewer.
  13. */
  14. function processUMDViewer(module, version) {
  15. let projectPath = '../../../Viewer';
  16. let buildPath = path.resolve(__dirname, projectPath + "/build/src/");
  17. if (module.build.umd.requiredFiles) {
  18. module.build.umd.requiredFiles.forEach(file => {
  19. let source = path.join(config.computed.rootFolder, file);
  20. let destination = path.join(buildPath, path.basename(file));
  21. colorConsole.log(" Copy required file: ", source.cyan, destination.cyan);
  22. fs.copySync(source, destination);
  23. });
  24. }
  25. // The viewer needs to be built using tsc on the viewer's main repository
  26. // build the viewer.
  27. colorConsole.log(" Executing " + ('tsc -p ' + projectPath).yellow);
  28. let tscCompile = shelljs.exec('tsc -p ' + projectPath, {
  29. cwd: path.resolve(__dirname)
  30. });
  31. if (tscCompile.code !== 0) {
  32. throw new Error("tsc compilation failed");
  33. }
  34. let packageJson = require(path.join(buildPath, 'package.json'));
  35. let files = getFiles(buildPath).map(f => f.replace(buildPath, "")).filter(f => f.indexOf("assets/") === -1);
  36. packageJson.files = files;
  37. packageJson.version = version;
  38. packageJson.module = "index.js";
  39. packageJson.main = "babylon.viewer.js";
  40. packageJson.typings = "index.d.ts";
  41. fs.writeFileSync(path.join(buildPath, 'package.json'), JSON.stringify(packageJson, null, 4));
  42. publish(version, "viewer", buildPath);
  43. colorConsole.emptyLine();
  44. }
  45. module.exports = processUMDViewer;