main.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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 processUMDPackages = require("./processUMDPackages");
  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. processUMDPackages(version);
  27. // Prepare umd Dev Folder.
  28. prepareUMDDevPackages();
  29. }
  30. if (options.es6) {
  31. // Create the packages and publish if needed.
  32. processEs6Packages(version);
  33. // Prepare es6 Dev Folder.
  34. prepareEs6DevPackages();
  35. }
  36. }
  37. /**
  38. * Main function driving the publication.
  39. */
  40. module.exports = function(production, options) {
  41. if (production) {
  42. prompt.start();
  43. prompt.get(['version'], function (err, result) {
  44. const version = result.version;
  45. // Update the engine version if needed.
  46. if (!version || !version.length) {
  47. colorConsole.error("New version required.");
  48. Process.exit(1);
  49. return;
  50. }
  51. versionNumberManager.updateEngineVersion(version);
  52. buildBabylonJSAndDependencies();
  53. versionNumberManager.updateRootPackageVersion(version);
  54. process.env.BABYLONJSREALPUBLISH = true;
  55. createVersion(version, options);
  56. // Invite user to tag with the new version.
  57. colorConsole.log("Done, please tag git with " + version);
  58. });
  59. }
  60. else {
  61. const version = versionNumberManager.getEngineVersion();
  62. createVersion(version, options);
  63. }
  64. };