@angular/core 12.2.0-next.1 → 12.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/bundles/core-testing.umd.js +15 -4
  2. package/bundles/core-testing.umd.js.map +1 -1
  3. package/bundles/core.umd.js +94 -77
  4. package/bundles/core.umd.js.map +1 -1
  5. package/core.d.ts +12 -12
  6. package/core.metadata.json +1 -1
  7. package/esm2015/src/application_init.js +5 -5
  8. package/esm2015/src/application_ref.js +6 -2
  9. package/esm2015/src/change_detection/differs/iterable_differs.js +1 -1
  10. package/esm2015/src/compiler/compiler_facade.js +31 -8
  11. package/esm2015/src/compiler/compiler_facade_interface.js +1 -1
  12. package/esm2015/src/di/jit/injectable.js +4 -3
  13. package/esm2015/src/di/r3_injector.js +5 -2
  14. package/esm2015/src/error_handler.js +4 -8
  15. package/esm2015/src/errors.js +2 -2
  16. package/esm2015/src/event_emitter.js +1 -1
  17. package/esm2015/src/i18n/locale_en.js +4 -38
  18. package/esm2015/src/linker/component_factory_resolver.js +1 -1
  19. package/esm2015/src/linker/template_ref.js +1 -1
  20. package/esm2015/src/linker/view_container_ref.js +1 -1
  21. package/esm2015/src/metadata/di.js +1 -1
  22. package/esm2015/src/render3/component_ref.js +1 -1
  23. package/esm2015/src/render3/definition.js +1 -1
  24. package/esm2015/src/render3/instructions/shared.js +2 -1
  25. package/esm2015/src/render3/jit/directive.js +6 -5
  26. package/esm2015/src/render3/jit/module.js +7 -4
  27. package/esm2015/src/render3/jit/partial.js +27 -9
  28. package/esm2015/src/render3/jit/pipe.js +5 -3
  29. package/esm2015/src/render3/ng_module_ref.js +1 -1
  30. package/esm2015/src/render3/view_ref.js +1 -1
  31. package/esm2015/src/sanitization/bypass.js +1 -1
  32. package/esm2015/src/version.js +1 -1
  33. package/esm2015/src/view/entrypoint.js +1 -1
  34. package/esm2015/src/view/refs.js +1 -1
  35. package/esm2015/testing/src/ng_zone_mock.js +1 -1
  36. package/esm2015/testing/src/r3_test_bed_compiler.js +4 -1
  37. package/esm2015/testing/src/resolvers.js +1 -1
  38. package/esm2015/testing/src/test_bed.js +12 -4
  39. package/fesm2015/core.js +95 -78
  40. package/fesm2015/core.js.map +1 -1
  41. package/fesm2015/testing.js +15 -4
  42. package/fesm2015/testing.js.map +1 -1
  43. package/package.json +2 -2
  44. package/schematics/migrations/missing-injectable/providers_evaluator.js +1 -1
  45. package/schematics/migrations/static-queries/strategies/usage_strategy/template_usage_visitor.js +1 -1
  46. package/schematics/migrations/template-var-assignment/angular/html_variable_assignment_visitor.js +1 -1
  47. package/schematics/migrations.json +1 -1
  48. package/src/r3_symbols.d.ts +2 -3
  49. package/testing/testing.d.ts +2 -1
  50. package/testing/testing.metadata.json +1 -1
  51. package/testing.d.ts +1 -1
  52. package/schematics/migrations/abstract-control-parent/abstract-control-parent.externs.js +0 -0
  53. package/schematics/migrations/abstract-control-parent/index.mjs +0 -47
  54. package/schematics/migrations/abstract-control-parent/util.mjs +0 -50
  55. package/schematics/migrations/activated-route-snapshot-fragment/activated-route-snapshot-fragment.externs.js +0 -0
  56. package/schematics/migrations/activated-route-snapshot-fragment/index.mjs +0 -48
  57. package/schematics/migrations/activated-route-snapshot-fragment/util.mjs +0 -33
  58. package/schematics/migrations/can-activate-with-redirect-to/can-activate-with-redirect-to.externs.js +0 -0
  59. package/schematics/migrations/can-activate-with-redirect-to/index.mjs +0 -44
  60. package/schematics/migrations/can-activate-with-redirect-to/util.mjs +0 -55
  61. package/schematics/migrations/deep-shadow-piercing-selector/deep-shadow-piercing-selector.externs.js +0 -0
  62. package/schematics/migrations/deep-shadow-piercing-selector/index.mjs +0 -36
  63. package/schematics/migrations/dynamic-queries/dynamic-queries.externs.js +0 -0
  64. package/schematics/migrations/dynamic-queries/index.mjs +0 -51
  65. package/schematics/migrations/dynamic-queries/util.mjs +0 -65
  66. package/schematics/migrations/initial-navigation/collector.mjs +0 -105
  67. package/schematics/migrations/initial-navigation/index.mjs +0 -61
  68. package/schematics/migrations/initial-navigation/initial-navigation.externs.js +0 -0
  69. package/schematics/migrations/initial-navigation/transform.mjs +0 -54
  70. package/schematics/migrations/initial-navigation/update_recorder.mjs +0 -9
  71. package/schematics/migrations/initial-navigation/util.mjs +0 -28
  72. package/schematics/migrations/missing-injectable/definition_collector.mjs +0 -75
  73. package/schematics/migrations/missing-injectable/index.mjs +0 -100
  74. package/schematics/migrations/missing-injectable/missing-injectable.externs.js +0 -0
  75. package/schematics/migrations/missing-injectable/providers_evaluator.mjs +0 -50
  76. package/schematics/migrations/missing-injectable/transform.mjs +0 -187
  77. package/schematics/migrations/missing-injectable/update_recorder.mjs +0 -9
  78. package/schematics/migrations/module-with-providers/collector.mjs +0 -59
  79. package/schematics/migrations/module-with-providers/index.mjs +0 -71
  80. package/schematics/migrations/module-with-providers/module-with-providers.externs.js +0 -0
  81. package/schematics/migrations/module-with-providers/transform.mjs +0 -134
  82. package/schematics/migrations/module-with-providers/util.mjs +0 -25
  83. package/schematics/migrations/move-document/document_import_visitor.mjs +0 -60
  84. package/schematics/migrations/move-document/index.mjs +0 -71
  85. package/schematics/migrations/move-document/move-document.externs.js +0 -0
  86. package/schematics/migrations/move-document/move-import.mjs +0 -45
  87. package/schematics/migrations/native-view-encapsulation/index.mjs +0 -41
  88. package/schematics/migrations/native-view-encapsulation/native-view-encapsulation.externs.js +0 -0
  89. package/schematics/migrations/native-view-encapsulation/util.mjs +0 -34
  90. package/schematics/migrations/navigation-extras-omissions/index.mjs +0 -47
  91. package/schematics/migrations/navigation-extras-omissions/navigation-extras-omissions.externs.js +0 -0
  92. package/schematics/migrations/navigation-extras-omissions/util.mjs +0 -111
  93. package/schematics/migrations/relative-link-resolution/collector.mjs +0 -81
  94. package/schematics/migrations/relative-link-resolution/index.mjs +0 -62
  95. package/schematics/migrations/relative-link-resolution/relative-link-resolution.externs.js +0 -0
  96. package/schematics/migrations/relative-link-resolution/transform.mjs +0 -51
  97. package/schematics/migrations/relative-link-resolution/update_recorder.mjs +0 -9
  98. package/schematics/migrations/relative-link-resolution/util.mjs +0 -28
  99. package/schematics/migrations/renderer-to-renderer2/helpers.mjs +0 -224
  100. package/schematics/migrations/renderer-to-renderer2/index.mjs +0 -113
  101. package/schematics/migrations/renderer-to-renderer2/migration.mjs +0 -211
  102. package/schematics/migrations/renderer-to-renderer2/renderer-to-renderer2.externs.js +0 -0
  103. package/schematics/migrations/renderer-to-renderer2/util.mjs +0 -69
  104. package/schematics/migrations/router-preserve-query-params/index.mjs +0 -50
  105. package/schematics/migrations/router-preserve-query-params/router-preserve-query-params.externs.js +0 -0
  106. package/schematics/migrations/router-preserve-query-params/util.mjs +0 -88
  107. package/schematics/migrations/static-queries/angular/directive_inputs.mjs +0 -70
  108. package/schematics/migrations/static-queries/angular/ng_query_visitor.mjs +0 -113
  109. package/schematics/migrations/static-queries/angular/query-definition.mjs +0 -20
  110. package/schematics/migrations/static-queries/angular/super_class.mjs +0 -21
  111. package/schematics/migrations/static-queries/index.mjs +0 -206
  112. package/schematics/migrations/static-queries/static-queries.externs.js +0 -0
  113. package/schematics/migrations/static-queries/strategies/template_strategy/template_strategy.mjs +0 -200
  114. package/schematics/migrations/static-queries/strategies/test_strategy/test_strategy.mjs +0 -24
  115. package/schematics/migrations/static-queries/strategies/timing-strategy.mjs +0 -9
  116. package/schematics/migrations/static-queries/strategies/usage_strategy/declaration_usage_visitor.mjs +0 -355
  117. package/schematics/migrations/static-queries/strategies/usage_strategy/super_class_context.mjs +0 -38
  118. package/schematics/migrations/static-queries/strategies/usage_strategy/template_usage_visitor.mjs +0 -80
  119. package/schematics/migrations/static-queries/strategies/usage_strategy/usage_strategy.mjs +0 -154
  120. package/schematics/migrations/static-queries/transform.mjs +0 -88
  121. package/schematics/migrations/template-var-assignment/analyze_template.mjs +0 -25
  122. package/schematics/migrations/template-var-assignment/angular/html_variable_assignment_visitor.mjs +0 -65
  123. package/schematics/migrations/template-var-assignment/index.mjs +0 -68
  124. package/schematics/migrations/template-var-assignment/template-var-assignment.externs.js +0 -0
  125. package/schematics/migrations/undecorated-classes-with-decorated-fields/index.mjs +0 -92
  126. package/schematics/migrations/undecorated-classes-with-decorated-fields/transform.mjs +0 -286
  127. package/schematics/migrations/undecorated-classes-with-decorated-fields/undecorated-classes-with-decorated-fields.externs.js +0 -0
  128. package/schematics/migrations/undecorated-classes-with-decorated-fields/update_recorder.mjs +0 -9
  129. package/schematics/migrations/undecorated-classes-with-di/create_ngc_program.mjs +0 -43
  130. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/convert_directive_metadata.mjs +0 -82
  131. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/decorator_rewriter.mjs +0 -102
  132. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/import_rewrite_visitor.mjs +0 -111
  133. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/path_format.mjs +0 -17
  134. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/source_file_exports.mjs +0 -51
  135. package/schematics/migrations/undecorated-classes-with-di/index.mjs +0 -162
  136. package/schematics/migrations/undecorated-classes-with-di/ng_declaration_collector.mjs +0 -124
  137. package/schematics/migrations/undecorated-classes-with-di/transform.mjs +0 -356
  138. package/schematics/migrations/undecorated-classes-with-di/undecorated-classes-with-di.externs.js +0 -0
  139. package/schematics/migrations/undecorated-classes-with-di/update_recorder.mjs +0 -9
  140. package/schematics/migrations/wait-for-async/index.mjs +0 -76
  141. package/schematics/migrations/wait-for-async/util.mjs +0 -23
  142. package/schematics/migrations/wait-for-async/wait-for-async.externs.js +0 -0
  143. package/schematics/migrations/xhr-factory/index.mjs +0 -91
  144. package/schematics/migrations/xhr-factory/xhr-factory.externs.js +0 -0
  145. package/schematics/utils/import_manager.mjs +0 -197
  146. package/schematics/utils/line_mappings.mjs +0 -60
  147. package/schematics/utils/ng_component_template.mjs +0 -96
  148. package/schematics/utils/ng_decorators.mjs +0 -23
  149. package/schematics/utils/parse_html.mjs +0 -24
  150. package/schematics/utils/project_tsconfig_paths.mjs +0 -74
  151. package/schematics/utils/schematics_prompt.mjs +0 -30
  152. package/schematics/utils/typescript/class_declaration.mjs +0 -33
  153. package/schematics/utils/typescript/compiler_host.mjs +0 -66
  154. package/schematics/utils/typescript/decorators.mjs +0 -20
  155. package/schematics/utils/typescript/find_base_classes.mjs +0 -30
  156. package/schematics/utils/typescript/functions.mjs +0 -28
  157. package/schematics/utils/typescript/imports.mjs +0 -91
  158. package/schematics/utils/typescript/nodes.mjs +0 -57
  159. package/schematics/utils/typescript/parse_tsconfig.mjs +0 -26
  160. package/schematics/utils/typescript/property_name.mjs +0 -23
  161. package/schematics/utils/typescript/symbol.mjs +0 -72
  162. package/schematics/utils/utils.externs.js +0 -0
@@ -1,55 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import * as ts from 'typescript';
9
- const CAN_ACTIVATE = 'canActivate';
10
- const REDIRECT_TO = 'redirectTo';
11
- export function migrateLiteral(node) {
12
- const propertiesToKeep = [];
13
- node.properties.forEach(property => {
14
- // Only look for regular and shorthand property assignments since resolving things
15
- // like spread operators becomes too complicated for this migration.
16
- if ((ts.isPropertyAssignment(property) || ts.isShorthandPropertyAssignment(property)) &&
17
- (ts.isStringLiteralLike(property.name) || ts.isNumericLiteral(property.name) ||
18
- ts.isIdentifier(property.name))) {
19
- if (property.name.text !== CAN_ACTIVATE) {
20
- propertiesToKeep.push(property);
21
- }
22
- }
23
- else {
24
- propertiesToKeep.push(property);
25
- }
26
- });
27
- return ts.createObjectLiteral(propertiesToKeep);
28
- }
29
- export function findLiteralsToMigrate(sourceFile) {
30
- const results = new Set();
31
- sourceFile.forEachChild(function visitNode(node) {
32
- if (!ts.isObjectLiteralExpression(node)) {
33
- node.forEachChild(visitNode);
34
- return;
35
- }
36
- if (hasProperty(node, REDIRECT_TO) && hasProperty(node, CAN_ACTIVATE)) {
37
- results.add(node);
38
- }
39
- });
40
- return results;
41
- }
42
- function hasProperty(node, propertyName) {
43
- for (const property of node.properties) {
44
- // Only look for regular and shorthand property assignments since resolving things
45
- // like spread operators becomes too complicated for this migration.
46
- if ((ts.isPropertyAssignment(property) || ts.isShorthandPropertyAssignment(property)) &&
47
- (ts.isStringLiteralLike(property.name) || ts.isNumericLiteral(property.name) ||
48
- ts.isIdentifier(property.name)) &&
49
- property.name.text === propertyName) {
50
- return true;
51
- }
52
- }
53
- return false;
54
- }
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc2NoZW1hdGljcy9taWdyYXRpb25zL2Nhbi1hY3RpdmF0ZS13aXRoLXJlZGlyZWN0LXRvL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFakMsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDO0FBQ25DLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQztBQUVqQyxNQUFNLFVBQVUsY0FBYyxDQUFDLElBQWdDO0lBQzdELE1BQU0sZ0JBQWdCLEdBQWtDLEVBQUUsQ0FBQztJQUMzRCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUNqQyxrRkFBa0Y7UUFDbEYsb0VBQW9FO1FBQ3BFLElBQUksQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLDZCQUE2QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pGLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDM0UsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtZQUNwQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksRUFBRTtnQkFDdkMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ2pDO1NBQ0Y7YUFBTTtZQUNMLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBR0QsTUFBTSxVQUFVLHFCQUFxQixDQUFDLFVBQXlCO0lBQzdELE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxFQUE4QixDQUFDO0lBRXRELFVBQVUsQ0FBQyxZQUFZLENBQUMsU0FBUyxTQUFTLENBQUMsSUFBYTtRQUN0RCxJQUFJLENBQUMsRUFBRSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0IsT0FBTztTQUNSO1FBQ0QsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLEVBQUU7WUFDckUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNuQjtJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLElBQWdDLEVBQUUsWUFBb0I7SUFDekUsS0FBSyxNQUFNLFFBQVEsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1FBQ3RDLGtGQUFrRjtRQUNsRixvRUFBb0U7UUFDcEUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsNkJBQTZCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDakYsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUMzRSxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZLEVBQUU7WUFDdkMsT0FBTyxJQUFJLENBQUM7U0FDYjtLQUNGO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5jb25zdCBDQU5fQUNUSVZBVEUgPSAnY2FuQWN0aXZhdGUnO1xuY29uc3QgUkVESVJFQ1RfVE8gPSAncmVkaXJlY3RUbyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBtaWdyYXRlTGl0ZXJhbChub2RlOiB0cy5PYmplY3RMaXRlcmFsRXhwcmVzc2lvbik6IHRzLk9iamVjdExpdGVyYWxFeHByZXNzaW9uIHtcbiAgY29uc3QgcHJvcGVydGllc1RvS2VlcDogdHMuT2JqZWN0TGl0ZXJhbEVsZW1lbnRMaWtlW10gPSBbXTtcbiAgbm9kZS5wcm9wZXJ0aWVzLmZvckVhY2gocHJvcGVydHkgPT4ge1xuICAgIC8vIE9ubHkgbG9vayBmb3IgcmVndWxhciBhbmQgc2hvcnRoYW5kIHByb3BlcnR5IGFzc2lnbm1lbnRzIHNpbmNlIHJlc29sdmluZyB0aGluZ3NcbiAgICAvLyBsaWtlIHNwcmVhZCBvcGVyYXRvcnMgYmVjb21lcyB0b28gY29tcGxpY2F0ZWQgZm9yIHRoaXMgbWlncmF0aW9uLlxuICAgIGlmICgodHMuaXNQcm9wZXJ0eUFzc2lnbm1lbnQocHJvcGVydHkpIHx8IHRzLmlzU2hvcnRoYW5kUHJvcGVydHlBc3NpZ25tZW50KHByb3BlcnR5KSkgJiZcbiAgICAgICAgKHRzLmlzU3RyaW5nTGl0ZXJhbExpa2UocHJvcGVydHkubmFtZSkgfHwgdHMuaXNOdW1lcmljTGl0ZXJhbChwcm9wZXJ0eS5uYW1lKSB8fFxuICAgICAgICAgdHMuaXNJZGVudGlmaWVyKHByb3BlcnR5Lm5hbWUpKSkge1xuICAgICAgaWYgKHByb3BlcnR5Lm5hbWUudGV4dCAhPT0gQ0FOX0FDVElWQVRFKSB7XG4gICAgICAgIHByb3BlcnRpZXNUb0tlZXAucHVzaChwcm9wZXJ0eSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHByb3BlcnRpZXNUb0tlZXAucHVzaChwcm9wZXJ0eSk7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gdHMuY3JlYXRlT2JqZWN0TGl0ZXJhbChwcm9wZXJ0aWVzVG9LZWVwKTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gZmluZExpdGVyYWxzVG9NaWdyYXRlKHNvdXJjZUZpbGU6IHRzLlNvdXJjZUZpbGUpIHtcbiAgY29uc3QgcmVzdWx0cyA9IG5ldyBTZXQ8dHMuT2JqZWN0TGl0ZXJhbEV4cHJlc3Npb24+KCk7XG5cbiAgc291cmNlRmlsZS5mb3JFYWNoQ2hpbGQoZnVuY3Rpb24gdmlzaXROb2RlKG5vZGU6IHRzLk5vZGUpIHtcbiAgICBpZiAoIXRzLmlzT2JqZWN0TGl0ZXJhbEV4cHJlc3Npb24obm9kZSkpIHtcbiAgICAgIG5vZGUuZm9yRWFjaENoaWxkKHZpc2l0Tm9kZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChoYXNQcm9wZXJ0eShub2RlLCBSRURJUkVDVF9UTykgJiYgaGFzUHJvcGVydHkobm9kZSwgQ0FOX0FDVElWQVRFKSkge1xuICAgICAgcmVzdWx0cy5hZGQobm9kZSk7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gcmVzdWx0cztcbn1cblxuZnVuY3Rpb24gaGFzUHJvcGVydHkobm9kZTogdHMuT2JqZWN0TGl0ZXJhbEV4cHJlc3Npb24sIHByb3BlcnR5TmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGZvciAoY29uc3QgcHJvcGVydHkgb2Ygbm9kZS5wcm9wZXJ0aWVzKSB7XG4gICAgLy8gT25seSBsb29rIGZvciByZWd1bGFyIGFuZCBzaG9ydGhhbmQgcHJvcGVydHkgYXNzaWdubWVudHMgc2luY2UgcmVzb2x2aW5nIHRoaW5nc1xuICAgIC8vIGxpa2Ugc3ByZWFkIG9wZXJhdG9ycyBiZWNvbWVzIHRvbyBjb21wbGljYXRlZCBmb3IgdGhpcyBtaWdyYXRpb24uXG4gICAgaWYgKCh0cy5pc1Byb3BlcnR5QXNzaWdubWVudChwcm9wZXJ0eSkgfHwgdHMuaXNTaG9ydGhhbmRQcm9wZXJ0eUFzc2lnbm1lbnQocHJvcGVydHkpKSAmJlxuICAgICAgICAodHMuaXNTdHJpbmdMaXRlcmFsTGlrZShwcm9wZXJ0eS5uYW1lKSB8fCB0cy5pc051bWVyaWNMaXRlcmFsKHByb3BlcnR5Lm5hbWUpIHx8XG4gICAgICAgICB0cy5pc0lkZW50aWZpZXIocHJvcGVydHkubmFtZSkpICYmXG4gICAgICAgIHByb3BlcnR5Lm5hbWUudGV4dCA9PT0gcHJvcGVydHlOYW1lKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuIl19
@@ -1,36 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import { extname, join } from '@angular-devkit/core';
9
- const VALID_EXTENSIONS = ['.scss', '.sass', '.css', '.styl', '.less', '.ts'];
10
- function* visitFiles(directory) {
11
- for (const path of directory.subfiles) {
12
- const extension = extname(path);
13
- if (VALID_EXTENSIONS.includes(extension)) {
14
- yield join(directory.path, path);
15
- }
16
- }
17
- for (const path of directory.subdirs) {
18
- if (path === 'node_modules' || path.startsWith('.') || path === 'dist') {
19
- continue;
20
- }
21
- yield* visitFiles(directory.dir(path));
22
- }
23
- }
24
- export default function () {
25
- return (tree) => {
26
- var _a;
27
- // Visit all files in an Angular workspace monorepo.
28
- for (const file of visitFiles(tree.root)) {
29
- const content = (_a = tree.read(file)) === null || _a === void 0 ? void 0 : _a.toString();
30
- if (content === null || content === void 0 ? void 0 : content.includes('/deep/ ')) {
31
- tree.overwrite(file, content.replace(/\/deep\/ /g, '::ng-deep '));
32
- }
33
- }
34
- };
35
- }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NjaGVtYXRpY3MvbWlncmF0aW9ucy9kZWVwLXNoYWRvdy1waWVyY2luZy1zZWxlY3Rvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBR25ELE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBRTdFLFFBQVEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFtQjtJQUN0QyxLQUFLLE1BQU0sSUFBSSxJQUFJLFNBQVMsQ0FBQyxRQUFRLEVBQUU7UUFDckMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3hDLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDbEM7S0FDRjtJQUVELEtBQUssTUFBTSxJQUFJLElBQUksU0FBUyxDQUFDLE9BQU8sRUFBRTtRQUNwQyxJQUFJLElBQUksS0FBSyxjQUFjLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFO1lBQ3RFLFNBQVM7U0FDVjtRQUVELEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7S0FDeEM7QUFDSCxDQUFDO0FBRUQsTUFBTSxDQUFDLE9BQU87SUFDWixPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUU7O1FBQ2Qsb0RBQW9EO1FBQ3BELEtBQUssTUFBTSxJQUFJLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4QyxNQUFNLE9BQU8sR0FBRyxNQUFBLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLDBDQUFFLFFBQVEsRUFBRSxDQUFDO1lBQzVDLElBQUksT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQzthQUNuRTtTQUNGO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge2V4dG5hbWUsIGpvaW59IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9jb3JlJztcbmltcG9ydCB7RGlyRW50cnksIFJ1bGV9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzJztcblxuY29uc3QgVkFMSURfRVhURU5TSU9OUyA9IFsnLnNjc3MnLCAnLnNhc3MnLCAnLmNzcycsICcuc3R5bCcsICcubGVzcycsICcudHMnXTtcblxuZnVuY3Rpb24qIHZpc2l0RmlsZXMoZGlyZWN0b3J5OiBEaXJFbnRyeSk6IEl0ZXJhYmxlSXRlcmF0b3I8c3RyaW5nPiB7XG4gIGZvciAoY29uc3QgcGF0aCBvZiBkaXJlY3Rvcnkuc3ViZmlsZXMpIHtcbiAgICBjb25zdCBleHRlbnNpb24gPSBleHRuYW1lKHBhdGgpO1xuICAgIGlmIChWQUxJRF9FWFRFTlNJT05TLmluY2x1ZGVzKGV4dGVuc2lvbikpIHtcbiAgICAgIHlpZWxkIGpvaW4oZGlyZWN0b3J5LnBhdGgsIHBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIGZvciAoY29uc3QgcGF0aCBvZiBkaXJlY3Rvcnkuc3ViZGlycykge1xuICAgIGlmIChwYXRoID09PSAnbm9kZV9tb2R1bGVzJyB8fCBwYXRoLnN0YXJ0c1dpdGgoJy4nKSB8fCBwYXRoID09PSAnZGlzdCcpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIHlpZWxkKiB2aXNpdEZpbGVzKGRpcmVjdG9yeS5kaXIocGF0aCkpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCk6IFJ1bGUge1xuICByZXR1cm4gKHRyZWUpID0+IHtcbiAgICAvLyBWaXNpdCBhbGwgZmlsZXMgaW4gYW4gQW5ndWxhciB3b3Jrc3BhY2UgbW9ub3JlcG8uXG4gICAgZm9yIChjb25zdCBmaWxlIG9mIHZpc2l0RmlsZXModHJlZS5yb290KSkge1xuICAgICAgY29uc3QgY29udGVudCA9IHRyZWUucmVhZChmaWxlKT8udG9TdHJpbmcoKTtcbiAgICAgIGlmIChjb250ZW50Py5pbmNsdWRlcygnL2RlZXAvICcpKSB7XG4gICAgICAgIHRyZWUub3ZlcndyaXRlKGZpbGUsIGNvbnRlbnQucmVwbGFjZSgvXFwvZGVlcFxcLyAvZywgJzo6bmctZGVlcCAnKSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuIl19
@@ -1,51 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import { SchematicsException } from '@angular-devkit/schematics';
9
- import { relative } from 'path';
10
- import * as ts from 'typescript';
11
- import { getProjectTsConfigPaths } from '../../utils/project_tsconfig_paths';
12
- import { canMigrateFile, createMigrationProgram } from '../../utils/typescript/compiler_host';
13
- import { identifyDynamicQueryNodes, removeOptionsParameter, removeStaticFlag } from './util';
14
- /**
15
- * Runs the dynamic queries migration for all TypeScript projects in the current CLI workspace.
16
- */
17
- export default function () {
18
- return (tree) => {
19
- const { buildPaths, testPaths } = getProjectTsConfigPaths(tree);
20
- const basePath = process.cwd();
21
- const allPaths = [...buildPaths, ...testPaths];
22
- if (!allPaths.length) {
23
- throw new SchematicsException('Could not find any tsconfig file. Cannot migrate dynamic queries.');
24
- }
25
- for (const tsconfigPath of allPaths) {
26
- runDynamicQueryMigration(tree, tsconfigPath, basePath);
27
- }
28
- };
29
- }
30
- function runDynamicQueryMigration(tree, tsconfigPath, basePath) {
31
- const { program } = createMigrationProgram(tree, tsconfigPath, basePath);
32
- const typeChecker = program.getTypeChecker();
33
- const sourceFiles = program.getSourceFiles().filter(sourceFile => canMigrateFile(basePath, sourceFile, program));
34
- const printer = ts.createPrinter();
35
- sourceFiles.forEach(sourceFile => {
36
- const result = identifyDynamicQueryNodes(typeChecker, sourceFile);
37
- if (result.removeProperty.length || result.removeParameter.length) {
38
- const update = tree.beginUpdate(relative(basePath, sourceFile.fileName));
39
- result.removeProperty.forEach(node => {
40
- update.remove(node.getStart(), node.getWidth());
41
- update.insertRight(node.getStart(), printer.printNode(ts.EmitHint.Unspecified, removeStaticFlag(node), sourceFile));
42
- });
43
- result.removeParameter.forEach(node => {
44
- update.remove(node.getStart(), node.getWidth());
45
- update.insertRight(node.getStart(), printer.printNode(ts.EmitHint.Unspecified, removeOptionsParameter(node), sourceFile));
46
- });
47
- tree.commitUpdate(update);
48
- }
49
- });
50
- }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NjaGVtYXRpY3MvbWlncmF0aW9ucy9keW5hbWljLXF1ZXJpZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFPLG1CQUFtQixFQUFPLE1BQU0sNEJBQTRCLENBQUM7QUFDM0UsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5QixPQUFPLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVqQyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRSxPQUFPLEVBQUMsY0FBYyxFQUFFLHNCQUFzQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFFNUYsT0FBTyxFQUFDLHlCQUF5QixFQUFFLHNCQUFzQixFQUFFLGdCQUFnQixFQUFDLE1BQU0sUUFBUSxDQUFDO0FBRzNGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE9BQU87SUFDWixPQUFPLENBQUMsSUFBVSxFQUFFLEVBQUU7UUFDcEIsTUFBTSxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUMsR0FBRyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5RCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDL0IsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLFVBQVUsRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDO1FBRS9DLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ3BCLE1BQU0sSUFBSSxtQkFBbUIsQ0FDekIsbUVBQW1FLENBQUMsQ0FBQztTQUMxRTtRQUVELEtBQUssTUFBTSxZQUFZLElBQUksUUFBUSxFQUFFO1lBQ25DLHdCQUF3QixDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDeEQ7SUFDSCxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyx3QkFBd0IsQ0FBQyxJQUFVLEVBQUUsWUFBb0IsRUFBRSxRQUFnQjtJQUNsRixNQUFNLEVBQUMsT0FBTyxFQUFDLEdBQUcsc0JBQXNCLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2RSxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDN0MsTUFBTSxXQUFXLEdBQ2IsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDakcsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBRW5DLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDL0IsTUFBTSxNQUFNLEdBQUcseUJBQXlCLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRWxFLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUU7WUFDakUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBRXpFLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNuQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDaEQsTUFBTSxDQUFDLFdBQVcsQ0FDZCxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQ2YsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ3RGLENBQUMsQ0FBQyxDQUFDO1lBRUgsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3BDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUNoRCxNQUFNLENBQUMsV0FBVyxDQUNkLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFDZixPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLHNCQUFzQixDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDNUYsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7UnVsZSwgU2NoZW1hdGljc0V4Y2VwdGlvbiwgVHJlZX0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3MnO1xuaW1wb3J0IHtyZWxhdGl2ZX0gZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHtnZXRQcm9qZWN0VHNDb25maWdQYXRoc30gZnJvbSAnLi4vLi4vdXRpbHMvcHJvamVjdF90c2NvbmZpZ19wYXRocyc7XG5pbXBvcnQge2Nhbk1pZ3JhdGVGaWxlLCBjcmVhdGVNaWdyYXRpb25Qcm9ncmFtfSBmcm9tICcuLi8uLi91dGlscy90eXBlc2NyaXB0L2NvbXBpbGVyX2hvc3QnO1xuXG5pbXBvcnQge2lkZW50aWZ5RHluYW1pY1F1ZXJ5Tm9kZXMsIHJlbW92ZU9wdGlvbnNQYXJhbWV0ZXIsIHJlbW92ZVN0YXRpY0ZsYWd9IGZyb20gJy4vdXRpbCc7XG5cblxuLyoqXG4gKiBSdW5zIHRoZSBkeW5hbWljIHF1ZXJpZXMgbWlncmF0aW9uIGZvciBhbGwgVHlwZVNjcmlwdCBwcm9qZWN0cyBpbiB0aGUgY3VycmVudCBDTEkgd29ya3NwYWNlLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpOiBSdWxlIHtcbiAgcmV0dXJuICh0cmVlOiBUcmVlKSA9PiB7XG4gICAgY29uc3Qge2J1aWxkUGF0aHMsIHRlc3RQYXRoc30gPSBnZXRQcm9qZWN0VHNDb25maWdQYXRocyh0cmVlKTtcbiAgICBjb25zdCBiYXNlUGF0aCA9IHByb2Nlc3MuY3dkKCk7XG4gICAgY29uc3QgYWxsUGF0aHMgPSBbLi4uYnVpbGRQYXRocywgLi4udGVzdFBhdGhzXTtcblxuICAgIGlmICghYWxsUGF0aHMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgU2NoZW1hdGljc0V4Y2VwdGlvbihcbiAgICAgICAgICAnQ291bGQgbm90IGZpbmQgYW55IHRzY29uZmlnIGZpbGUuIENhbm5vdCBtaWdyYXRlIGR5bmFtaWMgcXVlcmllcy4nKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHRzY29uZmlnUGF0aCBvZiBhbGxQYXRocykge1xuICAgICAgcnVuRHluYW1pY1F1ZXJ5TWlncmF0aW9uKHRyZWUsIHRzY29uZmlnUGF0aCwgYmFzZVBhdGgpO1xuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gcnVuRHluYW1pY1F1ZXJ5TWlncmF0aW9uKHRyZWU6IFRyZWUsIHRzY29uZmlnUGF0aDogc3RyaW5nLCBiYXNlUGF0aDogc3RyaW5nKSB7XG4gIGNvbnN0IHtwcm9ncmFtfSA9IGNyZWF0ZU1pZ3JhdGlvblByb2dyYW0odHJlZSwgdHNjb25maWdQYXRoLCBiYXNlUGF0aCk7XG4gIGNvbnN0IHR5cGVDaGVja2VyID0gcHJvZ3JhbS5nZXRUeXBlQ2hlY2tlcigpO1xuICBjb25zdCBzb3VyY2VGaWxlcyA9XG4gICAgICBwcm9ncmFtLmdldFNvdXJjZUZpbGVzKCkuZmlsdGVyKHNvdXJjZUZpbGUgPT4gY2FuTWlncmF0ZUZpbGUoYmFzZVBhdGgsIHNvdXJjZUZpbGUsIHByb2dyYW0pKTtcbiAgY29uc3QgcHJpbnRlciA9IHRzLmNyZWF0ZVByaW50ZXIoKTtcblxuICBzb3VyY2VGaWxlcy5mb3JFYWNoKHNvdXJjZUZpbGUgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGlkZW50aWZ5RHluYW1pY1F1ZXJ5Tm9kZXModHlwZUNoZWNrZXIsIHNvdXJjZUZpbGUpO1xuXG4gICAgaWYgKHJlc3VsdC5yZW1vdmVQcm9wZXJ0eS5sZW5ndGggfHwgcmVzdWx0LnJlbW92ZVBhcmFtZXRlci5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHVwZGF0ZSA9IHRyZWUuYmVnaW5VcGRhdGUocmVsYXRpdmUoYmFzZVBhdGgsIHNvdXJjZUZpbGUuZmlsZU5hbWUpKTtcblxuICAgICAgcmVzdWx0LnJlbW92ZVByb3BlcnR5LmZvckVhY2gobm9kZSA9PiB7XG4gICAgICAgIHVwZGF0ZS5yZW1vdmUobm9kZS5nZXRTdGFydCgpLCBub2RlLmdldFdpZHRoKCkpO1xuICAgICAgICB1cGRhdGUuaW5zZXJ0UmlnaHQoXG4gICAgICAgICAgICBub2RlLmdldFN0YXJ0KCksXG4gICAgICAgICAgICBwcmludGVyLnByaW50Tm9kZSh0cy5FbWl0SGludC5VbnNwZWNpZmllZCwgcmVtb3ZlU3RhdGljRmxhZyhub2RlKSwgc291cmNlRmlsZSkpO1xuICAgICAgfSk7XG5cbiAgICAgIHJlc3VsdC5yZW1vdmVQYXJhbWV0ZXIuZm9yRWFjaChub2RlID0+IHtcbiAgICAgICAgdXBkYXRlLnJlbW92ZShub2RlLmdldFN0YXJ0KCksIG5vZGUuZ2V0V2lkdGgoKSk7XG4gICAgICAgIHVwZGF0ZS5pbnNlcnRSaWdodChcbiAgICAgICAgICAgIG5vZGUuZ2V0U3RhcnQoKSxcbiAgICAgICAgICAgIHByaW50ZXIucHJpbnROb2RlKHRzLkVtaXRIaW50LlVuc3BlY2lmaWVkLCByZW1vdmVPcHRpb25zUGFyYW1ldGVyKG5vZGUpLCBzb3VyY2VGaWxlKSk7XG4gICAgICB9KTtcblxuICAgICAgdHJlZS5jb21taXRVcGRhdGUodXBkYXRlKTtcbiAgICB9XG4gIH0pO1xufVxuIl19
@@ -1,65 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import * as ts from 'typescript';
9
- import { getAngularDecorators } from '../../utils/ng_decorators';
10
- /**
11
- * Identifies the nodes that should be migrated by the dynamic
12
- * queries schematic. Splits the nodes into the following categories:
13
- * - `removeProperty` - queries from which we should only remove the `static` property of the
14
- * `options` parameter (e.g. `@ViewChild('child', {static: false, read: ElementRef})`).
15
- * - `removeParameter` - queries from which we should drop the entire `options` parameter.
16
- * (e.g. `@ViewChild('child', {static: false})`).
17
- */
18
- export function identifyDynamicQueryNodes(typeChecker, sourceFile) {
19
- const removeProperty = [];
20
- const removeParameter = [];
21
- sourceFile.forEachChild(function walk(node) {
22
- if (ts.isClassDeclaration(node)) {
23
- node.members.forEach(member => {
24
- const angularDecorators = member.decorators && getAngularDecorators(typeChecker, member.decorators);
25
- if (angularDecorators) {
26
- angularDecorators
27
- // Filter out the queries that can have the `static` flag.
28
- .filter(decorator => {
29
- return decorator.name === 'ViewChild' || decorator.name === 'ContentChild';
30
- })
31
- // Filter out the queries where the `static` flag is explicitly set to `false`.
32
- .filter(decorator => {
33
- const options = decorator.node.expression.arguments[1];
34
- return options && ts.isObjectLiteralExpression(options) &&
35
- options.properties.some(property => ts.isPropertyAssignment(property) &&
36
- property.initializer.kind === ts.SyntaxKind.FalseKeyword);
37
- })
38
- .forEach(decorator => {
39
- const options = decorator.node.expression.arguments[1];
40
- // At this point we know that at least one property is the `static` flag. If this is
41
- // the only property we can drop the entire object literal, otherwise we have to
42
- // drop only the property.
43
- if (options.properties.length === 1) {
44
- removeParameter.push(decorator.node.expression);
45
- }
46
- else {
47
- removeProperty.push(options);
48
- }
49
- });
50
- }
51
- });
52
- }
53
- node.forEachChild(walk);
54
- });
55
- return { removeProperty, removeParameter };
56
- }
57
- /** Removes the `options` parameter from the call expression of a query decorator. */
58
- export function removeOptionsParameter(node) {
59
- return ts.updateCall(node, node.expression, node.typeArguments, [node.arguments[0]]);
60
- }
61
- /** Removes the `static` property from an object literal expression. */
62
- export function removeStaticFlag(node) {
63
- return ts.updateObjectLiteral(node, node.properties.filter(property => property.name && property.name.getText() !== 'static'));
64
- }
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc2NoZW1hdGljcy9taWdyYXRpb25zL2R5bmFtaWMtcXVlcmllcy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2pDLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRS9EOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUseUJBQXlCLENBQUMsV0FBMkIsRUFBRSxVQUF5QjtJQUM5RixNQUFNLGNBQWMsR0FBaUMsRUFBRSxDQUFDO0lBQ3hELE1BQU0sZUFBZSxHQUF3QixFQUFFLENBQUM7SUFFaEQsVUFBVSxDQUFDLFlBQVksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFhO1FBQ2pELElBQUksRUFBRSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFO1lBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUM1QixNQUFNLGlCQUFpQixHQUNuQixNQUFNLENBQUMsVUFBVSxJQUFJLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBRTlFLElBQUksaUJBQWlCLEVBQUU7b0JBQ3JCLGlCQUFpQjt3QkFDYiwwREFBMEQ7eUJBQ3pELE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRTt3QkFDbEIsT0FBTyxTQUFTLENBQUMsSUFBSSxLQUFLLFdBQVcsSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQztvQkFDN0UsQ0FBQyxDQUFDO3dCQUNGLCtFQUErRTt5QkFDOUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFO3dCQUNsQixNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ3ZELE9BQU8sT0FBTyxJQUFJLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLENBQUM7NEJBQ25ELE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUNuQixRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUM7Z0NBQ3pDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQ3hFLENBQUMsQ0FBQzt5QkFDRCxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7d0JBQ25CLE1BQU0sT0FBTyxHQUNULFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQStCLENBQUM7d0JBRXpFLG9GQUFvRjt3QkFDcEYsZ0ZBQWdGO3dCQUNoRiwwQkFBMEI7d0JBQzFCLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFOzRCQUNuQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7eUJBQ2pEOzZCQUFNOzRCQUNMLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7eUJBQzlCO29CQUNILENBQUMsQ0FBQyxDQUFDO2lCQUNSO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLEVBQUMsY0FBYyxFQUFFLGVBQWUsRUFBQyxDQUFDO0FBQzNDLENBQUM7QUFFRCxxRkFBcUY7QUFDckYsTUFBTSxVQUFVLHNCQUFzQixDQUFDLElBQXVCO0lBQzVELE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkYsQ0FBQztBQUVELHVFQUF1RTtBQUN2RSxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFBZ0M7SUFDL0QsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQ3pCLElBQUksRUFDSixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBQ2pHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQge2dldEFuZ3VsYXJEZWNvcmF0b3JzfSBmcm9tICcuLi8uLi91dGlscy9uZ19kZWNvcmF0b3JzJztcblxuLyoqXG4gKiBJZGVudGlmaWVzIHRoZSBub2RlcyB0aGF0IHNob3VsZCBiZSBtaWdyYXRlZCBieSB0aGUgZHluYW1pY1xuICogcXVlcmllcyBzY2hlbWF0aWMuIFNwbGl0cyB0aGUgbm9kZXMgaW50byB0aGUgZm9sbG93aW5nIGNhdGVnb3JpZXM6XG4gKiAtIGByZW1vdmVQcm9wZXJ0eWAgLSBxdWVyaWVzIGZyb20gd2hpY2ggd2Ugc2hvdWxkIG9ubHkgcmVtb3ZlIHRoZSBgc3RhdGljYCBwcm9wZXJ0eSBvZiB0aGVcbiAqICBgb3B0aW9uc2AgcGFyYW1ldGVyIChlLmcuIGBAVmlld0NoaWxkKCdjaGlsZCcsIHtzdGF0aWM6IGZhbHNlLCByZWFkOiBFbGVtZW50UmVmfSlgKS5cbiAqIC0gYHJlbW92ZVBhcmFtZXRlcmAgLSBxdWVyaWVzIGZyb20gd2hpY2ggd2Ugc2hvdWxkIGRyb3AgdGhlIGVudGlyZSBgb3B0aW9uc2AgcGFyYW1ldGVyLlxuICogIChlLmcuIGBAVmlld0NoaWxkKCdjaGlsZCcsIHtzdGF0aWM6IGZhbHNlfSlgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlkZW50aWZ5RHluYW1pY1F1ZXJ5Tm9kZXModHlwZUNoZWNrZXI6IHRzLlR5cGVDaGVja2VyLCBzb3VyY2VGaWxlOiB0cy5Tb3VyY2VGaWxlKSB7XG4gIGNvbnN0IHJlbW92ZVByb3BlcnR5OiB0cy5PYmplY3RMaXRlcmFsRXhwcmVzc2lvbltdID0gW107XG4gIGNvbnN0IHJlbW92ZVBhcmFtZXRlcjogdHMuQ2FsbEV4cHJlc3Npb25bXSA9IFtdO1xuXG4gIHNvdXJjZUZpbGUuZm9yRWFjaENoaWxkKGZ1bmN0aW9uIHdhbGsobm9kZTogdHMuTm9kZSkge1xuICAgIGlmICh0cy5pc0NsYXNzRGVjbGFyYXRpb24obm9kZSkpIHtcbiAgICAgIG5vZGUubWVtYmVycy5mb3JFYWNoKG1lbWJlciA9PiB7XG4gICAgICAgIGNvbnN0IGFuZ3VsYXJEZWNvcmF0b3JzID1cbiAgICAgICAgICAgIG1lbWJlci5kZWNvcmF0b3JzICYmIGdldEFuZ3VsYXJEZWNvcmF0b3JzKHR5cGVDaGVja2VyLCBtZW1iZXIuZGVjb3JhdG9ycyk7XG5cbiAgICAgICAgaWYgKGFuZ3VsYXJEZWNvcmF0b3JzKSB7XG4gICAgICAgICAgYW5ndWxhckRlY29yYXRvcnNcbiAgICAgICAgICAgICAgLy8gRmlsdGVyIG91dCB0aGUgcXVlcmllcyB0aGF0IGNhbiBoYXZlIHRoZSBgc3RhdGljYCBmbGFnLlxuICAgICAgICAgICAgICAuZmlsdGVyKGRlY29yYXRvciA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlY29yYXRvci5uYW1lID09PSAnVmlld0NoaWxkJyB8fCBkZWNvcmF0b3IubmFtZSA9PT0gJ0NvbnRlbnRDaGlsZCc7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC8vIEZpbHRlciBvdXQgdGhlIHF1ZXJpZXMgd2hlcmUgdGhlIGBzdGF0aWNgIGZsYWcgaXMgZXhwbGljaXRseSBzZXQgdG8gYGZhbHNlYC5cbiAgICAgICAgICAgICAgLmZpbHRlcihkZWNvcmF0b3IgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSBkZWNvcmF0b3Iubm9kZS5leHByZXNzaW9uLmFyZ3VtZW50c1sxXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucyAmJiB0cy5pc09iamVjdExpdGVyYWxFeHByZXNzaW9uKG9wdGlvbnMpICYmXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMucHJvcGVydGllcy5zb21lKFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkgPT4gdHMuaXNQcm9wZXJ0eUFzc2lnbm1lbnQocHJvcGVydHkpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkuaW5pdGlhbGl6ZXIua2luZCA9PT0gdHMuU3ludGF4S2luZC5GYWxzZUtleXdvcmQpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAuZm9yRWFjaChkZWNvcmF0b3IgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPVxuICAgICAgICAgICAgICAgICAgICBkZWNvcmF0b3Iubm9kZS5leHByZXNzaW9uLmFyZ3VtZW50c1sxXSBhcyB0cy5PYmplY3RMaXRlcmFsRXhwcmVzc2lvbjtcblxuICAgICAgICAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgd2Uga25vdyB0aGF0IGF0IGxlYXN0IG9uZSBwcm9wZXJ0eSBpcyB0aGUgYHN0YXRpY2AgZmxhZy4gSWYgdGhpcyBpc1xuICAgICAgICAgICAgICAgIC8vIHRoZSBvbmx5IHByb3BlcnR5IHdlIGNhbiBkcm9wIHRoZSBlbnRpcmUgb2JqZWN0IGxpdGVyYWwsIG90aGVyd2lzZSB3ZSBoYXZlIHRvXG4gICAgICAgICAgICAgICAgLy8gZHJvcCBvbmx5IHRoZSBwcm9wZXJ0eS5cbiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5wcm9wZXJ0aWVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgcmVtb3ZlUGFyYW1ldGVyLnB1c2goZGVjb3JhdG9yLm5vZGUuZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHJlbW92ZVByb3BlcnR5LnB1c2gob3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgbm9kZS5mb3JFYWNoQ2hpbGQod2Fsayk7XG4gIH0pO1xuXG4gIHJldHVybiB7cmVtb3ZlUHJvcGVydHksIHJlbW92ZVBhcmFtZXRlcn07XG59XG5cbi8qKiBSZW1vdmVzIHRoZSBgb3B0aW9uc2AgcGFyYW1ldGVyIGZyb20gdGhlIGNhbGwgZXhwcmVzc2lvbiBvZiBhIHF1ZXJ5IGRlY29yYXRvci4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVPcHRpb25zUGFyYW1ldGVyKG5vZGU6IHRzLkNhbGxFeHByZXNzaW9uKTogdHMuQ2FsbEV4cHJlc3Npb24ge1xuICByZXR1cm4gdHMudXBkYXRlQ2FsbChub2RlLCBub2RlLmV4cHJlc3Npb24sIG5vZGUudHlwZUFyZ3VtZW50cywgW25vZGUuYXJndW1lbnRzWzBdXSk7XG59XG5cbi8qKiBSZW1vdmVzIHRoZSBgc3RhdGljYCBwcm9wZXJ0eSBmcm9tIGFuIG9iamVjdCBsaXRlcmFsIGV4cHJlc3Npb24uICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlU3RhdGljRmxhZyhub2RlOiB0cy5PYmplY3RMaXRlcmFsRXhwcmVzc2lvbik6IHRzLk9iamVjdExpdGVyYWxFeHByZXNzaW9uIHtcbiAgcmV0dXJuIHRzLnVwZGF0ZU9iamVjdExpdGVyYWwoXG4gICAgICBub2RlLFxuICAgICAgbm9kZS5wcm9wZXJ0aWVzLmZpbHRlcihwcm9wZXJ0eSA9PiBwcm9wZXJ0eS5uYW1lICYmIHByb3BlcnR5Lm5hbWUuZ2V0VGV4dCgpICE9PSAnc3RhdGljJykpO1xufVxuIl19
@@ -1,105 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import * as ts from 'typescript';
9
- import { isExtraOptions, isRouterModuleForRoot } from './util';
10
- /** The property name for the options that need to be migrated */
11
- const INITIAL_NAVIGATION = 'initialNavigation';
12
- /**
13
- * Visitor that walks through specified TypeScript nodes and collects all
14
- * found ExtraOptions#InitialNavigation assignments.
15
- */
16
- export class InitialNavigationCollector {
17
- constructor(typeChecker) {
18
- this.typeChecker = typeChecker;
19
- this.assignments = new Set();
20
- }
21
- visitNode(node) {
22
- let extraOptionsLiteral = null;
23
- if (isRouterModuleForRoot(this.typeChecker, node) && node.arguments.length > 0) {
24
- if (node.arguments.length === 1) {
25
- return;
26
- }
27
- if (ts.isObjectLiteralExpression(node.arguments[1])) {
28
- extraOptionsLiteral = node.arguments[1];
29
- }
30
- else if (ts.isIdentifier(node.arguments[1])) {
31
- extraOptionsLiteral =
32
- this.getLiteralNeedingMigrationFromIdentifier(node.arguments[1]);
33
- }
34
- }
35
- else if (ts.isVariableDeclaration(node)) {
36
- extraOptionsLiteral = this.getLiteralNeedingMigration(node);
37
- }
38
- if (extraOptionsLiteral !== null) {
39
- this.visitExtraOptionsLiteral(extraOptionsLiteral);
40
- }
41
- else {
42
- // no match found, continue iteration
43
- ts.forEachChild(node, n => this.visitNode(n));
44
- }
45
- }
46
- visitExtraOptionsLiteral(extraOptionsLiteral) {
47
- for (const prop of extraOptionsLiteral.properties) {
48
- if (ts.isPropertyAssignment(prop) &&
49
- (ts.isIdentifier(prop.name) || ts.isStringLiteralLike(prop.name))) {
50
- if (prop.name.text === INITIAL_NAVIGATION && isValidInitialNavigationValue(prop)) {
51
- this.assignments.add(prop);
52
- }
53
- }
54
- else if (ts.isSpreadAssignment(prop) && ts.isIdentifier(prop.expression)) {
55
- const literalFromSpreadAssignment = this.getLiteralNeedingMigrationFromIdentifier(prop.expression);
56
- if (literalFromSpreadAssignment !== null) {
57
- this.visitExtraOptionsLiteral(literalFromSpreadAssignment);
58
- }
59
- }
60
- }
61
- }
62
- getLiteralNeedingMigrationFromIdentifier(id) {
63
- const symbolForIdentifier = this.typeChecker.getSymbolAtLocation(id);
64
- if (symbolForIdentifier === undefined) {
65
- return null;
66
- }
67
- if (symbolForIdentifier.declarations === undefined ||
68
- symbolForIdentifier.declarations.length === 0) {
69
- return null;
70
- }
71
- const declarationNode = symbolForIdentifier.declarations[0];
72
- if (!ts.isVariableDeclaration(declarationNode) || declarationNode.initializer === undefined ||
73
- !ts.isObjectLiteralExpression(declarationNode.initializer)) {
74
- return null;
75
- }
76
- return declarationNode.initializer;
77
- }
78
- getLiteralNeedingMigration(node) {
79
- if (node.initializer === undefined) {
80
- return null;
81
- }
82
- // declaration could be `x: ExtraOptions = {}` or `x = {} as ExtraOptions`
83
- if (ts.isAsExpression(node.initializer) &&
84
- ts.isObjectLiteralExpression(node.initializer.expression) &&
85
- isExtraOptions(this.typeChecker, node.initializer.type)) {
86
- return node.initializer.expression;
87
- }
88
- else if (node.type !== undefined && ts.isObjectLiteralExpression(node.initializer) &&
89
- isExtraOptions(this.typeChecker, node.type)) {
90
- return node.initializer;
91
- }
92
- return null;
93
- }
94
- }
95
- /**
96
- * Check whether the value assigned to an `initialNavigation` assignment
97
- * conforms to the expected types for ExtraOptions#InitialNavigation
98
- * @param node the property assignment to check
99
- */
100
- function isValidInitialNavigationValue(node) {
101
- return ts.isStringLiteralLike(node.initializer) ||
102
- node.initializer.kind === ts.SyntaxKind.FalseKeyword ||
103
- node.initializer.kind === ts.SyntaxKind.TrueKeyword;
104
- }
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zY2hlbWF0aWNzL21pZ3JhdGlvbnMvaW5pdGlhbC1uYXZpZ2F0aW9uL2NvbGxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNqQyxPQUFPLEVBQUMsY0FBYyxFQUFFLHFCQUFxQixFQUFDLE1BQU0sUUFBUSxDQUFDO0FBRzdELGlFQUFpRTtBQUNqRSxNQUFNLGtCQUFrQixHQUFHLG1CQUFtQixDQUFDO0FBRS9DOzs7R0FHRztBQUNILE1BQU0sT0FBTywwQkFBMEI7SUFHckMsWUFBNkIsV0FBMkI7UUFBM0IsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBRmpELGdCQUFXLEdBQStCLElBQUksR0FBRyxFQUFFLENBQUM7SUFFQSxDQUFDO0lBRTVELFNBQVMsQ0FBQyxJQUFhO1FBQ3JCLElBQUksbUJBQW1CLEdBQW9DLElBQUksQ0FBQztRQUNoRSxJQUFJLHFCQUFxQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzlFLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUMvQixPQUFPO2FBQ1I7WUFFRCxJQUFJLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ25ELG1CQUFtQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUErQixDQUFDO2FBQ3ZFO2lCQUFNLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzdDLG1CQUFtQjtvQkFDZixJQUFJLENBQUMsd0NBQXdDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQWtCLENBQUMsQ0FBQzthQUN2RjtTQUNGO2FBQU0sSUFBSSxFQUFFLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDekMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzdEO1FBRUQsSUFBSSxtQkFBbUIsS0FBSyxJQUFJLEVBQUU7WUFDaEMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDcEQ7YUFBTTtZQUNMLHFDQUFxQztZQUNyQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMvQztJQUNILENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxtQkFBK0M7UUFDdEUsS0FBSyxNQUFNLElBQUksSUFBSSxtQkFBbUIsQ0FBQyxVQUFVLEVBQUU7WUFDakQsSUFBSSxFQUFFLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDO2dCQUM3QixDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtnQkFDckUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxrQkFBa0IsSUFBSSw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDaEYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQzVCO2FBQ0Y7aUJBQU0sSUFBSSxFQUFFLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQzFFLE1BQU0sMkJBQTJCLEdBQzdCLElBQUksQ0FBQyx3Q0FBd0MsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ25FLElBQUksMkJBQTJCLEtBQUssSUFBSSxFQUFFO29CQUN4QyxJQUFJLENBQUMsd0JBQXdCLENBQUMsMkJBQTJCLENBQUMsQ0FBQztpQkFDNUQ7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUVPLHdDQUF3QyxDQUFDLEVBQWlCO1FBRWhFLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyRSxJQUFJLG1CQUFtQixLQUFLLFNBQVMsRUFBRTtZQUNyQyxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBSSxtQkFBbUIsQ0FBQyxZQUFZLEtBQUssU0FBUztZQUM5QyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNqRCxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsZUFBZSxDQUFDLElBQUksZUFBZSxDQUFDLFdBQVcsS0FBSyxTQUFTO1lBQ3ZGLENBQUMsRUFBRSxDQUFDLHlCQUF5QixDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUM5RCxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsT0FBTyxlQUFlLENBQUMsV0FBVyxDQUFDO0lBQ3JDLENBQUM7SUFFTywwQkFBMEIsQ0FBQyxJQUE0QjtRQUU3RCxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFO1lBQ2xDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCwwRUFBMEU7UUFDMUUsSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDbkMsRUFBRSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO1lBQ3pELGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDM0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztTQUNwQzthQUFNLElBQ0gsSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksRUFBRSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDekUsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQy9DLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUN6QjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsNkJBQTZCLENBQUMsSUFBMkI7SUFDaEUsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsVUFBVSxDQUFDLFlBQVk7UUFDcEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7QUFDMUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQge2lzRXh0cmFPcHRpb25zLCBpc1JvdXRlck1vZHVsZUZvclJvb3R9IGZyb20gJy4vdXRpbCc7XG5cblxuLyoqIFRoZSBwcm9wZXJ0eSBuYW1lIGZvciB0aGUgb3B0aW9ucyB0aGF0IG5lZWQgdG8gYmUgbWlncmF0ZWQgKi9cbmNvbnN0IElOSVRJQUxfTkFWSUdBVElPTiA9ICdpbml0aWFsTmF2aWdhdGlvbic7XG5cbi8qKlxuICogVmlzaXRvciB0aGF0IHdhbGtzIHRocm91Z2ggc3BlY2lmaWVkIFR5cGVTY3JpcHQgbm9kZXMgYW5kIGNvbGxlY3RzIGFsbFxuICogZm91bmQgRXh0cmFPcHRpb25zI0luaXRpYWxOYXZpZ2F0aW9uIGFzc2lnbm1lbnRzLlxuICovXG5leHBvcnQgY2xhc3MgSW5pdGlhbE5hdmlnYXRpb25Db2xsZWN0b3Ige1xuICBwdWJsaWMgYXNzaWdubWVudHM6IFNldDx0cy5Qcm9wZXJ0eUFzc2lnbm1lbnQ+ID0gbmV3IFNldCgpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgdHlwZUNoZWNrZXI6IHRzLlR5cGVDaGVja2VyKSB7fVxuXG4gIHZpc2l0Tm9kZShub2RlOiB0cy5Ob2RlKSB7XG4gICAgbGV0IGV4dHJhT3B0aW9uc0xpdGVyYWw6IHRzLk9iamVjdExpdGVyYWxFeHByZXNzaW9ufG51bGwgPSBudWxsO1xuICAgIGlmIChpc1JvdXRlck1vZHVsZUZvclJvb3QodGhpcy50eXBlQ2hlY2tlciwgbm9kZSkgJiYgbm9kZS5hcmd1bWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKG5vZGUuYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0cy5pc09iamVjdExpdGVyYWxFeHByZXNzaW9uKG5vZGUuYXJndW1lbnRzWzFdKSkge1xuICAgICAgICBleHRyYU9wdGlvbnNMaXRlcmFsID0gbm9kZS5hcmd1bWVudHNbMV0gYXMgdHMuT2JqZWN0TGl0ZXJhbEV4cHJlc3Npb247XG4gICAgICB9IGVsc2UgaWYgKHRzLmlzSWRlbnRpZmllcihub2RlLmFyZ3VtZW50c1sxXSkpIHtcbiAgICAgICAgZXh0cmFPcHRpb25zTGl0ZXJhbCA9XG4gICAgICAgICAgICB0aGlzLmdldExpdGVyYWxOZWVkaW5nTWlncmF0aW9uRnJvbUlkZW50aWZpZXIobm9kZS5hcmd1bWVudHNbMV0gYXMgdHMuSWRlbnRpZmllcik7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0cy5pc1ZhcmlhYmxlRGVjbGFyYXRpb24obm9kZSkpIHtcbiAgICAgIGV4dHJhT3B0aW9uc0xpdGVyYWwgPSB0aGlzLmdldExpdGVyYWxOZWVkaW5nTWlncmF0aW9uKG5vZGUpO1xuICAgIH1cblxuICAgIGlmIChleHRyYU9wdGlvbnNMaXRlcmFsICE9PSBudWxsKSB7XG4gICAgICB0aGlzLnZpc2l0RXh0cmFPcHRpb25zTGl0ZXJhbChleHRyYU9wdGlvbnNMaXRlcmFsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gbm8gbWF0Y2ggZm91bmQsIGNvbnRpbnVlIGl0ZXJhdGlvblxuICAgICAgdHMuZm9yRWFjaENoaWxkKG5vZGUsIG4gPT4gdGhpcy52aXNpdE5vZGUobikpO1xuICAgIH1cbiAgfVxuXG4gIHZpc2l0RXh0cmFPcHRpb25zTGl0ZXJhbChleHRyYU9wdGlvbnNMaXRlcmFsOiB0cy5PYmplY3RMaXRlcmFsRXhwcmVzc2lvbikge1xuICAgIGZvciAoY29uc3QgcHJvcCBvZiBleHRyYU9wdGlvbnNMaXRlcmFsLnByb3BlcnRpZXMpIHtcbiAgICAgIGlmICh0cy5pc1Byb3BlcnR5QXNzaWdubWVudChwcm9wKSAmJlxuICAgICAgICAgICh0cy5pc0lkZW50aWZpZXIocHJvcC5uYW1lKSB8fCB0cy5pc1N0cmluZ0xpdGVyYWxMaWtlKHByb3AubmFtZSkpKSB7XG4gICAgICAgIGlmIChwcm9wLm5hbWUudGV4dCA9PT0gSU5JVElBTF9OQVZJR0FUSU9OICYmIGlzVmFsaWRJbml0aWFsTmF2aWdhdGlvblZhbHVlKHByb3ApKSB7XG4gICAgICAgICAgdGhpcy5hc3NpZ25tZW50cy5hZGQocHJvcCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodHMuaXNTcHJlYWRBc3NpZ25tZW50KHByb3ApICYmIHRzLmlzSWRlbnRpZmllcihwcm9wLmV4cHJlc3Npb24pKSB7XG4gICAgICAgIGNvbnN0IGxpdGVyYWxGcm9tU3ByZWFkQXNzaWdubWVudCA9XG4gICAgICAgICAgICB0aGlzLmdldExpdGVyYWxOZWVkaW5nTWlncmF0aW9uRnJvbUlkZW50aWZpZXIocHJvcC5leHByZXNzaW9uKTtcbiAgICAgICAgaWYgKGxpdGVyYWxGcm9tU3ByZWFkQXNzaWdubWVudCAhPT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMudmlzaXRFeHRyYU9wdGlvbnNMaXRlcmFsKGxpdGVyYWxGcm9tU3ByZWFkQXNzaWdubWVudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldExpdGVyYWxOZWVkaW5nTWlncmF0aW9uRnJvbUlkZW50aWZpZXIoaWQ6IHRzLklkZW50aWZpZXIpOiB0cy5PYmplY3RMaXRlcmFsRXhwcmVzc2lvblxuICAgICAgfG51bGwge1xuICAgIGNvbnN0IHN5bWJvbEZvcklkZW50aWZpZXIgPSB0aGlzLnR5cGVDaGVja2VyLmdldFN5bWJvbEF0TG9jYXRpb24oaWQpO1xuICAgIGlmIChzeW1ib2xGb3JJZGVudGlmaWVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChzeW1ib2xGb3JJZGVudGlmaWVyLmRlY2xhcmF0aW9ucyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgIHN5bWJvbEZvcklkZW50aWZpZXIuZGVjbGFyYXRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgZGVjbGFyYXRpb25Ob2RlID0gc3ltYm9sRm9ySWRlbnRpZmllci5kZWNsYXJhdGlvbnNbMF07XG4gICAgaWYgKCF0cy5pc1ZhcmlhYmxlRGVjbGFyYXRpb24oZGVjbGFyYXRpb25Ob2RlKSB8fCBkZWNsYXJhdGlvbk5vZGUuaW5pdGlhbGl6ZXIgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAhdHMuaXNPYmplY3RMaXRlcmFsRXhwcmVzc2lvbihkZWNsYXJhdGlvbk5vZGUuaW5pdGlhbGl6ZXIpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVjbGFyYXRpb25Ob2RlLmluaXRpYWxpemVyO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRMaXRlcmFsTmVlZGluZ01pZ3JhdGlvbihub2RlOiB0cy5WYXJpYWJsZURlY2xhcmF0aW9uKTogdHMuT2JqZWN0TGl0ZXJhbEV4cHJlc3Npb25cbiAgICAgIHxudWxsIHtcbiAgICBpZiAobm9kZS5pbml0aWFsaXplciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBkZWNsYXJhdGlvbiBjb3VsZCBiZSBgeDogRXh0cmFPcHRpb25zID0ge31gIG9yIGB4ID0ge30gYXMgRXh0cmFPcHRpb25zYFxuICAgIGlmICh0cy5pc0FzRXhwcmVzc2lvbihub2RlLmluaXRpYWxpemVyKSAmJlxuICAgICAgICB0cy5pc09iamVjdExpdGVyYWxFeHByZXNzaW9uKG5vZGUuaW5pdGlhbGl6ZXIuZXhwcmVzc2lvbikgJiZcbiAgICAgICAgaXNFeHRyYU9wdGlvbnModGhpcy50eXBlQ2hlY2tlciwgbm9kZS5pbml0aWFsaXplci50eXBlKSkge1xuICAgICAgcmV0dXJuIG5vZGUuaW5pdGlhbGl6ZXIuZXhwcmVzc2lvbjtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgICBub2RlLnR5cGUgIT09IHVuZGVmaW5lZCAmJiB0cy5pc09iamVjdExpdGVyYWxFeHByZXNzaW9uKG5vZGUuaW5pdGlhbGl6ZXIpICYmXG4gICAgICAgIGlzRXh0cmFPcHRpb25zKHRoaXMudHlwZUNoZWNrZXIsIG5vZGUudHlwZSkpIHtcbiAgICAgIHJldHVybiBub2RlLmluaXRpYWxpemVyO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciB0aGUgdmFsdWUgYXNzaWduZWQgdG8gYW4gYGluaXRpYWxOYXZpZ2F0aW9uYCBhc3NpZ25tZW50XG4gKiBjb25mb3JtcyB0byB0aGUgZXhwZWN0ZWQgdHlwZXMgZm9yIEV4dHJhT3B0aW9ucyNJbml0aWFsTmF2aWdhdGlvblxuICogQHBhcmFtIG5vZGUgdGhlIHByb3BlcnR5IGFzc2lnbm1lbnQgdG8gY2hlY2tcbiAqL1xuZnVuY3Rpb24gaXNWYWxpZEluaXRpYWxOYXZpZ2F0aW9uVmFsdWUobm9kZTogdHMuUHJvcGVydHlBc3NpZ25tZW50KTogYm9vbGVhbiB7XG4gIHJldHVybiB0cy5pc1N0cmluZ0xpdGVyYWxMaWtlKG5vZGUuaW5pdGlhbGl6ZXIpIHx8XG4gICAgICBub2RlLmluaXRpYWxpemVyLmtpbmQgPT09IHRzLlN5bnRheEtpbmQuRmFsc2VLZXl3b3JkIHx8XG4gICAgICBub2RlLmluaXRpYWxpemVyLmtpbmQgPT09IHRzLlN5bnRheEtpbmQuVHJ1ZUtleXdvcmQ7XG59XG4iXX0=
@@ -1,61 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import { SchematicsException } from '@angular-devkit/schematics';
9
- import { relative } from 'path';
10
- import { getProjectTsConfigPaths } from '../../utils/project_tsconfig_paths';
11
- import { canMigrateFile, createMigrationProgram } from '../../utils/typescript/compiler_host';
12
- import { InitialNavigationCollector } from './collector';
13
- import { InitialNavigationTransform } from './transform';
14
- /** Entry point for the v10 "initialNavigation RouterModule options" schematic. */
15
- export default function () {
16
- return (tree) => {
17
- const { buildPaths, testPaths } = getProjectTsConfigPaths(tree);
18
- const basePath = process.cwd();
19
- if (!buildPaths.length && !testPaths.length) {
20
- throw new SchematicsException('Could not find any tsconfig file. Cannot update the "initialNavigation" option for RouterModule');
21
- }
22
- for (const tsconfigPath of [...buildPaths, ...testPaths]) {
23
- runInitialNavigationMigration(tree, tsconfigPath, basePath);
24
- }
25
- };
26
- }
27
- function runInitialNavigationMigration(tree, tsconfigPath, basePath) {
28
- const { program } = createMigrationProgram(tree, tsconfigPath, basePath);
29
- const typeChecker = program.getTypeChecker();
30
- const initialNavigationCollector = new InitialNavigationCollector(typeChecker);
31
- const sourceFiles = program.getSourceFiles().filter(sourceFile => canMigrateFile(basePath, sourceFile, program));
32
- // Analyze source files by detecting all modules.
33
- sourceFiles.forEach(sourceFile => initialNavigationCollector.visitNode(sourceFile));
34
- const { assignments } = initialNavigationCollector;
35
- const transformer = new InitialNavigationTransform(getUpdateRecorder);
36
- const updateRecorders = new Map();
37
- transformer.migrateInitialNavigationAssignments(Array.from(assignments));
38
- // Walk through each update recorder and commit the update. We need to commit the
39
- // updates in batches per source file as there can be only one recorder per source
40
- // file in order to avoid shift character offsets.
41
- updateRecorders.forEach(recorder => recorder.commitUpdate());
42
- /** Gets the update recorder for the specified source file. */
43
- function getUpdateRecorder(sourceFile) {
44
- if (updateRecorders.has(sourceFile)) {
45
- return updateRecorders.get(sourceFile);
46
- }
47
- const treeRecorder = tree.beginUpdate(relative(basePath, sourceFile.fileName));
48
- const recorder = {
49
- updateNode(node, newText) {
50
- treeRecorder.remove(node.getStart(), node.getWidth());
51
- treeRecorder.insertRight(node.getStart(), newText);
52
- },
53
- commitUpdate() {
54
- tree.commitUpdate(treeRecorder);
55
- }
56
- };
57
- updateRecorders.set(sourceFile, recorder);
58
- return recorder;
59
- }
60
- }
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NjaGVtYXRpY3MvbWlncmF0aW9ucy9pbml0aWFsLW5hdmlnYXRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFPLG1CQUFtQixFQUFPLE1BQU0sNEJBQTRCLENBQUM7QUFDM0UsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUU5QixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRSxPQUFPLEVBQUMsY0FBYyxFQUFFLHNCQUFzQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDNUYsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ3ZELE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUd2RCxrRkFBa0Y7QUFDbEYsTUFBTSxDQUFDLE9BQU87SUFDWixPQUFPLENBQUMsSUFBVSxFQUFFLEVBQUU7UUFDcEIsTUFBTSxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUMsR0FBRyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5RCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQzNDLE1BQU0sSUFBSSxtQkFBbUIsQ0FDekIsaUdBQWlHLENBQUMsQ0FBQztTQUN4RztRQUVELEtBQUssTUFBTSxZQUFZLElBQUksQ0FBQyxHQUFHLFVBQVUsRUFBRSxHQUFHLFNBQVMsQ0FBQyxFQUFFO1lBQ3hELDZCQUE2QixDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDN0Q7SUFDSCxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyw2QkFBNkIsQ0FBQyxJQUFVLEVBQUUsWUFBb0IsRUFBRSxRQUFnQjtJQUN2RixNQUFNLEVBQUMsT0FBTyxFQUFDLEdBQUcsc0JBQXNCLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2RSxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDN0MsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLDBCQUEwQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9FLE1BQU0sV0FBVyxHQUNiLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBRWpHLGlEQUFpRDtJQUNqRCxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsMEJBQTBCLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFFcEYsTUFBTSxFQUFDLFdBQVcsRUFBQyxHQUFHLDBCQUEwQixDQUFDO0lBQ2pELE1BQU0sV0FBVyxHQUFHLElBQUksMEJBQTBCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN0RSxNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFBaUMsQ0FBQztJQUNqRSxXQUFXLENBQUMsbUNBQW1DLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBRXpFLGlGQUFpRjtJQUNqRixrRkFBa0Y7SUFDbEYsa0RBQWtEO0lBQ2xELGVBQWUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUU3RCw4REFBOEQ7SUFDOUQsU0FBUyxpQkFBaUIsQ0FBQyxVQUF5QjtRQUNsRCxJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDbkMsT0FBTyxlQUFlLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBRSxDQUFDO1NBQ3pDO1FBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sUUFBUSxHQUFtQjtZQUMvQixVQUFVLENBQUMsSUFBYSxFQUFFLE9BQWU7Z0JBQ3ZDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUN0RCxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNyRCxDQUFDO1lBQ0QsWUFBWTtnQkFDVixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2xDLENBQUM7U0FDRixDQUFDO1FBQ0YsZUFBZSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDMUMsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtSdWxlLCBTY2hlbWF0aWNzRXhjZXB0aW9uLCBUcmVlfSBmcm9tICdAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcyc7XG5pbXBvcnQge3JlbGF0aXZlfSBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtnZXRQcm9qZWN0VHNDb25maWdQYXRoc30gZnJvbSAnLi4vLi4vdXRpbHMvcHJvamVjdF90c2NvbmZpZ19wYXRocyc7XG5pbXBvcnQge2Nhbk1pZ3JhdGVGaWxlLCBjcmVhdGVNaWdyYXRpb25Qcm9ncmFtfSBmcm9tICcuLi8uLi91dGlscy90eXBlc2NyaXB0L2NvbXBpbGVyX2hvc3QnO1xuaW1wb3J0IHtJbml0aWFsTmF2aWdhdGlvbkNvbGxlY3Rvcn0gZnJvbSAnLi9jb2xsZWN0b3InO1xuaW1wb3J0IHtJbml0aWFsTmF2aWdhdGlvblRyYW5zZm9ybX0gZnJvbSAnLi90cmFuc2Zvcm0nO1xuaW1wb3J0IHtVcGRhdGVSZWNvcmRlcn0gZnJvbSAnLi91cGRhdGVfcmVjb3JkZXInO1xuXG4vKiogRW50cnkgcG9pbnQgZm9yIHRoZSB2MTAgXCJpbml0aWFsTmF2aWdhdGlvbiBSb3V0ZXJNb2R1bGUgb3B0aW9uc1wiIHNjaGVtYXRpYy4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCk6IFJ1bGUge1xuICByZXR1cm4gKHRyZWU6IFRyZWUpID0+IHtcbiAgICBjb25zdCB7YnVpbGRQYXRocywgdGVzdFBhdGhzfSA9IGdldFByb2plY3RUc0NvbmZpZ1BhdGhzKHRyZWUpO1xuICAgIGNvbnN0IGJhc2VQYXRoID0gcHJvY2Vzcy5jd2QoKTtcblxuICAgIGlmICghYnVpbGRQYXRocy5sZW5ndGggJiYgIXRlc3RQYXRocy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBTY2hlbWF0aWNzRXhjZXB0aW9uKFxuICAgICAgICAgICdDb3VsZCBub3QgZmluZCBhbnkgdHNjb25maWcgZmlsZS4gQ2Fubm90IHVwZGF0ZSB0aGUgXCJpbml0aWFsTmF2aWdhdGlvblwiIG9wdGlvbiBmb3IgUm91dGVyTW9kdWxlJyk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCB0c2NvbmZpZ1BhdGggb2YgWy4uLmJ1aWxkUGF0aHMsIC4uLnRlc3RQYXRoc10pIHtcbiAgICAgIHJ1bkluaXRpYWxOYXZpZ2F0aW9uTWlncmF0aW9uKHRyZWUsIHRzY29uZmlnUGF0aCwgYmFzZVBhdGgpO1xuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gcnVuSW5pdGlhbE5hdmlnYXRpb25NaWdyYXRpb24odHJlZTogVHJlZSwgdHNjb25maWdQYXRoOiBzdHJpbmcsIGJhc2VQYXRoOiBzdHJpbmcpIHtcbiAgY29uc3Qge3Byb2dyYW19ID0gY3JlYXRlTWlncmF0aW9uUHJvZ3JhbSh0cmVlLCB0c2NvbmZpZ1BhdGgsIGJhc2VQYXRoKTtcbiAgY29uc3QgdHlwZUNoZWNrZXIgPSBwcm9ncmFtLmdldFR5cGVDaGVja2VyKCk7XG4gIGNvbnN0IGluaXRpYWxOYXZpZ2F0aW9uQ29sbGVjdG9yID0gbmV3IEluaXRpYWxOYXZpZ2F0aW9uQ29sbGVjdG9yKHR5cGVDaGVja2VyKTtcbiAgY29uc3Qgc291cmNlRmlsZXMgPVxuICAgICAgcHJvZ3JhbS5nZXRTb3VyY2VGaWxlcygpLmZpbHRlcihzb3VyY2VGaWxlID0+IGNhbk1pZ3JhdGVGaWxlKGJhc2VQYXRoLCBzb3VyY2VGaWxlLCBwcm9ncmFtKSk7XG5cbiAgLy8gQW5hbHl6ZSBzb3VyY2UgZmlsZXMgYnkgZGV0ZWN0aW5nIGFsbCBtb2R1bGVzLlxuICBzb3VyY2VGaWxlcy5mb3JFYWNoKHNvdXJjZUZpbGUgPT4gaW5pdGlhbE5hdmlnYXRpb25Db2xsZWN0b3IudmlzaXROb2RlKHNvdXJjZUZpbGUpKTtcblxuICBjb25zdCB7YXNzaWdubWVudHN9ID0gaW5pdGlhbE5hdmlnYXRpb25Db2xsZWN0b3I7XG4gIGNvbnN0IHRyYW5zZm9ybWVyID0gbmV3IEluaXRpYWxOYXZpZ2F0aW9uVHJhbnNmb3JtKGdldFVwZGF0ZVJlY29yZGVyKTtcbiAgY29uc3QgdXBkYXRlUmVjb3JkZXJzID0gbmV3IE1hcDx0cy5Tb3VyY2VGaWxlLCBVcGRhdGVSZWNvcmRlcj4oKTtcbiAgdHJhbnNmb3JtZXIubWlncmF0ZUluaXRpYWxOYXZpZ2F0aW9uQXNzaWdubWVudHMoQXJyYXkuZnJvbShhc3NpZ25tZW50cykpO1xuXG4gIC8vIFdhbGsgdGhyb3VnaCBlYWNoIHVwZGF0ZSByZWNvcmRlciBhbmQgY29tbWl0IHRoZSB1cGRhdGUuIFdlIG5lZWQgdG8gY29tbWl0IHRoZVxuICAvLyB1cGRhdGVzIGluIGJhdGNoZXMgcGVyIHNvdXJjZSBmaWxlIGFzIHRoZXJlIGNhbiBiZSBvbmx5IG9uZSByZWNvcmRlciBwZXIgc291cmNlXG4gIC8vIGZpbGUgaW4gb3JkZXIgdG8gYXZvaWQgc2hpZnQgY2hhcmFjdGVyIG9mZnNldHMuXG4gIHVwZGF0ZVJlY29yZGVycy5mb3JFYWNoKHJlY29yZGVyID0+IHJlY29yZGVyLmNvbW1pdFVwZGF0ZSgpKTtcblxuICAvKiogR2V0cyB0aGUgdXBkYXRlIHJlY29yZGVyIGZvciB0aGUgc3BlY2lmaWVkIHNvdXJjZSBmaWxlLiAqL1xuICBmdW5jdGlvbiBnZXRVcGRhdGVSZWNvcmRlcihzb3VyY2VGaWxlOiB0cy5Tb3VyY2VGaWxlKTogVXBkYXRlUmVjb3JkZXIge1xuICAgIGlmICh1cGRhdGVSZWNvcmRlcnMuaGFzKHNvdXJjZUZpbGUpKSB7XG4gICAgICByZXR1cm4gdXBkYXRlUmVjb3JkZXJzLmdldChzb3VyY2VGaWxlKSE7XG4gICAgfVxuICAgIGNvbnN0IHRyZWVSZWNvcmRlciA9IHRyZWUuYmVnaW5VcGRhdGUocmVsYXRpdmUoYmFzZVBhdGgsIHNvdXJjZUZpbGUuZmlsZU5hbWUpKTtcbiAgICBjb25zdCByZWNvcmRlcjogVXBkYXRlUmVjb3JkZXIgPSB7XG4gICAgICB1cGRhdGVOb2RlKG5vZGU6IHRzLk5vZGUsIG5ld1RleHQ6IHN0cmluZykge1xuICAgICAgICB0cmVlUmVjb3JkZXIucmVtb3ZlKG5vZGUuZ2V0U3RhcnQoKSwgbm9kZS5nZXRXaWR0aCgpKTtcbiAgICAgICAgdHJlZVJlY29yZGVyLmluc2VydFJpZ2h0KG5vZGUuZ2V0U3RhcnQoKSwgbmV3VGV4dCk7XG4gICAgICB9LFxuICAgICAgY29tbWl0VXBkYXRlKCkge1xuICAgICAgICB0cmVlLmNvbW1pdFVwZGF0ZSh0cmVlUmVjb3JkZXIpO1xuICAgICAgfVxuICAgIH07XG4gICAgdXBkYXRlUmVjb3JkZXJzLnNldChzb3VyY2VGaWxlLCByZWNvcmRlcik7XG4gICAgcmV0dXJuIHJlY29yZGVyO1xuICB9XG59XG4iXX0=
@@ -1,54 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import * as ts from 'typescript';
9
- export class InitialNavigationTransform {
10
- constructor(getUpdateRecorder) {
11
- this.getUpdateRecorder = getUpdateRecorder;
12
- this.printer = ts.createPrinter();
13
- }
14
- /** Migrate the ExtraOptions#InitialNavigation property assignments. */
15
- migrateInitialNavigationAssignments(literals) {
16
- literals.forEach(l => this.migrateAssignment(l));
17
- }
18
- /** Migrate an ExtraOptions#InitialNavigation expression to use the new options format. */
19
- migrateAssignment(assignment) {
20
- const newInitializer = getUpdatedInitialNavigationValue(assignment.initializer);
21
- if (newInitializer) {
22
- const newAssignment = ts.updatePropertyAssignment(assignment, assignment.name, newInitializer);
23
- this._updateNode(assignment, newAssignment);
24
- }
25
- }
26
- _updateNode(node, newNode) {
27
- const newText = this.printer.printNode(ts.EmitHint.Unspecified, newNode, node.getSourceFile());
28
- const recorder = this.getUpdateRecorder(node.getSourceFile());
29
- recorder.updateNode(node, newText);
30
- }
31
- }
32
- /**
33
- * Updates the deprecated initialNavigation options to their v10 equivalents
34
- * (or as close as we can get).
35
- * @param initializer the old initializer to update
36
- */
37
- function getUpdatedInitialNavigationValue(initializer) {
38
- const oldText = ts.isStringLiteralLike(initializer) ?
39
- initializer.text :
40
- initializer.kind === ts.SyntaxKind.TrueKeyword;
41
- let newText;
42
- switch (oldText) {
43
- case false:
44
- case 'legacy_disabled':
45
- newText = 'disabled';
46
- break;
47
- case true:
48
- case 'legacy_enabled':
49
- newText = 'enabledNonBlocking';
50
- break;
51
- }
52
- return !!newText ? ts.createIdentifier(`'${newText}'`) : null;
53
- }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zY2hlbWF0aWNzL21pZ3JhdGlvbnMvaW5pdGlhbC1uYXZpZ2F0aW9uL3RyYW5zZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUtqQyxNQUFNLE9BQU8sMEJBQTBCO0lBR3JDLFlBQW9CLGlCQUF3RDtRQUF4RCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXVDO1FBRnBFLFlBQU8sR0FBRyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7SUFFMEMsQ0FBQztJQUVoRix1RUFBdUU7SUFDdkUsbUNBQW1DLENBQUMsUUFBaUM7UUFDbkUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCwwRkFBMEY7SUFDMUYsaUJBQWlCLENBQUMsVUFBaUM7UUFDakQsTUFBTSxjQUFjLEdBQUcsZ0NBQWdDLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2hGLElBQUksY0FBYyxFQUFFO1lBQ2xCLE1BQU0sYUFBYSxHQUNmLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztZQUM3RSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztTQUM3QztJQUNILENBQUM7SUFFTyxXQUFXLENBQUMsSUFBYSxFQUFFLE9BQWdCO1FBQ2pELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUMvRixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDOUQsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsZ0NBQWdDLENBQUMsV0FBMEI7SUFDbEUsTUFBTSxPQUFPLEdBQW1CLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQixXQUFXLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO0lBQ25ELElBQUksT0FBeUIsQ0FBQztJQUM5QixRQUFRLE9BQU8sRUFBRTtRQUNmLEtBQUssS0FBSyxDQUFDO1FBQ1gsS0FBSyxpQkFBaUI7WUFDcEIsT0FBTyxHQUFHLFVBQVUsQ0FBQztZQUNyQixNQUFNO1FBQ1IsS0FBSyxJQUFJLENBQUM7UUFDVixLQUFLLGdCQUFnQjtZQUNuQixPQUFPLEdBQUcsb0JBQW9CLENBQUM7WUFDL0IsTUFBTTtLQUNUO0lBRUQsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDaEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7VXBkYXRlUmVjb3JkZXJ9IGZyb20gJy4vdXBkYXRlX3JlY29yZGVyJztcblxuXG5leHBvcnQgY2xhc3MgSW5pdGlhbE5hdmlnYXRpb25UcmFuc2Zvcm0ge1xuICBwcml2YXRlIHByaW50ZXIgPSB0cy5jcmVhdGVQcmludGVyKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBnZXRVcGRhdGVSZWNvcmRlcjogKHNmOiB0cy5Tb3VyY2VGaWxlKSA9PiBVcGRhdGVSZWNvcmRlcikge31cblxuICAvKiogTWlncmF0ZSB0aGUgRXh0cmFPcHRpb25zI0luaXRpYWxOYXZpZ2F0aW9uIHByb3BlcnR5IGFzc2lnbm1lbnRzLiAqL1xuICBtaWdyYXRlSW5pdGlhbE5hdmlnYXRpb25Bc3NpZ25tZW50cyhsaXRlcmFsczogdHMuUHJvcGVydHlBc3NpZ25tZW50W10pIHtcbiAgICBsaXRlcmFscy5mb3JFYWNoKGwgPT4gdGhpcy5taWdyYXRlQXNzaWdubWVudChsKSk7XG4gIH1cblxuICAvKiogTWlncmF0ZSBhbiBFeHRyYU9wdGlvbnMjSW5pdGlhbE5hdmlnYXRpb24gZXhwcmVzc2lvbiB0byB1c2UgdGhlIG5ldyBvcHRpb25zIGZvcm1hdC4gKi9cbiAgbWlncmF0ZUFzc2lnbm1lbnQoYXNzaWdubWVudDogdHMuUHJvcGVydHlBc3NpZ25tZW50KSB7XG4gICAgY29uc3QgbmV3SW5pdGlhbGl6ZXIgPSBnZXRVcGRhdGVkSW5pdGlhbE5hdmlnYXRpb25WYWx1ZShhc3NpZ25tZW50LmluaXRpYWxpemVyKTtcbiAgICBpZiAobmV3SW5pdGlhbGl6ZXIpIHtcbiAgICAgIGNvbnN0IG5ld0Fzc2lnbm1lbnQgPVxuICAgICAgICAgIHRzLnVwZGF0ZVByb3BlcnR5QXNzaWdubWVudChhc3NpZ25tZW50LCBhc3NpZ25tZW50Lm5hbWUsIG5ld0luaXRpYWxpemVyKTtcbiAgICAgIHRoaXMuX3VwZGF0ZU5vZGUoYXNzaWdubWVudCwgbmV3QXNzaWdubWVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlTm9kZShub2RlOiB0cy5Ob2RlLCBuZXdOb2RlOiB0cy5Ob2RlKSB7XG4gICAgY29uc3QgbmV3VGV4dCA9IHRoaXMucHJpbnRlci5wcmludE5vZGUodHMuRW1pdEhpbnQuVW5zcGVjaWZpZWQsIG5ld05vZGUsIG5vZGUuZ2V0U291cmNlRmlsZSgpKTtcbiAgICBjb25zdCByZWNvcmRlciA9IHRoaXMuZ2V0VXBkYXRlUmVjb3JkZXIobm9kZS5nZXRTb3VyY2VGaWxlKCkpO1xuICAgIHJlY29yZGVyLnVwZGF0ZU5vZGUobm9kZSwgbmV3VGV4dCk7XG4gIH1cbn1cblxuLyoqXG4gKiBVcGRhdGVzIHRoZSBkZXByZWNhdGVkIGluaXRpYWxOYXZpZ2F0aW9uIG9wdGlvbnMgdG8gdGhlaXIgdjEwIGVxdWl2YWxlbnRzXG4gKiAob3IgYXMgY2xvc2UgYXMgd2UgY2FuIGdldCkuXG4gKiBAcGFyYW0gaW5pdGlhbGl6ZXIgdGhlIG9sZCBpbml0aWFsaXplciB0byB1cGRhdGVcbiAqL1xuZnVuY3Rpb24gZ2V0VXBkYXRlZEluaXRpYWxOYXZpZ2F0aW9uVmFsdWUoaW5pdGlhbGl6ZXI6IHRzLkV4cHJlc3Npb24pOiB0cy5FeHByZXNzaW9ufG51bGwge1xuICBjb25zdCBvbGRUZXh0OiBzdHJpbmd8Ym9vbGVhbiA9IHRzLmlzU3RyaW5nTGl0ZXJhbExpa2UoaW5pdGlhbGl6ZXIpID9cbiAgICAgIGluaXRpYWxpemVyLnRleHQgOlxuICAgICAgaW5pdGlhbGl6ZXIua2luZCA9PT0gdHMuU3ludGF4S2luZC5UcnVlS2V5d29yZDtcbiAgbGV0IG5ld1RleHQ6IHN0cmluZ3x1bmRlZmluZWQ7XG4gIHN3aXRjaCAob2xkVGV4dCkge1xuICAgIGNhc2UgZmFsc2U6XG4gICAgY2FzZSAnbGVnYWN5X2Rpc2FibGVkJzpcbiAgICAgIG5ld1RleHQgPSAnZGlzYWJsZWQnO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSB0cnVlOlxuICAgIGNhc2UgJ2xlZ2FjeV9lbmFibGVkJzpcbiAgICAgIG5ld1RleHQgPSAnZW5hYmxlZE5vbkJsb2NraW5nJztcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuICEhbmV3VGV4dCA/IHRzLmNyZWF0ZUlkZW50aWZpZXIoYCcke25ld1RleHR9J2ApIDogbnVsbDtcbn1cbiJdfQ==
@@ -1,9 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- export {};
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlX3JlY29yZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zY2hlbWF0aWNzL21pZ3JhdGlvbnMvaW5pdGlhbC1uYXZpZ2F0aW9uL3VwZGF0ZV9yZWNvcmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbi8qKlxuICogVXBkYXRlIHJlY29yZGVyIGludGVyZmFjZSB0aGF0IGlzIHVzZWQgdG8gdHJhbnNmb3JtIHNvdXJjZSBmaWxlcyBpbiBhIG5vbi1jb2xsaWRpbmdcbiAqIHdheS4gQWxzbyB0aGlzIGluZGlyZWN0aW9uIG1ha2VzIGl0IHBvc3NpYmxlIHRvIHJlLXVzZSBsb2dpYyBmb3IgYm90aCBUU0xpbnQgcnVsZXNcbiAqIGFuZCBDTEkgZGV2a2l0IHNjaGVtYXRpYyB1cGRhdGVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVJlY29yZGVyIHtcbiAgdXBkYXRlTm9kZShub2RlOiB0cy5Ob2RlLCBuZXdUZXh0OiBzdHJpbmcpOiB2b2lkO1xuICBjb21taXRVcGRhdGUoKTogdm9pZDtcbn1cbiJdfQ==
@@ -1,28 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import * as ts from 'typescript';
9
- import { getImportOfIdentifier } from '../../utils/typescript/imports';
10
- /** Determine whether a node is a ModuleWithProviders type reference node without a generic type */
11
- export function isRouterModuleForRoot(typeChecker, node) {
12
- if (!ts.isCallExpression(node) || !ts.isPropertyAccessExpression(node.expression) ||
13
- !ts.isIdentifier(node.expression.expression) || node.expression.name.text !== 'forRoot') {
14
- return false;
15
- }
16
- const imp = getImportOfIdentifier(typeChecker, node.expression.expression);
17
- return !!imp && imp.name === 'RouterModule' && imp.importModule === '@angular/router' &&
18
- !node.typeArguments;
19
- }
20
- export function isExtraOptions(typeChecker, node) {
21
- if (!ts.isTypeReferenceNode(node) || !ts.isIdentifier(node.typeName)) {
22
- return false;
23
- }
24
- const imp = getImportOfIdentifier(typeChecker, node.typeName);
25
- return imp !== null && imp.name === 'ExtraOptions' && imp.importModule === '@angular/router' &&
26
- !node.typeArguments;
27
- }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc2NoZW1hdGljcy9taWdyYXRpb25zL2luaXRpYWwtbmF2aWdhdGlvbi91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2pDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBRXJFLG1HQUFtRztBQUNuRyxNQUFNLFVBQVUscUJBQXFCLENBQ2pDLFdBQTJCLEVBQUUsSUFBYTtJQUM1QyxJQUFJLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDN0UsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTtRQUMzRixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsTUFBTSxHQUFHLEdBQUcscUJBQXFCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0UsT0FBTyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssY0FBYyxJQUFJLEdBQUcsQ0FBQyxZQUFZLEtBQUssaUJBQWlCO1FBQ2pGLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztBQUMxQixDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FDMUIsV0FBMkIsRUFBRSxJQUFhO0lBQzVDLElBQUksQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUNwRSxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsTUFBTSxHQUFHLEdBQUcscUJBQXFCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5RCxPQUFPLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxjQUFjLElBQUksR0FBRyxDQUFDLFlBQVksS0FBSyxpQkFBaUI7UUFDeEYsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO0FBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQge2dldEltcG9ydE9mSWRlbnRpZmllcn0gZnJvbSAnLi4vLi4vdXRpbHMvdHlwZXNjcmlwdC9pbXBvcnRzJztcblxuLyoqIERldGVybWluZSB3aGV0aGVyIGEgbm9kZSBpcyBhIE1vZHVsZVdpdGhQcm92aWRlcnMgdHlwZSByZWZlcmVuY2Ugbm9kZSB3aXRob3V0IGEgZ2VuZXJpYyB0eXBlICovXG5leHBvcnQgZnVuY3Rpb24gaXNSb3V0ZXJNb2R1bGVGb3JSb290KFxuICAgIHR5cGVDaGVja2VyOiB0cy5UeXBlQ2hlY2tlciwgbm9kZTogdHMuTm9kZSk6IG5vZGUgaXMgdHMuQ2FsbEV4cHJlc3Npb24ge1xuICBpZiAoIXRzLmlzQ2FsbEV4cHJlc3Npb24obm9kZSkgfHwgIXRzLmlzUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uKG5vZGUuZXhwcmVzc2lvbikgfHxcbiAgICAgICF0cy5pc0lkZW50aWZpZXIobm9kZS5leHByZXNzaW9uLmV4cHJlc3Npb24pIHx8IG5vZGUuZXhwcmVzc2lvbi5uYW1lLnRleHQgIT09ICdmb3JSb290Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCBpbXAgPSBnZXRJbXBvcnRPZklkZW50aWZpZXIodHlwZUNoZWNrZXIsIG5vZGUuZXhwcmVzc2lvbi5leHByZXNzaW9uKTtcbiAgcmV0dXJuICEhaW1wICYmIGltcC5uYW1lID09PSAnUm91dGVyTW9kdWxlJyAmJiBpbXAuaW1wb3J0TW9kdWxlID09PSAnQGFuZ3VsYXIvcm91dGVyJyAmJlxuICAgICAgIW5vZGUudHlwZUFyZ3VtZW50cztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRXh0cmFPcHRpb25zKFxuICAgIHR5cGVDaGVja2VyOiB0cy5UeXBlQ2hlY2tlciwgbm9kZTogdHMuTm9kZSk6IG5vZGUgaXMgdHMuVHlwZVJlZmVyZW5jZU5vZGUge1xuICBpZiAoIXRzLmlzVHlwZVJlZmVyZW5jZU5vZGUobm9kZSkgfHwgIXRzLmlzSWRlbnRpZmllcihub2RlLnR5cGVOYW1lKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGltcCA9IGdldEltcG9ydE9mSWRlbnRpZmllcih0eXBlQ2hlY2tlciwgbm9kZS50eXBlTmFtZSk7XG4gIHJldHVybiBpbXAgIT09IG51bGwgJiYgaW1wLm5hbWUgPT09ICdFeHRyYU9wdGlvbnMnICYmIGltcC5pbXBvcnRNb2R1bGUgPT09ICdAYW5ndWxhci9yb3V0ZXInICYmXG4gICAgICAhbm9kZS50eXBlQXJndW1lbnRzO1xufVxuIl19