main.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. // Dependecies.
  2. const prompt = require('prompt');
  3. const path = require('path');
  4. const colorConsole = require("../../NodeHelpers/colorConsole");
  5. // Helpers.
  6. const versionNumberManager = require("./versionNumberManager");
  7. const buildBabylonJSAndDependencies = require("./buildBabylonJSAndDependencies");
  8. const processAdditionalPackages = require("./processAdditionalPackages");
  9. const processLegacyPackages = require("./processLegacyPackages");
  10. const processEs6Packages = require("./processEs6Packages");
  11. const prepareUMDDevPackages = require("./prepareUMDDevPackages");
  12. const prepareEs6DevPackages = require("./prepareEs6DevPackages");
  13. // Path management.
  14. process.env.PATH += (path.delimiter + path.join(__dirname, '../node_modules', '.bin'));
  15. const createVersion = function(version, options) {
  16. options = options || {
  17. additional: true,
  18. umd: true,
  19. es6: true
  20. };
  21. if (options.additional) {
  22. // Publish additional packages from the config.
  23. processAdditionalPackages(version);
  24. }
  25. if (options.umd) {
  26. // Create the packages and publish if needed.
  27. processLegacyPackages(version);
  28. // Prepare umd Dev Folder.
  29. prepareUMDDevPackages();
  30. }
  31. if (options.es6) {
  32. // Do not publish es6 yet.
  33. process.env.BABYLONJSREALPUBLISH = false;
  34. processEs6Packages(version);
  35. // Prepare es6 Dev Folder.
  36. prepareEs6DevPackages();
  37. }
  38. }
  39. /**
  40. * Main function driving the publication.
  41. */
  42. module.exports = function(production, options) {
  43. if (production) {
  44. prompt.start();
  45. prompt.get(['version'], function (err, result) {
  46. const version = result.version;
  47. // Update the engine version if needed.
  48. if (!version || !version.length) {
  49. colorConsole.error("New version required.");
  50. Process.exit(1);
  51. return;
  52. }
  53. buildBabylonJSAndDependencies();
  54. versionNumberManager.updateEngineVersion(version);
  55. versionNumberManager.updateRootPackageVersion(version);
  56. process.env.BABYLONJSREALPUBLISH = true;
  57. createVersion(version, options);
  58. // Invite user to tag with the new version.
  59. colorConsole.log("Done, please tag git with " + version);
  60. });
  61. }
  62. else {
  63. const version = versionNumberManager.getEngineVersion();
  64. createVersion(version, options);
  65. }
  66. };