UNPKG

4.77 kBJavaScriptView Raw
1"use strict";
2var __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};
6var __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};
22var __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};
27exports.__esModule = true;
28var ts = require("typescript");
29var core_1 = require("@angular-devkit/core");
30var schematics_1 = require("@angular-devkit/schematics");
31var schematics_core_1 = require("../../schematics-core");
32var META_REDUCERS = 'META_REDUCERS';
33function 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}
46function default_1() {
47 return schematics_1.chain([updateMetaReducersToken()]);
48}
49exports["default"] = default_1;
50function 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 // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
59 p.importClause.namedBindings.elements);
60 return canRunSchematics;
61 })
62 .map(function (p) {
63 // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
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}
84function 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}
96var templateObject_1;
97//# sourceMappingURL=index.js.map
\No newline at end of file