main.js 2.5 KB

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