UNPKG

3.6 kBJavaScriptView Raw
1"use strict";
2exports.__esModule = true;
3exports.exportReactiveComponentModule = exports.importReactiveComponentModule = exports.migrateToNgrxPush = void 0;
4var ts = require("typescript");
5var schematics_1 = require("@angular-devkit/schematics");
6var schematics_core_1 = require("../../schematics-core");
7var ASYNC_REGEXP = /\| {0,}async/g;
8var REACTIVE_MODULE = 'ReactiveComponentModule';
9var COMPONENT_MODULE = '@ngrx/component';
10var reactiveModuleToFind = function (node) {
11 return ts.isIdentifier(node) && node.text === REACTIVE_MODULE;
12};
13var ngModulesToFind = function (node) {
14 return ts.isIdentifier(node) &&
15 (node.text === 'CommonModule' || node.text === 'BrowserModule');
16};
17function migrateToNgrxPush() {
18 return function (host) {
19 return (0, schematics_core_1.visitTemplates)(host, function (template) {
20 var match;
21 var changes = [];
22 while ((match = ASYNC_REGEXP.exec(template.content)) !== null) {
23 var m = match.toString();
24 changes.push(new schematics_core_1.ReplaceChange(template.fileName,
25 // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
26 template.start + match.index, m, m.replace('async', 'ngrxPush')));
27 }
28 return (0, schematics_core_1.commitChanges)(host, template.fileName, changes);
29 });
30 };
31}
32exports.migrateToNgrxPush = migrateToNgrxPush;
33function importReactiveComponentModule() {
34 return function (host) {
35 (0, schematics_core_1.visitTSSourceFiles)(host, function (sourceFile) {
36 var hasCommonModuleOrBrowserModule = false;
37 var hasReactiveComponentModule = false;
38 (0, schematics_core_1.visitNgModuleImports)(sourceFile, function (_, importNodes) {
39 hasCommonModuleOrBrowserModule = importNodes.some(ngModulesToFind);
40 hasReactiveComponentModule = importNodes.some(reactiveModuleToFind);
41 });
42 if (hasCommonModuleOrBrowserModule && !hasReactiveComponentModule) {
43 var changes = (0, schematics_core_1.addImportToModule)(sourceFile, sourceFile.fileName, REACTIVE_MODULE, COMPONENT_MODULE);
44 (0, schematics_core_1.commitChanges)(host, sourceFile.fileName, changes);
45 }
46 });
47 };
48}
49exports.importReactiveComponentModule = importReactiveComponentModule;
50function exportReactiveComponentModule() {
51 return function (host) {
52 (0, schematics_core_1.visitTSSourceFiles)(host, function (sourceFile) {
53 var hasCommonModuleOrBrowserModule = false;
54 var hasReactiveComponentModule = false;
55 (0, schematics_core_1.visitNgModuleExports)(sourceFile, function (_, exportNodes) {
56 hasCommonModuleOrBrowserModule = exportNodes.some(ngModulesToFind);
57 hasReactiveComponentModule = exportNodes.some(reactiveModuleToFind);
58 });
59 if (hasCommonModuleOrBrowserModule && !hasReactiveComponentModule) {
60 var changes = (0, schematics_core_1.addExportToModule)(sourceFile, sourceFile.fileName, REACTIVE_MODULE, COMPONENT_MODULE);
61 (0, schematics_core_1.commitChanges)(host, sourceFile.fileName, changes);
62 }
63 });
64 };
65}
66exports.exportReactiveComponentModule = exportReactiveComponentModule;
67function default_1() {
68 return (0, schematics_1.chain)([
69 migrateToNgrxPush(),
70 importReactiveComponentModule(),
71 exportReactiveComponentModule(),
72 ]);
73}
74exports["default"] = default_1;
75//# sourceMappingURL=index.js.map
\No newline at end of file