@ngrx/data 21.0.0-rc.0 → 21.0.1

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 (36) hide show
  1. package/package.json +4 -4
  2. package/schematics/ng-add/index.js +130 -131
  3. package/schematics/ng-add/index.js.map +1 -1
  4. package/schematics/ng-add/schema.js +2 -0
  5. package/schematics-core/index.js +75 -24
  6. package/schematics-core/index.js.map +1 -1
  7. package/schematics-core/utility/ast-utils.js +234 -260
  8. package/schematics-core/utility/ast-utils.js.map +1 -1
  9. package/schematics-core/utility/change.js +82 -92
  10. package/schematics-core/utility/change.js.map +1 -1
  11. package/schematics-core/utility/config.js +13 -9
  12. package/schematics-core/utility/config.js.map +1 -1
  13. package/schematics-core/utility/find-component.js +35 -30
  14. package/schematics-core/utility/find-component.js.map +1 -1
  15. package/schematics-core/utility/find-module.js +38 -33
  16. package/schematics-core/utility/find-module.js.map +1 -1
  17. package/schematics-core/utility/json-utilts.js +8 -27
  18. package/schematics-core/utility/json-utilts.js.map +1 -1
  19. package/schematics-core/utility/libs-version.js +4 -1
  20. package/schematics-core/utility/libs-version.js.map +1 -1
  21. package/schematics-core/utility/ngrx-utils.js +129 -152
  22. package/schematics-core/utility/ngrx-utils.js.map +1 -1
  23. package/schematics-core/utility/package.js +6 -4
  24. package/schematics-core/utility/package.js.map +1 -1
  25. package/schematics-core/utility/parse-name.js +8 -5
  26. package/schematics-core/utility/parse-name.js.map +1 -1
  27. package/schematics-core/utility/project.js +23 -17
  28. package/schematics-core/utility/project.js.map +1 -1
  29. package/schematics-core/utility/standalone.js +141 -214
  30. package/schematics-core/utility/standalone.js.map +1 -1
  31. package/schematics-core/utility/strings.js +32 -21
  32. package/schematics-core/utility/strings.js.map +1 -1
  33. package/schematics-core/utility/update.js +18 -15
  34. package/schematics-core/utility/update.js.map +1 -1
  35. package/schematics-core/utility/visitors.js +104 -192
  36. package/schematics-core/utility/visitors.js.map +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngrx/data",
3
- "version": "21.0.0-rc.0",
3
+ "version": "21.0.1",
4
4
  "description": "API management for NgRx",
5
5
  "repository": {
6
6
  "type": "git",
@@ -22,9 +22,9 @@
22
22
  "peerDependencies": {
23
23
  "@angular/common": "^21.0.0",
24
24
  "@angular/core": "^21.0.0",
25
- "@ngrx/store": "21.0.0-rc.0",
26
- "@ngrx/effects": "21.0.0-rc.0",
27
- "@ngrx/entity": "21.0.0-rc.0",
25
+ "@ngrx/store": "21.0.1",
26
+ "@ngrx/effects": "21.0.1",
27
+ "@ngrx/entity": "21.0.1",
28
28
  "rxjs": "^6.5.3 || ^7.5.0"
29
29
  },
30
30
  "schematics": "./schematics/collection.json",
@@ -1,121 +1,124 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- var __read = (this && this.__read) || function (o, n) {
13
- var m = typeof Symbol === "function" && o[Symbol.iterator];
14
- if (!m) return o;
15
- var i = m.call(o), r, ar = [], e;
16
- try {
17
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
7
  }
19
- catch (error) { e = { error: error }; }
20
- finally {
21
- try {
22
- if (r && !r.done && (m = i["return"])) m.call(i);
23
- }
24
- finally { if (e) throw e.error; }
25
- }
26
- return ar;
27
- };
28
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
29
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
30
- if (ar || !(i in from)) {
31
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
32
- ar[i] = from[i];
33
- }
34
- }
35
- return to.concat(ar || Array.prototype.slice.call(from));
36
- };
37
- import * as ts from 'typescript';
38
- import { apply, applyTemplates, branchAndMerge, chain, mergeWith, move, SchematicsException, noop, url, } from '@angular-devkit/schematics';
39
- import { NodePackageInstallTask } from '@angular-devkit/schematics/tasks';
40
- import { addImportToModule, addPackageToPackageJson, commitChanges, createReplaceChange, findModuleFromOptions, getProjectPath, insertImport, parseName, platformVersion, stringUtils, visitTSSourceFiles, } from '../../schematics-core';
41
- import { getProjectMainFile } from '../../schematics-core/utility/project';
42
- import { addFunctionalProvidersToStandaloneBootstrap, callsProvidersFunction, } from '../../schematics-core/utility/standalone';
43
- import { isStandaloneApp } from '@schematics/angular/utility/ng-ast-utils';
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.default = default_1;
37
+ const ts = __importStar(require("typescript"));
38
+ const schematics_1 = require("@angular-devkit/schematics");
39
+ const tasks_1 = require("@angular-devkit/schematics/tasks");
40
+ const schematics_core_1 = require("../../schematics-core");
41
+ const project_1 = require("../../schematics-core/utility/project");
42
+ const standalone_1 = require("../../schematics-core/utility/standalone");
43
+ const ng_ast_utils_1 = require("@schematics/angular/utility/ng-ast-utils");
44
44
  function addNgRxDataToPackageJson() {
45
- return function (host, context) {
46
- addPackageToPackageJson(host, 'dependencies', '@ngrx/data', platformVersion);
47
- context.addTask(new NodePackageInstallTask());
45
+ return (host, context) => {
46
+ (0, schematics_core_1.addPackageToPackageJson)(host, 'dependencies', '@ngrx/data', schematics_core_1.platformVersion);
47
+ context.addTask(new tasks_1.NodePackageInstallTask());
48
48
  return host;
49
49
  };
50
50
  }
51
51
  function addEntityDataToNgModule(options) {
52
- return function (host) {
52
+ return (host) => {
53
53
  throwIfModuleNotSpecified(host, options.module);
54
- var modulePath = options.module;
55
- var text = host.read(modulePath).toString();
56
- var source = ts.createSourceFile(modulePath, text, ts.ScriptTarget.Latest, true);
57
- var moduleToImport = options.effects
54
+ const modulePath = options.module;
55
+ const text = host.read(modulePath).toString();
56
+ const source = ts.createSourceFile(modulePath, text, ts.ScriptTarget.Latest, true);
57
+ const moduleToImport = options.effects
58
58
  ? 'EntityDataModule'
59
59
  : 'EntityDataModuleWithoutEffects';
60
- var effectsModuleImport = insertImport(source, modulePath, moduleToImport, '@ngrx/data');
61
- var _a = __read(addImportToModule(source, modulePath, options.entityConfig
60
+ const effectsModuleImport = (0, schematics_core_1.insertImport)(source, modulePath, moduleToImport, '@ngrx/data');
61
+ const [dateEntityNgModuleImport] = (0, schematics_core_1.addImportToModule)(source, modulePath, options.entityConfig
62
62
  ? [moduleToImport, 'forRoot(entityConfig)'].join('.')
63
- : moduleToImport, ''), 1), dateEntityNgModuleImport = _a[0];
64
- var changes = [effectsModuleImport, dateEntityNgModuleImport];
63
+ : moduleToImport, '');
64
+ const changes = [effectsModuleImport, dateEntityNgModuleImport];
65
65
  if (options.entityConfig) {
66
- var entityConfigImport = insertImport(source, modulePath, 'entityConfig', './entity-metadata');
66
+ const entityConfigImport = (0, schematics_core_1.insertImport)(source, modulePath, 'entityConfig', './entity-metadata');
67
67
  changes.push(entityConfigImport);
68
68
  }
69
- commitChanges(host, source.fileName, changes);
69
+ (0, schematics_core_1.commitChanges)(host, source.fileName, changes);
70
70
  return host;
71
71
  };
72
72
  }
73
73
  function addStandaloneConfig(options) {
74
- return function (host) {
75
- var mainFile = getProjectMainFile(host, options);
74
+ return (host) => {
75
+ const mainFile = (0, project_1.getProjectMainFile)(host, options);
76
76
  if (host.exists(mainFile)) {
77
- var providerFn = 'provideEntityData';
78
- if (callsProvidersFunction(host, mainFile, providerFn)) {
77
+ const providerFn = 'provideEntityData';
78
+ if ((0, standalone_1.callsProvidersFunction)(host, mainFile, providerFn)) {
79
79
  // exit because the store config is already provided
80
80
  return host;
81
81
  }
82
- var providerOptions = __spreadArray(__spreadArray([], __read((options.entityConfig
83
- ? [ts.factory.createIdentifier("entityConfig")]
84
- : [ts.factory.createIdentifier("{}")])), false), __read((options.effects
85
- ? [ts.factory.createIdentifier("withEffects()")]
86
- : [])), false);
87
- var patchedConfigFile = addFunctionalProvidersToStandaloneBootstrap(host, mainFile, providerFn, '@ngrx/data', providerOptions);
88
- var configFileContent = host.read(patchedConfigFile);
89
- var source = ts.createSourceFile(patchedConfigFile, (configFileContent === null || configFileContent === void 0 ? void 0 : configFileContent.toString('utf-8')) || '', ts.ScriptTarget.Latest, true);
90
- var recorder_1 = host.beginUpdate(patchedConfigFile);
91
- var changes = [];
82
+ const providerOptions = [
83
+ ...(options.entityConfig
84
+ ? [ts.factory.createIdentifier(`entityConfig`)]
85
+ : [ts.factory.createIdentifier(`{}`)]),
86
+ ...(options.effects
87
+ ? [ts.factory.createIdentifier(`withEffects()`)]
88
+ : []),
89
+ ];
90
+ const patchedConfigFile = (0, standalone_1.addFunctionalProvidersToStandaloneBootstrap)(host, mainFile, providerFn, '@ngrx/data', providerOptions);
91
+ const configFileContent = host.read(patchedConfigFile);
92
+ const source = ts.createSourceFile(patchedConfigFile, configFileContent?.toString('utf-8') || '', ts.ScriptTarget.Latest, true);
93
+ const recorder = host.beginUpdate(patchedConfigFile);
94
+ const changes = [];
92
95
  if (options.effects) {
93
- var withEffectsImport = insertImport(source, patchedConfigFile, 'withEffects', '@ngrx/data');
96
+ const withEffectsImport = (0, schematics_core_1.insertImport)(source, patchedConfigFile, 'withEffects', '@ngrx/data');
94
97
  changes.push(withEffectsImport);
95
98
  }
96
99
  if (options.entityConfig) {
97
- var entityConfigImport = insertImport(source, patchedConfigFile, 'entityConfig', './entity-metadata');
100
+ const entityConfigImport = (0, schematics_core_1.insertImport)(source, patchedConfigFile, 'entityConfig', './entity-metadata');
98
101
  changes.push(entityConfigImport);
99
102
  }
100
- changes.forEach(function (change) {
101
- recorder_1.insertLeft(change.pos, change.toAdd);
103
+ changes.forEach((change) => {
104
+ recorder.insertLeft(change.pos, change.toAdd);
102
105
  });
103
- host.commitUpdate(recorder_1);
106
+ host.commitUpdate(recorder);
104
107
  return host;
105
108
  }
106
- throw new SchematicsException("Main file not found for a project ".concat(options.project));
109
+ throw new schematics_1.SchematicsException(`Main file not found for a project ${options.project}`);
107
110
  };
108
111
  }
109
- var renames = {
112
+ const renames = {
110
113
  NgrxDataModule: 'EntityDataModule',
111
114
  NgrxDataModuleWithoutEffects: 'EntityDataModuleWithoutEffects',
112
115
  NgrxDataModuleConfig: 'EntityDataModuleConfig',
113
116
  };
114
117
  function removeAngularNgRxDataFromPackageJson() {
115
- return function (host) {
118
+ return (host) => {
116
119
  if (host.exists('package.json')) {
117
- var sourceText = host.read('package.json').toString('utf-8');
118
- var json = JSON.parse(sourceText);
120
+ const sourceText = host.read('package.json').toString('utf-8');
121
+ const json = JSON.parse(sourceText);
119
122
  if (json['dependencies'] && json['dependencies']['ngrx-data']) {
120
123
  delete json['dependencies']['ngrx-data'];
121
124
  }
@@ -125,64 +128,57 @@ function removeAngularNgRxDataFromPackageJson() {
125
128
  };
126
129
  }
127
130
  function renameNgrxDataModule() {
128
- return function (host) {
129
- visitTSSourceFiles(host, function (sourceFile) {
130
- var ngrxDataImports = sourceFile.statements
131
+ return (host) => {
132
+ (0, schematics_core_1.visitTSSourceFiles)(host, (sourceFile) => {
133
+ const ngrxDataImports = sourceFile.statements
131
134
  .filter(ts.isImportDeclaration)
132
- .filter(function (_a) {
133
- var moduleSpecifier = _a.moduleSpecifier;
134
- return moduleSpecifier.getText(sourceFile) === "'ngrx-data'";
135
- });
135
+ .filter(({ moduleSpecifier }) => moduleSpecifier.getText(sourceFile) === "'ngrx-data'");
136
136
  if (ngrxDataImports.length === 0) {
137
137
  return;
138
138
  }
139
- var changes = __spreadArray(__spreadArray(__spreadArray([], __read(findNgrxDataImports(sourceFile, ngrxDataImports)), false), __read(findNgrxDataImportDeclarations(sourceFile, ngrxDataImports)), false), __read(findNgrxDataReplacements(sourceFile)), false);
140
- commitChanges(host, sourceFile.fileName, changes);
139
+ const changes = [
140
+ ...findNgrxDataImports(sourceFile, ngrxDataImports),
141
+ ...findNgrxDataImportDeclarations(sourceFile, ngrxDataImports),
142
+ ...findNgrxDataReplacements(sourceFile),
143
+ ];
144
+ (0, schematics_core_1.commitChanges)(host, sourceFile.fileName, changes);
141
145
  });
142
146
  };
143
147
  }
144
148
  function findNgrxDataImports(sourceFile, imports) {
145
- var changes = imports.map(function (specifier) {
146
- return createReplaceChange(sourceFile, specifier.moduleSpecifier, "'ngrx-data'", "'@ngrx/data'");
147
- });
149
+ const changes = imports.map((specifier) => (0, schematics_core_1.createReplaceChange)(sourceFile, specifier.moduleSpecifier, "'ngrx-data'", "'@ngrx/data'"));
148
150
  return changes;
149
151
  }
150
152
  function findNgrxDataImportDeclarations(sourceFile, imports) {
151
- var changes = imports
152
- .map(function (p) { return p.importClause.namedBindings.elements; })
153
- .reduce(function (imports, curr) { return imports.concat(curr); }, [])
154
- .map(function (specifier) {
153
+ const changes = imports
154
+ .map((p) => p.importClause.namedBindings.elements)
155
+ .reduce((imports, curr) => imports.concat(curr), [])
156
+ .map((specifier) => {
155
157
  if (!ts.isImportSpecifier(specifier)) {
156
158
  return { hit: false };
157
159
  }
158
- var ngrxDataImports = Object.keys(renames);
160
+ const ngrxDataImports = Object.keys(renames);
159
161
  if (ngrxDataImports.includes(specifier.name.text)) {
160
- return { hit: true, specifier: specifier, text: specifier.name.text };
162
+ return { hit: true, specifier, text: specifier.name.text };
161
163
  }
162
164
  // if import is renamed
163
165
  if (specifier.propertyName &&
164
166
  ngrxDataImports.includes(specifier.propertyName.text)) {
165
- return { hit: true, specifier: specifier, text: specifier.propertyName.text };
167
+ return { hit: true, specifier, text: specifier.propertyName.text };
166
168
  }
167
169
  return { hit: false };
168
170
  })
169
- .filter(function (_a) {
170
- var hit = _a.hit;
171
- return hit;
172
- })
173
- .map(function (_a) {
174
- var specifier = _a.specifier, text = _a.text;
175
- return createReplaceChange(sourceFile, specifier, text, renames[text]);
176
- });
171
+ .filter(({ hit }) => hit)
172
+ .map(({ specifier, text }) => (0, schematics_core_1.createReplaceChange)(sourceFile, specifier, text, renames[text]));
177
173
  return changes;
178
174
  }
179
175
  function findNgrxDataReplacements(sourceFile) {
180
- var renameKeys = Object.keys(renames);
181
- var changes = [];
182
- ts.forEachChild(sourceFile, function (node) { return find(node, changes); });
176
+ const renameKeys = Object.keys(renames);
177
+ const changes = [];
178
+ ts.forEachChild(sourceFile, (node) => find(node, changes));
183
179
  return changes;
184
180
  function find(node, changes) {
185
- var change = undefined;
181
+ let change = undefined;
186
182
  if (ts.isPropertyAssignment(node) &&
187
183
  renameKeys.includes(node.initializer.getText(sourceFile))) {
188
184
  change = {
@@ -206,9 +202,9 @@ function findNgrxDataReplacements(sourceFile) {
206
202
  };
207
203
  }
208
204
  if (change) {
209
- changes.push(createReplaceChange(sourceFile, change.node, change.text, renames[change.text]));
205
+ changes.push((0, schematics_core_1.createReplaceChange)(sourceFile, change.node, change.text, renames[change.text]));
210
206
  }
211
- ts.forEachChild(node, function (childNode) { return find(childNode, changes); });
207
+ ts.forEachChild(node, (childNode) => find(childNode, changes));
212
208
  }
213
209
  }
214
210
  function throwIfModuleNotSpecified(host, module) {
@@ -218,44 +214,47 @@ function throwIfModuleNotSpecified(host, module) {
218
214
  if (!host.exists(module)) {
219
215
  throw new Error('Specified module does not exist');
220
216
  }
221
- var text = host.read(module);
217
+ const text = host.read(module);
222
218
  if (text === null) {
223
- throw new SchematicsException("File ".concat(module, " does not exist."));
219
+ throw new schematics_1.SchematicsException(`File ${module} does not exist.`);
224
220
  }
225
221
  }
226
222
  function createEntityConfigFile(options, path) {
227
- return mergeWith(apply(url('./files'), [
228
- applyTemplates(__assign(__assign({}, stringUtils), options)),
229
- move(path),
223
+ return (0, schematics_1.mergeWith)((0, schematics_1.apply)((0, schematics_1.url)('./files'), [
224
+ (0, schematics_1.applyTemplates)({
225
+ ...schematics_core_1.stringUtils,
226
+ ...options,
227
+ }),
228
+ (0, schematics_1.move)(path),
230
229
  ]));
231
230
  }
232
- export default function (options) {
233
- return function (host, context) {
231
+ function default_1(options) {
232
+ return (host, context) => {
234
233
  options.name = '';
235
- options.path = getProjectPath(host, options);
236
- var mainFile = getProjectMainFile(host, options);
237
- var isStandalone = isStandaloneApp(host, mainFile);
234
+ options.path = (0, schematics_core_1.getProjectPath)(host, options);
235
+ const mainFile = (0, project_1.getProjectMainFile)(host, options);
236
+ const isStandalone = (0, ng_ast_utils_1.isStandaloneApp)(host, mainFile);
238
237
  options.effects = options.effects === undefined ? true : options.effects;
239
238
  options.module =
240
239
  options.module && !isStandalone
241
- ? findModuleFromOptions(host, options)
240
+ ? (0, schematics_core_1.findModuleFromOptions)(host, options)
242
241
  : options.module;
243
- var parsedPath = parseName(options.path, '');
242
+ const parsedPath = (0, schematics_core_1.parseName)(options.path, '');
244
243
  options.path = parsedPath.path;
245
- var configOrModuleUpdate = isStandalone
244
+ const configOrModuleUpdate = isStandalone
246
245
  ? addStandaloneConfig(options)
247
246
  : addEntityDataToNgModule(options);
248
- return chain([
249
- options && options.skipPackageJson ? noop() : addNgRxDataToPackageJson(),
247
+ return (0, schematics_1.chain)([
248
+ options && options.skipPackageJson ? (0, schematics_1.noop)() : addNgRxDataToPackageJson(),
250
249
  options.migrateNgrxData
251
- ? chain([
250
+ ? (0, schematics_1.chain)([
252
251
  removeAngularNgRxDataFromPackageJson(),
253
252
  renameNgrxDataModule(),
254
253
  ])
255
- : branchAndMerge(chain([configOrModuleUpdate])),
254
+ : (0, schematics_1.branchAndMerge)((0, schematics_1.chain)([configOrModuleUpdate])),
256
255
  options.entityConfig
257
256
  ? createEntityConfigFile(options, parsedPath.path)
258
- : noop(),
257
+ : (0, schematics_1.noop)(),
259
258
  ])(host, context);
260
259
  };
261
260
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../modules/data/schematics/ng-add/index.ts"],"names":[],"mappings":"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","sourcesContent":["import * as ts from 'typescript';\nimport { Path } from '@angular-devkit/core';\nimport {\n apply,\n applyTemplates,\n branchAndMerge,\n chain,\n mergeWith,\n move,\n Rule,\n SchematicContext,\n SchematicsException,\n noop,\n Tree,\n url,\n} from '@angular-devkit/schematics';\nimport { NodePackageInstallTask } from '@angular-devkit/schematics/tasks';\nimport {\n addImportToModule,\n addPackageToPackageJson,\n commitChanges,\n createReplaceChange,\n findModuleFromOptions,\n getProjectPath,\n insertImport,\n parseName,\n platformVersion,\n ReplaceChange,\n stringUtils,\n visitTSSourceFiles,\n} from '../../schematics-core';\nimport { Schema as EntityDataOptions } from './schema';\nimport { getProjectMainFile } from '../../schematics-core/utility/project';\nimport {\n addFunctionalProvidersToStandaloneBootstrap,\n callsProvidersFunction,\n} from '../../schematics-core/utility/standalone';\nimport { isStandaloneApp } from '@schematics/angular/utility/ng-ast-utils';\n\nfunction addNgRxDataToPackageJson() {\n return (host: Tree, context: SchematicContext) => {\n addPackageToPackageJson(\n host,\n 'dependencies',\n '@ngrx/data',\n platformVersion\n );\n context.addTask(new NodePackageInstallTask());\n return host;\n };\n}\n\nfunction addEntityDataToNgModule(options: EntityDataOptions): Rule {\n return (host: Tree) => {\n throwIfModuleNotSpecified(host, options.module);\n\n const modulePath = options.module!;\n const text = host.read(modulePath)!.toString();\n\n const source = ts.createSourceFile(\n modulePath,\n text,\n ts.ScriptTarget.Latest,\n true\n );\n\n const moduleToImport = options.effects\n ? 'EntityDataModule'\n : 'EntityDataModuleWithoutEffects';\n\n const effectsModuleImport = insertImport(\n source,\n modulePath,\n moduleToImport,\n '@ngrx/data'\n );\n\n const [dateEntityNgModuleImport] = addImportToModule(\n source,\n modulePath,\n options.entityConfig\n ? [moduleToImport, 'forRoot(entityConfig)'].join('.')\n : moduleToImport,\n ''\n );\n\n const changes = [effectsModuleImport, dateEntityNgModuleImport];\n\n if (options.entityConfig) {\n const entityConfigImport = insertImport(\n source,\n modulePath,\n 'entityConfig',\n './entity-metadata'\n );\n changes.push(entityConfigImport);\n }\n\n commitChanges(host, source.fileName, changes);\n\n return host;\n };\n}\n\nfunction addStandaloneConfig(options: EntityDataOptions): Rule {\n return (host: Tree) => {\n const mainFile = getProjectMainFile(host, options);\n if (host.exists(mainFile)) {\n const providerFn = 'provideEntityData';\n\n if (callsProvidersFunction(host, mainFile, providerFn)) {\n // exit because the store config is already provided\n return host;\n }\n\n const providerOptions = [\n ...(options.entityConfig\n ? [ts.factory.createIdentifier(`entityConfig`)]\n : [ts.factory.createIdentifier(`{}`)]),\n ...(options.effects\n ? [ts.factory.createIdentifier(`withEffects()`)]\n : []),\n ];\n\n const patchedConfigFile = addFunctionalProvidersToStandaloneBootstrap(\n host,\n mainFile,\n providerFn,\n '@ngrx/data',\n providerOptions\n );\n\n const configFileContent = host.read(patchedConfigFile);\n const source = ts.createSourceFile(\n patchedConfigFile,\n configFileContent?.toString('utf-8') || '',\n ts.ScriptTarget.Latest,\n true\n );\n\n const recorder = host.beginUpdate(patchedConfigFile);\n\n const changes = [];\n\n if (options.effects) {\n const withEffectsImport = insertImport(\n source,\n patchedConfigFile,\n 'withEffects',\n '@ngrx/data'\n );\n\n changes.push(withEffectsImport);\n }\n\n if (options.entityConfig) {\n const entityConfigImport = insertImport(\n source,\n patchedConfigFile,\n 'entityConfig',\n './entity-metadata'\n );\n\n changes.push(entityConfigImport);\n }\n\n changes.forEach((change: any) => {\n recorder.insertLeft(change.pos, change.toAdd);\n });\n\n host.commitUpdate(recorder);\n\n return host;\n }\n\n throw new SchematicsException(\n `Main file not found for a project ${options.project}`\n );\n };\n}\n\nconst renames = {\n NgrxDataModule: 'EntityDataModule',\n NgrxDataModuleWithoutEffects: 'EntityDataModuleWithoutEffects',\n NgrxDataModuleConfig: 'EntityDataModuleConfig',\n};\n\nfunction removeAngularNgRxDataFromPackageJson() {\n return (host: Tree) => {\n if (host.exists('package.json')) {\n const sourceText = host.read('package.json')!.toString('utf-8');\n const json = JSON.parse(sourceText);\n\n if (json['dependencies'] && json['dependencies']['ngrx-data']) {\n delete json['dependencies']['ngrx-data'];\n }\n\n host.overwrite('package.json', JSON.stringify(json, null, 2));\n }\n\n return host;\n };\n}\n\nfunction renameNgrxDataModule() {\n return (host: Tree) => {\n visitTSSourceFiles(host, (sourceFile) => {\n const ngrxDataImports = sourceFile.statements\n .filter(ts.isImportDeclaration)\n .filter(\n ({ moduleSpecifier }) =>\n moduleSpecifier.getText(sourceFile) === \"'ngrx-data'\"\n );\n\n if (ngrxDataImports.length === 0) {\n return;\n }\n\n const changes = [\n ...findNgrxDataImports(sourceFile, ngrxDataImports),\n ...findNgrxDataImportDeclarations(sourceFile, ngrxDataImports),\n ...findNgrxDataReplacements(sourceFile),\n ];\n\n commitChanges(host, sourceFile.fileName, changes);\n });\n };\n}\n\nfunction findNgrxDataImports(\n sourceFile: ts.SourceFile,\n imports: ts.ImportDeclaration[]\n) {\n const changes = imports.map((specifier) =>\n createReplaceChange(\n sourceFile,\n specifier.moduleSpecifier,\n \"'ngrx-data'\",\n \"'@ngrx/data'\"\n )\n );\n\n return changes;\n}\n\nfunction findNgrxDataImportDeclarations(\n sourceFile: ts.SourceFile,\n imports: ts.ImportDeclaration[]\n) {\n const changes = imports\n .map((p) => (p.importClause!.namedBindings! as ts.NamedImports).elements)\n .reduce((imports, curr) => imports.concat(curr), [] as ts.ImportSpecifier[])\n .map((specifier) => {\n if (!ts.isImportSpecifier(specifier)) {\n return { hit: false };\n }\n\n const ngrxDataImports = Object.keys(renames);\n if (ngrxDataImports.includes(specifier.name.text)) {\n return { hit: true, specifier, text: specifier.name.text };\n }\n\n // if import is renamed\n if (\n specifier.propertyName &&\n ngrxDataImports.includes(specifier.propertyName.text)\n ) {\n return { hit: true, specifier, text: specifier.propertyName.text };\n }\n\n return { hit: false };\n })\n .filter(({ hit }) => hit)\n .map(({ specifier, text }) =>\n createReplaceChange(\n sourceFile,\n specifier!,\n text!,\n (renames as any)[text!]\n )\n );\n\n return changes;\n}\n\nfunction findNgrxDataReplacements(sourceFile: ts.SourceFile) {\n const renameKeys = Object.keys(renames);\n const changes: ReplaceChange[] = [];\n ts.forEachChild(sourceFile, (node) => find(node, changes));\n return changes;\n\n function find(node: ts.Node, changes: ReplaceChange[]) {\n let change = undefined;\n\n if (\n ts.isPropertyAssignment(node) &&\n renameKeys.includes(node.initializer.getText(sourceFile))\n ) {\n change = {\n node: node.initializer,\n text: node.initializer.getText(sourceFile),\n };\n }\n\n if (\n ts.isPropertyAccessExpression(node) &&\n renameKeys.includes(node.expression.getText(sourceFile))\n ) {\n change = {\n node: node.expression,\n text: node.expression.getText(sourceFile),\n };\n }\n\n if (\n ts.isVariableDeclaration(node) &&\n node.type &&\n renameKeys.includes(node.type.getText(sourceFile))\n ) {\n change = {\n node: node.type,\n text: node.type.getText(sourceFile),\n };\n }\n\n if (change) {\n changes.push(\n createReplaceChange(\n sourceFile,\n change.node,\n change.text,\n (renames as any)[change.text]\n )\n );\n }\n\n ts.forEachChild(node, (childNode) => find(childNode, changes));\n }\n}\n\nfunction throwIfModuleNotSpecified(host: Tree, module?: string) {\n if (!module) {\n throw new Error('Module not specified');\n }\n\n if (!host.exists(module)) {\n throw new Error('Specified module does not exist');\n }\n\n const text = host.read(module);\n if (text === null) {\n throw new SchematicsException(`File ${module} does not exist.`);\n }\n}\n\nfunction createEntityConfigFile(options: EntityDataOptions, path: Path) {\n return mergeWith(\n apply(url('./files'), [\n applyTemplates({\n ...stringUtils,\n ...options,\n }),\n move(path),\n ])\n );\n}\n\nexport default function (options: EntityDataOptions): Rule {\n return (host: Tree, context: SchematicContext) => {\n (options as any).name = '';\n options.path = getProjectPath(host, options);\n const mainFile = getProjectMainFile(host, options);\n const isStandalone = isStandaloneApp(host, mainFile);\n options.effects = options.effects === undefined ? true : options.effects;\n options.module =\n options.module && !isStandalone\n ? findModuleFromOptions(host, options as any)\n : options.module;\n\n const parsedPath = parseName(options.path, '');\n options.path = parsedPath.path;\n\n const configOrModuleUpdate = isStandalone\n ? addStandaloneConfig(options)\n : addEntityDataToNgModule(options);\n\n return chain([\n options && options.skipPackageJson ? noop() : addNgRxDataToPackageJson(),\n options.migrateNgrxData\n ? chain([\n removeAngularNgRxDataFromPackageJson(),\n renameNgrxDataModule(),\n ])\n : branchAndMerge(chain([configOrModuleUpdate])),\n options.entityConfig\n ? createEntityConfigFile(options, parsedPath.path)\n : noop(),\n ])(host, context);\n };\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../modules/data/schematics/ng-add/index.ts"],"names":[],"mappings":"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","sourcesContent":["import * as ts from 'typescript';\nimport { Path } from '@angular-devkit/core';\nimport {\n apply,\n applyTemplates,\n branchAndMerge,\n chain,\n mergeWith,\n move,\n Rule,\n SchematicContext,\n SchematicsException,\n noop,\n Tree,\n url,\n} from '@angular-devkit/schematics';\nimport { NodePackageInstallTask } from '@angular-devkit/schematics/tasks';\nimport {\n addImportToModule,\n addPackageToPackageJson,\n commitChanges,\n createReplaceChange,\n findModuleFromOptions,\n getProjectPath,\n insertImport,\n parseName,\n platformVersion,\n ReplaceChange,\n stringUtils,\n visitTSSourceFiles,\n} from '../../schematics-core';\nimport { Schema as EntityDataOptions } from './schema';\nimport { getProjectMainFile } from '../../schematics-core/utility/project';\nimport {\n addFunctionalProvidersToStandaloneBootstrap,\n callsProvidersFunction,\n} from '../../schematics-core/utility/standalone';\nimport { isStandaloneApp } from '@schematics/angular/utility/ng-ast-utils';\n\nfunction addNgRxDataToPackageJson() {\n return (host: Tree, context: SchematicContext) => {\n addPackageToPackageJson(\n host,\n 'dependencies',\n '@ngrx/data',\n platformVersion\n );\n context.addTask(new NodePackageInstallTask());\n return host;\n };\n}\n\nfunction addEntityDataToNgModule(options: EntityDataOptions): Rule {\n return (host: Tree) => {\n throwIfModuleNotSpecified(host, options.module);\n\n const modulePath = options.module!;\n const text = host.read(modulePath)!.toString();\n\n const source = ts.createSourceFile(\n modulePath,\n text,\n ts.ScriptTarget.Latest,\n true\n );\n\n const moduleToImport = options.effects\n ? 'EntityDataModule'\n : 'EntityDataModuleWithoutEffects';\n\n const effectsModuleImport = insertImport(\n source,\n modulePath,\n moduleToImport,\n '@ngrx/data'\n );\n\n const [dateEntityNgModuleImport] = addImportToModule(\n source,\n modulePath,\n options.entityConfig\n ? [moduleToImport, 'forRoot(entityConfig)'].join('.')\n : moduleToImport,\n ''\n );\n\n const changes = [effectsModuleImport, dateEntityNgModuleImport];\n\n if (options.entityConfig) {\n const entityConfigImport = insertImport(\n source,\n modulePath,\n 'entityConfig',\n './entity-metadata'\n );\n changes.push(entityConfigImport);\n }\n\n commitChanges(host, source.fileName, changes);\n\n return host;\n };\n}\n\nfunction addStandaloneConfig(options: EntityDataOptions): Rule {\n return (host: Tree) => {\n const mainFile = getProjectMainFile(host, options);\n if (host.exists(mainFile)) {\n const providerFn = 'provideEntityData';\n\n if (callsProvidersFunction(host, mainFile, providerFn)) {\n // exit because the store config is already provided\n return host;\n }\n\n const providerOptions = [\n ...(options.entityConfig\n ? [ts.factory.createIdentifier(`entityConfig`)]\n : [ts.factory.createIdentifier(`{}`)]),\n ...(options.effects\n ? [ts.factory.createIdentifier(`withEffects()`)]\n : []),\n ];\n\n const patchedConfigFile = addFunctionalProvidersToStandaloneBootstrap(\n host,\n mainFile,\n providerFn,\n '@ngrx/data',\n providerOptions\n );\n\n const configFileContent = host.read(patchedConfigFile);\n const source = ts.createSourceFile(\n patchedConfigFile,\n configFileContent?.toString('utf-8') || '',\n ts.ScriptTarget.Latest,\n true\n );\n\n const recorder = host.beginUpdate(patchedConfigFile);\n\n const changes = [];\n\n if (options.effects) {\n const withEffectsImport = insertImport(\n source,\n patchedConfigFile,\n 'withEffects',\n '@ngrx/data'\n );\n\n changes.push(withEffectsImport);\n }\n\n if (options.entityConfig) {\n const entityConfigImport = insertImport(\n source,\n patchedConfigFile,\n 'entityConfig',\n './entity-metadata'\n );\n\n changes.push(entityConfigImport);\n }\n\n changes.forEach((change: any) => {\n recorder.insertLeft(change.pos, change.toAdd);\n });\n\n host.commitUpdate(recorder);\n\n return host;\n }\n\n throw new SchematicsException(\n `Main file not found for a project ${options.project}`\n );\n };\n}\n\nconst renames = {\n NgrxDataModule: 'EntityDataModule',\n NgrxDataModuleWithoutEffects: 'EntityDataModuleWithoutEffects',\n NgrxDataModuleConfig: 'EntityDataModuleConfig',\n};\n\nfunction removeAngularNgRxDataFromPackageJson() {\n return (host: Tree) => {\n if (host.exists('package.json')) {\n const sourceText = host.read('package.json')!.toString('utf-8');\n const json = JSON.parse(sourceText);\n\n if (json['dependencies'] && json['dependencies']['ngrx-data']) {\n delete json['dependencies']['ngrx-data'];\n }\n\n host.overwrite('package.json', JSON.stringify(json, null, 2));\n }\n\n return host;\n };\n}\n\nfunction renameNgrxDataModule() {\n return (host: Tree) => {\n visitTSSourceFiles(host, (sourceFile) => {\n const ngrxDataImports = sourceFile.statements\n .filter(ts.isImportDeclaration)\n .filter(\n ({ moduleSpecifier }) =>\n moduleSpecifier.getText(sourceFile) === \"'ngrx-data'\"\n );\n\n if (ngrxDataImports.length === 0) {\n return;\n }\n\n const changes = [\n ...findNgrxDataImports(sourceFile, ngrxDataImports),\n ...findNgrxDataImportDeclarations(sourceFile, ngrxDataImports),\n ...findNgrxDataReplacements(sourceFile),\n ];\n\n commitChanges(host, sourceFile.fileName, changes);\n });\n };\n}\n\nfunction findNgrxDataImports(\n sourceFile: ts.SourceFile,\n imports: ts.ImportDeclaration[]\n) {\n const changes = imports.map((specifier) =>\n createReplaceChange(\n sourceFile,\n specifier.moduleSpecifier,\n \"'ngrx-data'\",\n \"'@ngrx/data'\"\n )\n );\n\n return changes;\n}\n\nfunction findNgrxDataImportDeclarations(\n sourceFile: ts.SourceFile,\n imports: ts.ImportDeclaration[]\n) {\n const changes = imports\n .map((p) => (p.importClause!.namedBindings! as ts.NamedImports).elements)\n .reduce((imports, curr) => imports.concat(curr), [] as ts.ImportSpecifier[])\n .map((specifier) => {\n if (!ts.isImportSpecifier(specifier)) {\n return { hit: false };\n }\n\n const ngrxDataImports = Object.keys(renames);\n if (ngrxDataImports.includes(specifier.name.text)) {\n return { hit: true, specifier, text: specifier.name.text };\n }\n\n // if import is renamed\n if (\n specifier.propertyName &&\n ngrxDataImports.includes(specifier.propertyName.text)\n ) {\n return { hit: true, specifier, text: specifier.propertyName.text };\n }\n\n return { hit: false };\n })\n .filter(({ hit }) => hit)\n .map(({ specifier, text }) =>\n createReplaceChange(\n sourceFile,\n specifier!,\n text!,\n (renames as any)[text!]\n )\n );\n\n return changes;\n}\n\nfunction findNgrxDataReplacements(sourceFile: ts.SourceFile) {\n const renameKeys = Object.keys(renames);\n const changes: ReplaceChange[] = [];\n ts.forEachChild(sourceFile, (node) => find(node, changes));\n return changes;\n\n function find(node: ts.Node, changes: ReplaceChange[]) {\n let change = undefined;\n\n if (\n ts.isPropertyAssignment(node) &&\n renameKeys.includes(node.initializer.getText(sourceFile))\n ) {\n change = {\n node: node.initializer,\n text: node.initializer.getText(sourceFile),\n };\n }\n\n if (\n ts.isPropertyAccessExpression(node) &&\n renameKeys.includes(node.expression.getText(sourceFile))\n ) {\n change = {\n node: node.expression,\n text: node.expression.getText(sourceFile),\n };\n }\n\n if (\n ts.isVariableDeclaration(node) &&\n node.type &&\n renameKeys.includes(node.type.getText(sourceFile))\n ) {\n change = {\n node: node.type,\n text: node.type.getText(sourceFile),\n };\n }\n\n if (change) {\n changes.push(\n createReplaceChange(\n sourceFile,\n change.node,\n change.text,\n (renames as any)[change.text]\n )\n );\n }\n\n ts.forEachChild(node, (childNode) => find(childNode, changes));\n }\n}\n\nfunction throwIfModuleNotSpecified(host: Tree, module?: string) {\n if (!module) {\n throw new Error('Module not specified');\n }\n\n if (!host.exists(module)) {\n throw new Error('Specified module does not exist');\n }\n\n const text = host.read(module);\n if (text === null) {\n throw new SchematicsException(`File ${module} does not exist.`);\n }\n}\n\nfunction createEntityConfigFile(options: EntityDataOptions, path: Path) {\n return mergeWith(\n apply(url('./files'), [\n applyTemplates({\n ...stringUtils,\n ...options,\n }),\n move(path),\n ])\n );\n}\n\nexport default function (options: EntityDataOptions): Rule {\n return (host: Tree, context: SchematicContext) => {\n (options as any).name = '';\n options.path = getProjectPath(host, options);\n const mainFile = getProjectMainFile(host, options);\n const isStandalone = isStandaloneApp(host, mainFile);\n options.effects = options.effects === undefined ? true : options.effects;\n options.module =\n options.module && !isStandalone\n ? findModuleFromOptions(host, options as any)\n : options.module;\n\n const parsedPath = parseName(options.path, '');\n options.path = parsedPath.path;\n\n const configOrModuleUpdate = isStandalone\n ? addStandaloneConfig(options)\n : addEntityDataToNgModule(options);\n\n return chain([\n options && options.skipPackageJson ? noop() : addNgRxDataToPackageJson(),\n options.migrateNgrxData\n ? chain([\n removeAngularNgRxDataFromPackageJson(),\n renameNgrxDataModule(),\n ])\n : branchAndMerge(chain([configOrModuleUpdate])),\n options.entityConfig\n ? createEntityConfigFile(options, parsedPath.path)\n : noop(),\n ])(host, context);\n };\n}\n"]}
@@ -1 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
1
3
  //# sourceMappingURL=schema.js.map
@@ -1,26 +1,77 @@
1
- import { dasherize, decamelize, camelize, classify, underscore, group, capitalize, featurePath, pluralize, } from './utility/strings';
2
- export { findNodes, getSourceNodes, getDecoratorMetadata, getContentOfKeyLiteral, insertAfterLastOccurrence, insertImport, addBootstrapToModule, addDeclarationToModule, addExportToModule, addImportToModule, addProviderToComponent, addProviderToModule, replaceImport, containsProperty, } from './utility/ast-utils';
3
- export { NoopChange, InsertChange, RemoveChange, ReplaceChange, createReplaceChange, createChangeRecorder, commitChanges, } from './utility/change';
4
- export { getWorkspace, getWorkspacePath } from './utility/config';
5
- export { findComponentFromOptions } from './utility/find-component';
6
- export { findModule, findModuleFromOptions, buildRelativePath, } from './utility/find-module';
7
- export { findPropertyInAstObject } from './utility/json-utilts';
8
- export { addReducerToState, addReducerToStateInterface, addReducerImportToNgModule, addReducerToActionReducerMap, omit, getPrefix, } from './utility/ngrx-utils';
9
- export { getProjectPath, getProject, isLib } from './utility/project';
10
- export var stringUtils = {
11
- dasherize: dasherize,
12
- decamelize: decamelize,
13
- camelize: camelize,
14
- classify: classify,
15
- underscore: underscore,
16
- group: group,
17
- capitalize: capitalize,
18
- featurePath: featurePath,
19
- pluralize: pluralize,
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.visitTemplates = exports.visitNgModules = exports.visitDecorator = exports.visitComponents = exports.visitNgModuleExports = exports.visitNgModuleImports = exports.visitTSSourceFiles = exports.platformVersion = exports.addPackageToPackageJson = exports.parseName = exports.updatePackage = exports.stringUtils = exports.isLib = exports.getProject = exports.getProjectPath = exports.getPrefix = exports.omit = exports.addReducerToActionReducerMap = exports.addReducerImportToNgModule = exports.addReducerToStateInterface = exports.addReducerToState = exports.findPropertyInAstObject = exports.buildRelativePath = exports.findModuleFromOptions = exports.findModule = exports.findComponentFromOptions = exports.getWorkspacePath = exports.getWorkspace = exports.commitChanges = exports.createChangeRecorder = exports.createReplaceChange = exports.ReplaceChange = exports.RemoveChange = exports.InsertChange = exports.NoopChange = exports.containsProperty = exports.replaceImport = exports.addProviderToModule = exports.addProviderToComponent = exports.addImportToModule = exports.addExportToModule = exports.addDeclarationToModule = exports.addBootstrapToModule = exports.insertImport = exports.insertAfterLastOccurrence = exports.getContentOfKeyLiteral = exports.getDecoratorMetadata = exports.getSourceNodes = exports.findNodes = void 0;
4
+ const strings_1 = require("./utility/strings");
5
+ var ast_utils_1 = require("./utility/ast-utils");
6
+ Object.defineProperty(exports, "findNodes", { enumerable: true, get: function () { return ast_utils_1.findNodes; } });
7
+ Object.defineProperty(exports, "getSourceNodes", { enumerable: true, get: function () { return ast_utils_1.getSourceNodes; } });
8
+ Object.defineProperty(exports, "getDecoratorMetadata", { enumerable: true, get: function () { return ast_utils_1.getDecoratorMetadata; } });
9
+ Object.defineProperty(exports, "getContentOfKeyLiteral", { enumerable: true, get: function () { return ast_utils_1.getContentOfKeyLiteral; } });
10
+ Object.defineProperty(exports, "insertAfterLastOccurrence", { enumerable: true, get: function () { return ast_utils_1.insertAfterLastOccurrence; } });
11
+ Object.defineProperty(exports, "insertImport", { enumerable: true, get: function () { return ast_utils_1.insertImport; } });
12
+ Object.defineProperty(exports, "addBootstrapToModule", { enumerable: true, get: function () { return ast_utils_1.addBootstrapToModule; } });
13
+ Object.defineProperty(exports, "addDeclarationToModule", { enumerable: true, get: function () { return ast_utils_1.addDeclarationToModule; } });
14
+ Object.defineProperty(exports, "addExportToModule", { enumerable: true, get: function () { return ast_utils_1.addExportToModule; } });
15
+ Object.defineProperty(exports, "addImportToModule", { enumerable: true, get: function () { return ast_utils_1.addImportToModule; } });
16
+ Object.defineProperty(exports, "addProviderToComponent", { enumerable: true, get: function () { return ast_utils_1.addProviderToComponent; } });
17
+ Object.defineProperty(exports, "addProviderToModule", { enumerable: true, get: function () { return ast_utils_1.addProviderToModule; } });
18
+ Object.defineProperty(exports, "replaceImport", { enumerable: true, get: function () { return ast_utils_1.replaceImport; } });
19
+ Object.defineProperty(exports, "containsProperty", { enumerable: true, get: function () { return ast_utils_1.containsProperty; } });
20
+ var change_1 = require("./utility/change");
21
+ Object.defineProperty(exports, "NoopChange", { enumerable: true, get: function () { return change_1.NoopChange; } });
22
+ Object.defineProperty(exports, "InsertChange", { enumerable: true, get: function () { return change_1.InsertChange; } });
23
+ Object.defineProperty(exports, "RemoveChange", { enumerable: true, get: function () { return change_1.RemoveChange; } });
24
+ Object.defineProperty(exports, "ReplaceChange", { enumerable: true, get: function () { return change_1.ReplaceChange; } });
25
+ Object.defineProperty(exports, "createReplaceChange", { enumerable: true, get: function () { return change_1.createReplaceChange; } });
26
+ Object.defineProperty(exports, "createChangeRecorder", { enumerable: true, get: function () { return change_1.createChangeRecorder; } });
27
+ Object.defineProperty(exports, "commitChanges", { enumerable: true, get: function () { return change_1.commitChanges; } });
28
+ var config_1 = require("./utility/config");
29
+ Object.defineProperty(exports, "getWorkspace", { enumerable: true, get: function () { return config_1.getWorkspace; } });
30
+ Object.defineProperty(exports, "getWorkspacePath", { enumerable: true, get: function () { return config_1.getWorkspacePath; } });
31
+ var find_component_1 = require("./utility/find-component");
32
+ Object.defineProperty(exports, "findComponentFromOptions", { enumerable: true, get: function () { return find_component_1.findComponentFromOptions; } });
33
+ var find_module_1 = require("./utility/find-module");
34
+ Object.defineProperty(exports, "findModule", { enumerable: true, get: function () { return find_module_1.findModule; } });
35
+ Object.defineProperty(exports, "findModuleFromOptions", { enumerable: true, get: function () { return find_module_1.findModuleFromOptions; } });
36
+ Object.defineProperty(exports, "buildRelativePath", { enumerable: true, get: function () { return find_module_1.buildRelativePath; } });
37
+ var json_utilts_1 = require("./utility/json-utilts");
38
+ Object.defineProperty(exports, "findPropertyInAstObject", { enumerable: true, get: function () { return json_utilts_1.findPropertyInAstObject; } });
39
+ var ngrx_utils_1 = require("./utility/ngrx-utils");
40
+ Object.defineProperty(exports, "addReducerToState", { enumerable: true, get: function () { return ngrx_utils_1.addReducerToState; } });
41
+ Object.defineProperty(exports, "addReducerToStateInterface", { enumerable: true, get: function () { return ngrx_utils_1.addReducerToStateInterface; } });
42
+ Object.defineProperty(exports, "addReducerImportToNgModule", { enumerable: true, get: function () { return ngrx_utils_1.addReducerImportToNgModule; } });
43
+ Object.defineProperty(exports, "addReducerToActionReducerMap", { enumerable: true, get: function () { return ngrx_utils_1.addReducerToActionReducerMap; } });
44
+ Object.defineProperty(exports, "omit", { enumerable: true, get: function () { return ngrx_utils_1.omit; } });
45
+ Object.defineProperty(exports, "getPrefix", { enumerable: true, get: function () { return ngrx_utils_1.getPrefix; } });
46
+ var project_1 = require("./utility/project");
47
+ Object.defineProperty(exports, "getProjectPath", { enumerable: true, get: function () { return project_1.getProjectPath; } });
48
+ Object.defineProperty(exports, "getProject", { enumerable: true, get: function () { return project_1.getProject; } });
49
+ Object.defineProperty(exports, "isLib", { enumerable: true, get: function () { return project_1.isLib; } });
50
+ exports.stringUtils = {
51
+ dasherize: strings_1.dasherize,
52
+ decamelize: strings_1.decamelize,
53
+ camelize: strings_1.camelize,
54
+ classify: strings_1.classify,
55
+ underscore: strings_1.underscore,
56
+ group: strings_1.group,
57
+ capitalize: strings_1.capitalize,
58
+ featurePath: strings_1.featurePath,
59
+ pluralize: strings_1.pluralize,
20
60
  };
21
- export { updatePackage } from './utility/update';
22
- export { parseName } from './utility/parse-name';
23
- export { addPackageToPackageJson } from './utility/package';
24
- export { platformVersion } from './utility/libs-version';
25
- export { visitTSSourceFiles, visitNgModuleImports, visitNgModuleExports, visitComponents, visitDecorator, visitNgModules, visitTemplates, } from './utility/visitors';
61
+ var update_1 = require("./utility/update");
62
+ Object.defineProperty(exports, "updatePackage", { enumerable: true, get: function () { return update_1.updatePackage; } });
63
+ var parse_name_1 = require("./utility/parse-name");
64
+ Object.defineProperty(exports, "parseName", { enumerable: true, get: function () { return parse_name_1.parseName; } });
65
+ var package_1 = require("./utility/package");
66
+ Object.defineProperty(exports, "addPackageToPackageJson", { enumerable: true, get: function () { return package_1.addPackageToPackageJson; } });
67
+ var libs_version_1 = require("./utility/libs-version");
68
+ Object.defineProperty(exports, "platformVersion", { enumerable: true, get: function () { return libs_version_1.platformVersion; } });
69
+ var visitors_1 = require("./utility/visitors");
70
+ Object.defineProperty(exports, "visitTSSourceFiles", { enumerable: true, get: function () { return visitors_1.visitTSSourceFiles; } });
71
+ Object.defineProperty(exports, "visitNgModuleImports", { enumerable: true, get: function () { return visitors_1.visitNgModuleImports; } });
72
+ Object.defineProperty(exports, "visitNgModuleExports", { enumerable: true, get: function () { return visitors_1.visitNgModuleExports; } });
73
+ Object.defineProperty(exports, "visitComponents", { enumerable: true, get: function () { return visitors_1.visitComponents; } });
74
+ Object.defineProperty(exports, "visitDecorator", { enumerable: true, get: function () { return visitors_1.visitDecorator; } });
75
+ Object.defineProperty(exports, "visitNgModules", { enumerable: true, get: function () { return visitors_1.visitNgModules; } });
76
+ Object.defineProperty(exports, "visitTemplates", { enumerable: true, get: function () { return visitors_1.visitTemplates; } });
26
77
  //# sourceMappingURL=index.js.map