1 | "use strict";
|
2 | var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
3 | if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
4 | return cooked;
|
5 | };
|
6 | var __read = (this && this.__read) || function (o, n) {
|
7 | var m = typeof Symbol === "function" && o[Symbol.iterator];
|
8 | if (!m) return o;
|
9 | var i = m.call(o), r, ar = [], e;
|
10 | try {
|
11 | while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
12 | }
|
13 | catch (error) { e = { error: error }; }
|
14 | finally {
|
15 | try {
|
16 | if (r && !r.done && (m = i["return"])) m.call(i);
|
17 | }
|
18 | finally { if (e) throw e.error; }
|
19 | }
|
20 | return ar;
|
21 | };
|
22 | var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
23 | for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
|
24 | to[j] = from[i];
|
25 | return to;
|
26 | };
|
27 | exports.__esModule = true;
|
28 | var ts = require("typescript");
|
29 | var core_1 = require("@angular-devkit/core");
|
30 | var schematics_1 = require("@angular-devkit/schematics");
|
31 | var schematics_core_1 = require("../../schematics-core");
|
32 | var META_REDUCERS = 'META_REDUCERS';
|
33 | function updateMetaReducersToken() {
|
34 | return function (tree, context) {
|
35 | schematics_core_1.visitTSSourceFiles(tree, function (sourceFile) {
|
36 | var createChange = function (node) {
|
37 | return schematics_core_1.createReplaceChange(sourceFile, node, META_REDUCERS, 'USER_PROVIDED_META_REDUCERS');
|
38 | };
|
39 | var changes = [];
|
40 | changes.push.apply(changes, __spreadArray([], __read(findMetaReducersImportStatements(sourceFile, createChange, context.logger))));
|
41 | changes.push.apply(changes, __spreadArray([], __read(findMetaReducersAssignment(sourceFile, createChange))));
|
42 | return schematics_core_1.commitChanges(tree, sourceFile.fileName, changes);
|
43 | });
|
44 | };
|
45 | }
|
46 | function default_1() {
|
47 | return schematics_1.chain([updateMetaReducersToken()]);
|
48 | }
|
49 | exports["default"] = default_1;
|
50 | function findMetaReducersImportStatements(sourceFile, createChange, logger) {
|
51 | var canRunSchematics = false;
|
52 | var metaReducerImports = sourceFile.statements
|
53 | .filter(ts.isImportDeclaration)
|
54 | .filter(isNgRxStoreImport)
|
55 | .filter(function (p) {
|
56 | canRunSchematics = Boolean(p.importClause &&
|
57 | p.importClause.namedBindings &&
|
58 |
|
59 | p.importClause.namedBindings.elements);
|
60 | return canRunSchematics;
|
61 | })
|
62 | .map(function (p) {
|
63 |
|
64 | return p.importClause.namedBindings.elements.filter(isMetaReducersImportSpecifier);
|
65 | })
|
66 | .reduce(function (imports, curr) { return imports.concat(curr); }, []);
|
67 | var changes = metaReducerImports.map(createChange);
|
68 | if (!canRunSchematics && changes.length === 0) {
|
69 | logger.info(core_1.tags.stripIndent(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n NgRx 8 Migration: Unable to run the schematics to rename `META_REDUCERS` to `USER_PROVIDED_META_REDUCERS`\n in file '", "'.\n\n For more info see https://ngrx.io/guide/migration/v8#meta_reducers-token.\n "], ["\n NgRx 8 Migration: Unable to run the schematics to rename \\`META_REDUCERS\\` to \\`USER_PROVIDED_META_REDUCERS\\`\n in file '", "'.\n\n For more info see https://ngrx.io/guide/migration/v8#meta_reducers-token.\n "])), sourceFile.fileName));
|
70 | }
|
71 | return changes;
|
72 | function isNgRxStoreImport(importDeclaration) {
|
73 | return (importDeclaration.moduleSpecifier.getText(sourceFile) === "'@ngrx/store'");
|
74 | }
|
75 | function isMetaReducersImportSpecifier(importSpecifier) {
|
76 | var isImport = function () { return importSpecifier.name.text === META_REDUCERS; };
|
77 | var isRenamedImport = function () {
|
78 | return importSpecifier.propertyName &&
|
79 | importSpecifier.propertyName.text === META_REDUCERS;
|
80 | };
|
81 | return (ts.isImportSpecifier(importSpecifier) && (isImport() || isRenamedImport()));
|
82 | }
|
83 | }
|
84 | function findMetaReducersAssignment(sourceFile, createChange) {
|
85 | var changes = [];
|
86 | ts.forEachChild(sourceFile, function (node) { return findMetaReducers(node, changes); });
|
87 | return changes;
|
88 | function findMetaReducers(node, changes) {
|
89 | if (ts.isPropertyAssignment(node) &&
|
90 | node.initializer.getText(sourceFile) === META_REDUCERS) {
|
91 | changes.push(createChange(node.initializer));
|
92 | }
|
93 | ts.forEachChild(node, function (childNode) { return findMetaReducers(childNode, changes); });
|
94 | }
|
95 | }
|
96 | var templateObject_1;
|
97 |
|
\ | No newline at end of file |