node-workflow.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. "use strict";
  2. /**
  3. * @license
  4. * Copyright Google LLC All Rights Reserved.
  5. *
  6. * Use of this source code is governed by an MIT-style license that can be
  7. * found in the LICENSE file at https://angular.dev/license
  8. */
  9. Object.defineProperty(exports, "__esModule", { value: true });
  10. exports.NodeWorkflow = void 0;
  11. const core_1 = require("@angular-devkit/core");
  12. const node_1 = require("@angular-devkit/core/node");
  13. const src_1 = require("../../src");
  14. const node_2 = require("../../tasks/node");
  15. const node_module_engine_host_1 = require("../node-module-engine-host");
  16. const schema_option_transform_1 = require("../schema-option-transform");
  17. /**
  18. * A workflow specifically for Node tools.
  19. */
  20. class NodeWorkflow extends src_1.workflow.BaseWorkflow {
  21. constructor(hostOrRoot, options) {
  22. let host;
  23. let root;
  24. if (typeof hostOrRoot === 'string') {
  25. root = (0, core_1.normalize)(hostOrRoot);
  26. host = new core_1.virtualFs.ScopedHost(new node_1.NodeJsSyncHost(), root);
  27. }
  28. else {
  29. host = hostOrRoot;
  30. root = options.root;
  31. }
  32. const engineHost = options.engineHostCreator?.(options) || new node_module_engine_host_1.NodeModulesEngineHost(options.resolvePaths);
  33. super({
  34. host,
  35. engineHost,
  36. force: options.force,
  37. dryRun: options.dryRun,
  38. registry: options.registry,
  39. });
  40. engineHost.registerTaskExecutor(node_2.BuiltinTaskExecutor.NodePackage, {
  41. allowPackageManagerOverride: true,
  42. packageManager: options.packageManager,
  43. force: options.packageManagerForce,
  44. rootDirectory: root && (0, core_1.getSystemPath)(root),
  45. registry: options.packageRegistry,
  46. });
  47. engineHost.registerTaskExecutor(node_2.BuiltinTaskExecutor.RepositoryInitializer, {
  48. rootDirectory: root && (0, core_1.getSystemPath)(root),
  49. });
  50. engineHost.registerTaskExecutor(node_2.BuiltinTaskExecutor.RunSchematic);
  51. if (options.optionTransforms) {
  52. for (const transform of options.optionTransforms) {
  53. engineHost.registerOptionsTransform(transform);
  54. }
  55. }
  56. if (options.schemaValidation) {
  57. engineHost.registerOptionsTransform((0, schema_option_transform_1.validateOptionsWithSchema)(this.registry));
  58. }
  59. this._context = [];
  60. }
  61. get engine() {
  62. return this._engine;
  63. }
  64. get engineHost() {
  65. return this._engineHost;
  66. }
  67. }
  68. exports.NodeWorkflow = NodeWorkflow;