processLegacyPackages.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. // Dependecies.
  2. const fs = require('fs-extra');
  3. const path = require('path');
  4. const rmDir = require("../../NodeHelpers/rmDir");
  5. const colorConsole = require("../../NodeHelpers/colorConsole");
  6. // Helpers.
  7. const publish = require("../helpers/publish");
  8. const processLegacyViewer = require("./processLegacyViewer");
  9. // Global Variables.
  10. const config = require("../../Config/config.js");
  11. const modules = config.modules.concat(config.viewerModules);
  12. /**
  13. * Process Legacy Packages.
  14. */
  15. function processLegacyPackages(version) {
  16. modules.forEach(moduleName => {
  17. let module = config[moduleName];
  18. colorConsole.log("Process " + "UMD".magenta + " Package: " + moduleName.blue.bold);
  19. if (moduleName === "viewer") {
  20. processLegacyViewer(module, version);
  21. }
  22. else {
  23. let outputDirectory = module.build.legacyPackageOutputDirectory || module.computed.distDirectory;
  24. if (module.build.requiredFiles) {
  25. module.build.requiredFiles.forEach(file => {
  26. let source = path.join(config.computed.rootFolder, file);
  27. let destination = path.join(outputDirectory, path.basename(file));
  28. colorConsole.log(" Copy required file: ", source.cyan, destination.cyan);
  29. fs.copySync(source, destination);
  30. });
  31. }
  32. // Package version
  33. const packageJSONPath = module.computed ?
  34. module.computed.packageJSONPath :
  35. outputDirectory + '/package.json';
  36. let packageJson = require(packageJSONPath);
  37. colorConsole.log(" Update package version to: " + version.green);
  38. packageJson.version = version;
  39. // Package dependencies version
  40. if (module.build.umd.dependencies) {
  41. packageJson.dependencies = module.build.umd.dependencies;
  42. }
  43. // Package dependencies version
  44. if (packageJson.dependencies) {
  45. Object.keys(packageJson.dependencies).forEach(key => {
  46. if (key.indexOf("babylonjs") !== -1) {
  47. packageJson.dependencies[key] = version;
  48. }
  49. });
  50. }
  51. // Package dev dependencies
  52. if (module.build.umd.devDependencies) {
  53. packageJson.devDependencies = module.build.umd.devDependencies;
  54. }
  55. // Typings
  56. if (module.build.umd.typings) {
  57. packageJson.typings = module.build.umd.typings;
  58. }
  59. // Main
  60. if (module.build.umd.index) {
  61. packageJson.main = module.build.umd.index;
  62. packageJson.module = module.build.umd.index;
  63. packageJson.esnext = module.build.umd.index;
  64. }
  65. // Files
  66. if (module.build.umd.pacakagesFiles) {
  67. packageJson.files = module.build.umd.pacakagesFiles;
  68. }
  69. // Write to disk output directory
  70. fs.writeFileSync(path.join(outputDirectory, 'package.json'), JSON.stringify(packageJson, null, 4));
  71. if (!module.build.legacyPackageOutputDirectory) {
  72. let packageUMDPath = module.computed.packageUMDDirectory;
  73. colorConsole.log(" Cleanup " + packageUMDPath.cyan);
  74. rmDir(packageUMDPath);
  75. if (module.build.umd.pacakagesFiles) {
  76. fs.ensureDirSync(packageUMDPath);
  77. for (let file of module.build.umd.pacakagesFiles.concat(["package.json"])) {
  78. let source = path.join(outputDirectory, file);
  79. let destination = path.join(packageUMDPath, path.basename(file));
  80. colorConsole.log(" Copy Package file: ", source.cyan, destination.cyan);
  81. fs.copyFileSync(source, destination);
  82. }
  83. }
  84. else {
  85. colorConsole.log(" Copy Package folder " + outputDirectory.cyan + " to " + packageUMDPath.cyan);
  86. fs.copySync(outputDirectory, packageUMDPath);
  87. }
  88. publish(version, moduleName, packageUMDPath);
  89. }
  90. else {
  91. publish(version, moduleName, outputDirectory);
  92. }
  93. colorConsole.emptyLine();
  94. }
  95. });
  96. }
  97. /**
  98. * Main function driving the publication.
  99. */
  100. module.exports = processLegacyPackages;