@ngrx/signals 20.1.0 → 21.0.0-rc.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 (110) hide show
  1. package/fesm2022/ngrx-signals-entities.mjs.map +1 -1
  2. package/fesm2022/ngrx-signals-events.mjs +219 -57
  3. package/fesm2022/ngrx-signals-events.mjs.map +1 -1
  4. package/fesm2022/ngrx-signals-rxjs-interop.mjs +4 -4
  5. package/fesm2022/ngrx-signals-rxjs-interop.mjs.map +1 -1
  6. package/fesm2022/ngrx-signals.mjs +11 -8
  7. package/fesm2022/ngrx-signals.mjs.map +1 -1
  8. package/migrations/18_0_0-rc_3-protected-state/index.js +54 -23
  9. package/migrations/18_0_0-rc_3-protected-state/index.js.map +1 -1
  10. package/migrations/18_0_0-rc_3-writablestatesource/index.js +45 -12
  11. package/migrations/18_0_0-rc_3-writablestatesource/index.js.map +1 -1
  12. package/migrations/19_0_0-rc_0-props/index.js +72 -83
  13. package/migrations/19_0_0-rc_0-props/index.js.map +1 -1
  14. package/migrations/21_0_0-beta_0-rename-withEffects-to-withEventHandlers/index.js +103 -0
  15. package/migrations/21_0_0-beta_0-rename-withEffects-to-withEventHandlers/index.js.map +1 -0
  16. package/migrations/migration.json +5 -0
  17. package/package.json +8 -8
  18. package/schematics/ng-add/index.js +5 -5
  19. package/schematics/ng-add/index.js.map +1 -1
  20. package/schematics-core/index.js +1 -1
  21. package/schematics-core/index.js.map +1 -1
  22. package/schematics-core/utility/ast-utils.js +198 -240
  23. package/schematics-core/utility/ast-utils.js.map +1 -1
  24. package/schematics-core/utility/change.js +68 -85
  25. package/schematics-core/utility/change.js.map +1 -1
  26. package/schematics-core/utility/config.js +7 -7
  27. package/schematics-core/utility/config.js.map +1 -1
  28. package/schematics-core/utility/find-component.js +20 -20
  29. package/schematics-core/utility/find-component.js.map +1 -1
  30. package/schematics-core/utility/find-module.js +21 -21
  31. package/schematics-core/utility/find-module.js.map +1 -1
  32. package/schematics-core/utility/json-utilts.js +4 -26
  33. package/schematics-core/utility/json-utilts.js.map +1 -1
  34. package/schematics-core/utility/libs-version.js +1 -1
  35. package/schematics-core/utility/libs-version.js.map +1 -1
  36. package/schematics-core/utility/ngrx-utils.js +110 -141
  37. package/schematics-core/utility/ngrx-utils.js.map +1 -1
  38. package/schematics-core/utility/package.js +2 -3
  39. package/schematics-core/utility/package.js.map +1 -1
  40. package/schematics-core/utility/parse-name.js +3 -3
  41. package/schematics-core/utility/parse-name.js.map +1 -1
  42. package/schematics-core/utility/project.js +13 -13
  43. package/schematics-core/utility/project.js.map +1 -1
  44. package/schematics-core/utility/strings.js +12 -12
  45. package/schematics-core/utility/strings.js.map +1 -1
  46. package/schematics-core/utility/update.js +12 -12
  47. package/schematics-core/utility/update.js.map +1 -1
  48. package/schematics-core/utility/visitors.js +78 -180
  49. package/schematics-core/utility/visitors.js.map +1 -1
  50. package/types/ngrx-signals-entities.d.ts +324 -0
  51. package/types/ngrx-signals-events.d.ts +360 -0
  52. package/types/ngrx-signals-rxjs-interop.d.ts +15 -0
  53. package/{testing/src/unprotected.d.ts → types/ngrx-signals-testing.d.ts} +5 -3
  54. package/types/ngrx-signals.d.ts +332 -0
  55. package/entities/index.d.ts +0 -1
  56. package/entities/src/entity-config.d.ts +0 -17
  57. package/entities/src/helpers.d.ts +0 -25
  58. package/entities/src/index.d.ts +0 -18
  59. package/entities/src/models.d.ts +0 -24
  60. package/entities/src/updaters/add-entities.d.ts +0 -17
  61. package/entities/src/updaters/add-entity.d.ts +0 -17
  62. package/entities/src/updaters/prepend-entities.d.ts +0 -17
  63. package/entities/src/updaters/prepend-entity.d.ts +0 -17
  64. package/entities/src/updaters/remove-all-entities.d.ts +0 -6
  65. package/entities/src/updaters/remove-entities.d.ts +0 -10
  66. package/entities/src/updaters/remove-entity.d.ts +0 -6
  67. package/entities/src/updaters/set-all-entities.d.ts +0 -17
  68. package/entities/src/updaters/set-entities.d.ts +0 -17
  69. package/entities/src/updaters/set-entity.d.ts +0 -17
  70. package/entities/src/updaters/update-all-entities.d.ts +0 -17
  71. package/entities/src/updaters/update-entities.d.ts +0 -56
  72. package/entities/src/updaters/update-entity.d.ts +0 -29
  73. package/entities/src/updaters/upsert-entities.d.ts +0 -17
  74. package/entities/src/updaters/upsert-entity.d.ts +0 -17
  75. package/entities/src/with-entities.d.ts +0 -22
  76. package/events/index.d.ts +0 -1
  77. package/events/src/case-reducer.d.ts +0 -20
  78. package/events/src/dispatcher.d.ts +0 -33
  79. package/events/src/event-creator-group.d.ts +0 -33
  80. package/events/src/event-creator.d.ts +0 -9
  81. package/events/src/event-instance.d.ts +0 -8
  82. package/events/src/events-service.d.ts +0 -47
  83. package/events/src/index.d.ts +0 -9
  84. package/events/src/inject-dispatch.d.ts +0 -46
  85. package/events/src/with-effects.d.ts +0 -28
  86. package/events/src/with-reducer.d.ts +0 -30
  87. package/index.d.ts +0 -1
  88. package/rxjs-interop/index.d.ts +0 -1
  89. package/rxjs-interop/src/index.d.ts +0 -1
  90. package/rxjs-interop/src/rx-method.d.ts +0 -12
  91. package/src/deep-computed.d.ts +0 -2
  92. package/src/deep-signal.d.ts +0 -6
  93. package/src/index.d.ts +0 -16
  94. package/src/signal-method.d.ts +0 -7
  95. package/src/signal-state.d.ts +0 -4
  96. package/src/signal-store-assertions.d.ts +0 -2
  97. package/src/signal-store-feature.d.ts +0 -29
  98. package/src/signal-store-models.d.ts +0 -30
  99. package/src/signal-store.d.ts +0 -115
  100. package/src/state-source.d.ts +0 -23
  101. package/src/ts-helpers.d.ts +0 -11
  102. package/src/with-computed.d.ts +0 -12
  103. package/src/with-feature.d.ts +0 -26
  104. package/src/with-hooks.d.ts +0 -14
  105. package/src/with-linked-state.d.ts +0 -52
  106. package/src/with-methods.d.ts +0 -8
  107. package/src/with-props.d.ts +0 -8
  108. package/src/with-state.d.ts +0 -11
  109. package/testing/index.d.ts +0 -1
  110. package/testing/src/index.d.ts +0 -1
@@ -1,40 +1,37 @@
1
1
  "use strict";
2
- var __values = (this && this.__values) || function(o) {
3
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
4
- if (m) return m.call(o);
5
- if (o && typeof o.length === "number") return {
6
- next: function () {
7
- if (o && i >= o.length) o = void 0;
8
- return { value: o && o[i++], done: !o };
9
- }
10
- };
11
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
- };
13
- var __read = (this && this.__read) || function (o, n) {
14
- var m = typeof Symbol === "function" && o[Symbol.iterator];
15
- if (!m) return o;
16
- var i = m.call(o), r, ar = [], e;
17
- try {
18
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
19
- }
20
- catch (error) { e = { error: error }; }
21
- finally {
22
- try {
23
- if (r && !r.done && (m = i["return"])) m.call(i);
24
- }
25
- finally { if (e) throw e.error; }
26
- }
27
- return ar;
28
- };
29
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
30
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
31
- if (ar || !(i in from)) {
32
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
33
- ar[i] = from[i];
34
- }
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]; } };
35
7
  }
36
- return to.concat(ar || Array.prototype.slice.call(from));
37
- };
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
+ })();
38
35
  Object.defineProperty(exports, "__esModule", { value: true });
39
36
  exports.addReducerToState = addReducerToState;
40
37
  exports.addReducerToStateInterface = addReducerToStateInterface;
@@ -42,54 +39,43 @@ exports.addReducerToActionReducerMap = addReducerToActionReducerMap;
42
39
  exports.addReducerImportToNgModule = addReducerImportToNgModule;
43
40
  exports.omit = omit;
44
41
  exports.getPrefix = getPrefix;
45
- var ts = require("typescript");
46
- var stringUtils = require("./strings");
47
- var change_1 = require("./change");
48
- var schematics_1 = require("@angular-devkit/schematics");
49
- var core_1 = require("@angular-devkit/core");
50
- var find_module_1 = require("./find-module");
51
- var ast_utils_1 = require("./ast-utils");
42
+ const ts = __importStar(require("typescript"));
43
+ const stringUtils = __importStar(require("./strings"));
44
+ const change_1 = require("./change");
45
+ const schematics_1 = require("@angular-devkit/schematics");
46
+ const core_1 = require("@angular-devkit/core");
47
+ const find_module_1 = require("./find-module");
48
+ const ast_utils_1 = require("./ast-utils");
52
49
  function addReducerToState(options) {
53
- return function (host) {
54
- var e_1, _a;
50
+ return (host) => {
55
51
  if (!options.reducers) {
56
52
  return host;
57
53
  }
58
- var reducersPath = (0, core_1.normalize)("/".concat(options.path, "/").concat(options.reducers));
54
+ const reducersPath = (0, core_1.normalize)(`/${options.path}/${options.reducers}`);
59
55
  if (!host.exists(reducersPath)) {
60
- throw new Error("Specified reducers path ".concat(reducersPath, " does not exist"));
56
+ throw new Error(`Specified reducers path ${reducersPath} does not exist`);
61
57
  }
62
- var text = host.read(reducersPath);
58
+ const text = host.read(reducersPath);
63
59
  if (text === null) {
64
- throw new schematics_1.SchematicsException("File ".concat(reducersPath, " does not exist."));
60
+ throw new schematics_1.SchematicsException(`File ${reducersPath} does not exist.`);
65
61
  }
66
- var sourceText = text.toString('utf-8');
67
- var source = ts.createSourceFile(reducersPath, sourceText, ts.ScriptTarget.Latest, true);
68
- var reducerPath = "/".concat(options.path, "/") +
62
+ const sourceText = text.toString('utf-8');
63
+ const source = ts.createSourceFile(reducersPath, sourceText, ts.ScriptTarget.Latest, true);
64
+ const reducerPath = `/${options.path}/` +
69
65
  (options.flat ? '' : stringUtils.dasherize(options.name) + '/') +
70
66
  (options.group ? 'reducers/' : '') +
71
67
  stringUtils.dasherize(options.name) +
72
68
  '.reducer';
73
- var relativePath = (0, find_module_1.buildRelativePath)(reducersPath, reducerPath);
74
- var reducerImport = (0, ast_utils_1.insertImport)(source, reducersPath, "* as from".concat(stringUtils.classify(options.name)), relativePath, true);
75
- var stateInterfaceInsert = addReducerToStateInterface(source, reducersPath, options);
76
- var reducerMapInsert = addReducerToActionReducerMap(source, reducersPath, options);
77
- var changes = [reducerImport, stateInterfaceInsert, reducerMapInsert];
78
- var recorder = host.beginUpdate(reducersPath);
79
- try {
80
- for (var changes_1 = __values(changes), changes_1_1 = changes_1.next(); !changes_1_1.done; changes_1_1 = changes_1.next()) {
81
- var change = changes_1_1.value;
82
- if (change instanceof change_1.InsertChange) {
83
- recorder.insertLeft(change.pos, change.toAdd);
84
- }
85
- }
86
- }
87
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
88
- finally {
89
- try {
90
- if (changes_1_1 && !changes_1_1.done && (_a = changes_1.return)) _a.call(changes_1);
69
+ const relativePath = (0, find_module_1.buildRelativePath)(reducersPath, reducerPath);
70
+ const reducerImport = (0, ast_utils_1.insertImport)(source, reducersPath, `* as from${stringUtils.classify(options.name)}`, relativePath, true);
71
+ const stateInterfaceInsert = addReducerToStateInterface(source, reducersPath, options);
72
+ const reducerMapInsert = addReducerToActionReducerMap(source, reducersPath, options);
73
+ const changes = [reducerImport, stateInterfaceInsert, reducerMapInsert];
74
+ const recorder = host.beginUpdate(reducersPath);
75
+ for (const change of changes) {
76
+ if (change instanceof change_1.InsertChange) {
77
+ recorder.insertLeft(change.pos, change.toAdd);
91
78
  }
92
- finally { if (e_1) throw e_1.error; }
93
79
  }
94
80
  host.commitUpdate(recorder);
95
81
  return host;
@@ -99,33 +85,33 @@ function addReducerToState(options) {
99
85
  * Insert the reducer into the first defined top level interface
100
86
  */
101
87
  function addReducerToStateInterface(source, reducersPath, options) {
102
- var stateInterface = source.statements.find(function (stm) { return stm.kind === ts.SyntaxKind.InterfaceDeclaration; });
103
- var node = stateInterface;
88
+ const stateInterface = source.statements.find((stm) => stm.kind === ts.SyntaxKind.InterfaceDeclaration);
89
+ let node = stateInterface;
104
90
  if (!node) {
105
91
  return new change_1.NoopChange();
106
92
  }
107
- var state = options.plural
93
+ const state = options.plural
108
94
  ? stringUtils.pluralize(options.name)
109
95
  : stringUtils.camelize(options.name);
110
- var keyInsert = "[from".concat(stringUtils.classify(options.name), ".").concat(stringUtils.camelize(state), "FeatureKey]: from").concat(stringUtils.classify(options.name), ".State;");
111
- var expr = node;
112
- var position;
113
- var toInsert;
96
+ const keyInsert = `[from${stringUtils.classify(options.name)}.${stringUtils.camelize(state)}FeatureKey]: from${stringUtils.classify(options.name)}.State;`;
97
+ const expr = node;
98
+ let position;
99
+ let toInsert;
114
100
  if (expr.members.length === 0) {
115
101
  position = expr.getEnd() - 1;
116
- toInsert = " ".concat(keyInsert, "\n");
102
+ toInsert = ` ${keyInsert}\n`;
117
103
  }
118
104
  else {
119
105
  node = expr.members[expr.members.length - 1];
120
106
  position = node.getEnd() + 1;
121
107
  // Get the indentation of the last element, if any.
122
- var text = node.getFullText(source);
123
- var matches = text.match(/^\r?\n+(\s*)/);
108
+ const text = node.getFullText(source);
109
+ const matches = text.match(/^\r?\n+(\s*)/);
124
110
  if (matches && matches.length > 0) {
125
- toInsert = "".concat(matches[1]).concat(keyInsert, "\n");
111
+ toInsert = `${matches[1]}${keyInsert}\n`;
126
112
  }
127
113
  else {
128
- toInsert = "\n".concat(keyInsert);
114
+ toInsert = `\n${keyInsert}`;
129
115
  }
130
116
  }
131
117
  return new change_1.InsertChange(reducersPath, position, toInsert);
@@ -134,47 +120,44 @@ function addReducerToStateInterface(source, reducersPath, options) {
134
120
  * Insert the reducer into the ActionReducerMap
135
121
  */
136
122
  function addReducerToActionReducerMap(source, reducersPath, options) {
137
- var initializer;
138
- var actionReducerMap = source.statements
139
- .filter(function (stm) { return stm.kind === ts.SyntaxKind.VariableStatement; })
140
- .filter(function (stm) { return !!stm.declarationList; })
141
- .map(function (stm) {
142
- var declarations = stm.declarationList.declarations;
143
- var variable = declarations.find(function (decl) { return decl.kind === ts.SyntaxKind.VariableDeclaration; });
144
- var type = variable ? variable.type : {};
145
- return { initializer: variable.initializer, type: type };
123
+ let initializer;
124
+ const actionReducerMap = source.statements
125
+ .filter((stm) => stm.kind === ts.SyntaxKind.VariableStatement)
126
+ .filter((stm) => !!stm.declarationList)
127
+ .map((stm) => {
128
+ const { declarations, } = stm.declarationList;
129
+ const variable = declarations.find((decl) => decl.kind === ts.SyntaxKind.VariableDeclaration);
130
+ const type = variable ? variable.type : {};
131
+ return { initializer: variable.initializer, type };
146
132
  })
147
- .filter(function (initWithType) { return initWithType.type !== undefined; })
148
- .find(function (_a) {
149
- var type = _a.type;
150
- return type.typeName.text === 'ActionReducerMap';
151
- });
133
+ .filter((initWithType) => initWithType.type !== undefined)
134
+ .find(({ type }) => type.typeName.text === 'ActionReducerMap');
152
135
  if (!actionReducerMap || !actionReducerMap.initializer) {
153
136
  return new change_1.NoopChange();
154
137
  }
155
- var node = actionReducerMap.initializer;
156
- var state = options.plural
138
+ let node = actionReducerMap.initializer;
139
+ const state = options.plural
157
140
  ? stringUtils.pluralize(options.name)
158
141
  : stringUtils.camelize(options.name);
159
- var keyInsert = "[from".concat(stringUtils.classify(options.name), ".").concat(stringUtils.camelize(state), "FeatureKey]: from").concat(stringUtils.classify(options.name), ".reducer,");
160
- var expr = node;
161
- var position;
162
- var toInsert;
142
+ const keyInsert = `[from${stringUtils.classify(options.name)}.${stringUtils.camelize(state)}FeatureKey]: from${stringUtils.classify(options.name)}.reducer,`;
143
+ const expr = node;
144
+ let position;
145
+ let toInsert;
163
146
  if (expr.properties.length === 0) {
164
147
  position = expr.getEnd() - 1;
165
- toInsert = " ".concat(keyInsert, "\n");
148
+ toInsert = ` ${keyInsert}\n`;
166
149
  }
167
150
  else {
168
151
  node = expr.properties[expr.properties.length - 1];
169
152
  position = node.getEnd() + 1;
170
153
  // Get the indentation of the last element, if any.
171
- var text = node.getFullText(source);
172
- var matches = text.match(/^\r?\n+(\s*)/);
154
+ const text = node.getFullText(source);
155
+ const matches = text.match(/^\r?\n+(\s*)/);
173
156
  if (matches && matches.length > 0) {
174
- toInsert = "\n".concat(matches[1]).concat(keyInsert);
157
+ toInsert = `\n${matches[1]}${keyInsert}`;
175
158
  }
176
159
  else {
177
- toInsert = "\n".concat(keyInsert);
160
+ toInsert = `\n${keyInsert}`;
178
161
  }
179
162
  }
180
163
  return new change_1.InsertChange(reducersPath, position, toInsert);
@@ -183,51 +166,40 @@ function addReducerToActionReducerMap(source, reducersPath, options) {
183
166
  * Add reducer feature to NgModule
184
167
  */
185
168
  function addReducerImportToNgModule(options) {
186
- return function (host) {
187
- var e_2, _a;
169
+ return (host) => {
188
170
  if (!options.module) {
189
171
  return host;
190
172
  }
191
- var modulePath = options.module;
173
+ const modulePath = options.module;
192
174
  if (!host.exists(options.module)) {
193
- throw new Error("Specified module path ".concat(modulePath, " does not exist"));
175
+ throw new Error(`Specified module path ${modulePath} does not exist`);
194
176
  }
195
- var text = host.read(modulePath);
177
+ const text = host.read(modulePath);
196
178
  if (text === null) {
197
- throw new schematics_1.SchematicsException("File ".concat(modulePath, " does not exist."));
179
+ throw new schematics_1.SchematicsException(`File ${modulePath} does not exist.`);
198
180
  }
199
- var sourceText = text.toString('utf-8');
200
- var source = ts.createSourceFile(modulePath, sourceText, ts.ScriptTarget.Latest, true);
201
- var commonImports = [
181
+ const sourceText = text.toString('utf-8');
182
+ const source = ts.createSourceFile(modulePath, sourceText, ts.ScriptTarget.Latest, true);
183
+ const commonImports = [
202
184
  (0, ast_utils_1.insertImport)(source, modulePath, 'StoreModule', '@ngrx/store'),
203
185
  ];
204
- var reducerPath = "/".concat(options.path, "/") +
186
+ const reducerPath = `/${options.path}/` +
205
187
  (options.flat ? '' : stringUtils.dasherize(options.name) + '/') +
206
188
  (options.group ? 'reducers/' : '') +
207
189
  stringUtils.dasherize(options.name) +
208
190
  '.reducer';
209
- var relativePath = (0, find_module_1.buildRelativePath)(modulePath, reducerPath);
210
- var reducerImport = (0, ast_utils_1.insertImport)(source, modulePath, "* as from".concat(stringUtils.classify(options.name)), relativePath, true);
211
- var state = options.plural
191
+ const relativePath = (0, find_module_1.buildRelativePath)(modulePath, reducerPath);
192
+ const reducerImport = (0, ast_utils_1.insertImport)(source, modulePath, `* as from${stringUtils.classify(options.name)}`, relativePath, true);
193
+ const state = options.plural
212
194
  ? stringUtils.pluralize(options.name)
213
195
  : stringUtils.camelize(options.name);
214
- var _b = __read((0, ast_utils_1.addImportToModule)(source, modulePath, "StoreModule.forFeature(from".concat(stringUtils.classify(options.name), ".").concat(state, "FeatureKey, from").concat(stringUtils.classify(options.name), ".reducer)"), relativePath), 1), storeNgModuleImport = _b[0];
215
- var changes = __spreadArray(__spreadArray([], __read(commonImports), false), [reducerImport, storeNgModuleImport], false);
216
- var recorder = host.beginUpdate(modulePath);
217
- try {
218
- for (var changes_2 = __values(changes), changes_2_1 = changes_2.next(); !changes_2_1.done; changes_2_1 = changes_2.next()) {
219
- var change = changes_2_1.value;
220
- if (change instanceof change_1.InsertChange) {
221
- recorder.insertLeft(change.pos, change.toAdd);
222
- }
223
- }
224
- }
225
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
226
- finally {
227
- try {
228
- if (changes_2_1 && !changes_2_1.done && (_a = changes_2.return)) _a.call(changes_2);
196
+ const [storeNgModuleImport] = (0, ast_utils_1.addImportToModule)(source, modulePath, `StoreModule.forFeature(from${stringUtils.classify(options.name)}.${state}FeatureKey, from${stringUtils.classify(options.name)}.reducer)`, relativePath);
197
+ const changes = [...commonImports, reducerImport, storeNgModuleImport];
198
+ const recorder = host.beginUpdate(modulePath);
199
+ for (const change of changes) {
200
+ if (change instanceof change_1.InsertChange) {
201
+ recorder.insertLeft(change.pos, change.toAdd);
229
202
  }
230
- finally { if (e_2) throw e_2.error; }
231
203
  }
232
204
  host.commitUpdate(recorder);
233
205
  return host;
@@ -235,11 +207,8 @@ function addReducerImportToNgModule(options) {
235
207
  }
236
208
  function omit(object, keyToRemove) {
237
209
  return Object.keys(object)
238
- .filter(function (key) { return key !== keyToRemove; })
239
- .reduce(function (result, key) {
240
- var _a;
241
- return Object.assign(result, (_a = {}, _a[key] = object[key], _a));
242
- }, {});
210
+ .filter((key) => key !== keyToRemove)
211
+ .reduce((result, key) => Object.assign(result, { [key]: object[key] }), {});
243
212
  }
244
213
  function getPrefix(options) {
245
214
  return stringUtils.camelize(options.prefix || 'load');
@@ -1 +1 @@
1
- {"version":3,"file":"ngrx-utils.js","sourceRoot":"","sources":["../../../../../modules/signals/schematics-core/utility/ngrx-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import * as ts from 'typescript';\nimport * as stringUtils from './strings';\nimport { InsertChange, Change, NoopChange } from './change';\nimport { Tree, SchematicsException, Rule } from '@angular-devkit/schematics';\nimport { normalize } from '@angular-devkit/core';\nimport { buildRelativePath } from './find-module';\nimport { addImportToModule, insertImport } from './ast-utils';\n\nexport function addReducerToState(options: any): Rule {\n return (host: Tree) => {\n if (!options.reducers) {\n return host;\n }\n\n const reducersPath = normalize(`/${options.path}/${options.reducers}`);\n\n if (!host.exists(reducersPath)) {\n throw new Error(`Specified reducers path ${reducersPath} does not exist`);\n }\n\n const text = host.read(reducersPath);\n if (text === null) {\n throw new SchematicsException(`File ${reducersPath} does not exist.`);\n }\n\n const sourceText = text.toString('utf-8');\n\n const source = ts.createSourceFile(\n reducersPath,\n sourceText,\n ts.ScriptTarget.Latest,\n true\n );\n\n const reducerPath =\n `/${options.path}/` +\n (options.flat ? '' : stringUtils.dasherize(options.name) + '/') +\n (options.group ? 'reducers/' : '') +\n stringUtils.dasherize(options.name) +\n '.reducer';\n\n const relativePath = buildRelativePath(reducersPath, reducerPath);\n const reducerImport = insertImport(\n source,\n reducersPath,\n `* as from${stringUtils.classify(options.name)}`,\n relativePath,\n true\n );\n\n const stateInterfaceInsert = addReducerToStateInterface(\n source,\n reducersPath,\n options\n );\n const reducerMapInsert = addReducerToActionReducerMap(\n source,\n reducersPath,\n options\n );\n\n const changes = [reducerImport, stateInterfaceInsert, reducerMapInsert];\n const recorder = host.beginUpdate(reducersPath);\n for (const change of changes) {\n if (change instanceof InsertChange) {\n recorder.insertLeft(change.pos, change.toAdd);\n }\n }\n host.commitUpdate(recorder);\n\n return host;\n };\n}\n\n/**\n * Insert the reducer into the first defined top level interface\n */\nexport function addReducerToStateInterface(\n source: ts.SourceFile,\n reducersPath: string,\n options: { name: string; plural: boolean }\n): Change {\n const stateInterface = source.statements.find(\n (stm) => stm.kind === ts.SyntaxKind.InterfaceDeclaration\n );\n let node = stateInterface as ts.Statement;\n\n if (!node) {\n return new NoopChange();\n }\n\n const state = options.plural\n ? stringUtils.pluralize(options.name)\n : stringUtils.camelize(options.name);\n\n const keyInsert = `[from${stringUtils.classify(\n options.name\n )}.${stringUtils.camelize(state)}FeatureKey]: from${stringUtils.classify(\n options.name\n )}.State;`;\n const expr = node as any;\n let position;\n let toInsert;\n\n if (expr.members.length === 0) {\n position = expr.getEnd() - 1;\n toInsert = ` ${keyInsert}\\n`;\n } else {\n node = expr.members[expr.members.length - 1];\n position = node.getEnd() + 1;\n // Get the indentation of the last element, if any.\n const text = node.getFullText(source);\n const matches = text.match(/^\\r?\\n+(\\s*)/);\n\n if (matches && matches.length > 0) {\n toInsert = `${matches[1]}${keyInsert}\\n`;\n } else {\n toInsert = `\\n${keyInsert}`;\n }\n }\n\n return new InsertChange(reducersPath, position, toInsert);\n}\n\n/**\n * Insert the reducer into the ActionReducerMap\n */\nexport function addReducerToActionReducerMap(\n source: ts.SourceFile,\n reducersPath: string,\n options: { name: string; plural: boolean }\n): Change {\n let initializer: any;\n const actionReducerMap: any = source.statements\n .filter((stm) => stm.kind === ts.SyntaxKind.VariableStatement)\n .filter((stm: any) => !!stm.declarationList)\n .map((stm: any) => {\n const {\n declarations,\n }: {\n declarations: ts.SyntaxKind.VariableDeclarationList[];\n } = stm.declarationList;\n const variable: any = declarations.find(\n (decl: any) => decl.kind === ts.SyntaxKind.VariableDeclaration\n );\n const type = variable ? variable.type : {};\n\n return { initializer: variable.initializer, type };\n })\n .filter((initWithType) => initWithType.type !== undefined)\n .find(({ type }) => type.typeName.text === 'ActionReducerMap');\n\n if (!actionReducerMap || !actionReducerMap.initializer) {\n return new NoopChange();\n }\n\n let node = actionReducerMap.initializer;\n\n const state = options.plural\n ? stringUtils.pluralize(options.name)\n : stringUtils.camelize(options.name);\n\n const keyInsert = `[from${stringUtils.classify(\n options.name\n )}.${stringUtils.camelize(state)}FeatureKey]: from${stringUtils.classify(\n options.name\n )}.reducer,`;\n const expr = node as any;\n let position;\n let toInsert;\n\n if (expr.properties.length === 0) {\n position = expr.getEnd() - 1;\n toInsert = ` ${keyInsert}\\n`;\n } else {\n node = expr.properties[expr.properties.length - 1];\n position = node.getEnd() + 1;\n // Get the indentation of the last element, if any.\n const text = node.getFullText(source);\n const matches = text.match(/^\\r?\\n+(\\s*)/);\n\n if (matches && matches.length > 0) {\n toInsert = `\\n${matches[1]}${keyInsert}`;\n } else {\n toInsert = `\\n${keyInsert}`;\n }\n }\n\n return new InsertChange(reducersPath, position, toInsert);\n}\n\n/**\n * Add reducer feature to NgModule\n */\nexport function addReducerImportToNgModule(options: any): Rule {\n return (host: Tree) => {\n if (!options.module) {\n return host;\n }\n\n const modulePath = options.module;\n if (!host.exists(options.module)) {\n throw new Error(`Specified module path ${modulePath} does not exist`);\n }\n\n const text = host.read(modulePath);\n if (text === null) {\n throw new SchematicsException(`File ${modulePath} does not exist.`);\n }\n const sourceText = text.toString('utf-8');\n\n const source = ts.createSourceFile(\n modulePath,\n sourceText,\n ts.ScriptTarget.Latest,\n true\n );\n\n const commonImports = [\n insertImport(source, modulePath, 'StoreModule', '@ngrx/store'),\n ];\n\n const reducerPath =\n `/${options.path}/` +\n (options.flat ? '' : stringUtils.dasherize(options.name) + '/') +\n (options.group ? 'reducers/' : '') +\n stringUtils.dasherize(options.name) +\n '.reducer';\n const relativePath = buildRelativePath(modulePath, reducerPath);\n const reducerImport = insertImport(\n source,\n modulePath,\n `* as from${stringUtils.classify(options.name)}`,\n relativePath,\n true\n );\n const state = options.plural\n ? stringUtils.pluralize(options.name)\n : stringUtils.camelize(options.name);\n const [storeNgModuleImport] = addImportToModule(\n source,\n modulePath,\n `StoreModule.forFeature(from${stringUtils.classify(\n options.name\n )}.${state}FeatureKey, from${stringUtils.classify(\n options.name\n )}.reducer)`,\n relativePath\n );\n const changes = [...commonImports, reducerImport, storeNgModuleImport];\n const recorder = host.beginUpdate(modulePath);\n for (const change of changes) {\n if (change instanceof InsertChange) {\n recorder.insertLeft(change.pos, change.toAdd);\n }\n }\n host.commitUpdate(recorder);\n\n return host;\n };\n}\n\nexport function omit<T extends { [key: string]: any }>(\n object: T,\n keyToRemove: keyof T\n): Partial<T> {\n return Object.keys(object)\n .filter((key) => key !== keyToRemove)\n .reduce((result, key) => Object.assign(result, { [key]: object[key] }), {});\n}\n\nexport function getPrefix(options: { prefix?: string }) {\n return stringUtils.camelize(options.prefix || 'load');\n}\n"]}
1
+ {"version":3,"file":"ngrx-utils.js","sourceRoot":"","sources":["../../../../../modules/signals/schematics-core/utility/ngrx-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import * as ts from 'typescript';\nimport * as stringUtils from './strings';\nimport { InsertChange, Change, NoopChange } from './change';\nimport { Tree, SchematicsException, Rule } from '@angular-devkit/schematics';\nimport { normalize } from '@angular-devkit/core';\nimport { buildRelativePath } from './find-module';\nimport { addImportToModule, insertImport } from './ast-utils';\n\nexport function addReducerToState(options: any): Rule {\n return (host: Tree) => {\n if (!options.reducers) {\n return host;\n }\n\n const reducersPath = normalize(`/${options.path}/${options.reducers}`);\n\n if (!host.exists(reducersPath)) {\n throw new Error(`Specified reducers path ${reducersPath} does not exist`);\n }\n\n const text = host.read(reducersPath);\n if (text === null) {\n throw new SchematicsException(`File ${reducersPath} does not exist.`);\n }\n\n const sourceText = text.toString('utf-8');\n\n const source = ts.createSourceFile(\n reducersPath,\n sourceText,\n ts.ScriptTarget.Latest,\n true\n );\n\n const reducerPath =\n `/${options.path}/` +\n (options.flat ? '' : stringUtils.dasherize(options.name) + '/') +\n (options.group ? 'reducers/' : '') +\n stringUtils.dasherize(options.name) +\n '.reducer';\n\n const relativePath = buildRelativePath(reducersPath, reducerPath);\n const reducerImport = insertImport(\n source,\n reducersPath,\n `* as from${stringUtils.classify(options.name)}`,\n relativePath,\n true\n );\n\n const stateInterfaceInsert = addReducerToStateInterface(\n source,\n reducersPath,\n options\n );\n const reducerMapInsert = addReducerToActionReducerMap(\n source,\n reducersPath,\n options\n );\n\n const changes = [reducerImport, stateInterfaceInsert, reducerMapInsert];\n const recorder = host.beginUpdate(reducersPath);\n for (const change of changes) {\n if (change instanceof InsertChange) {\n recorder.insertLeft(change.pos, change.toAdd);\n }\n }\n host.commitUpdate(recorder);\n\n return host;\n };\n}\n\n/**\n * Insert the reducer into the first defined top level interface\n */\nexport function addReducerToStateInterface(\n source: ts.SourceFile,\n reducersPath: string,\n options: { name: string; plural: boolean }\n): Change {\n const stateInterface = source.statements.find(\n (stm) => stm.kind === ts.SyntaxKind.InterfaceDeclaration\n );\n let node = stateInterface as ts.Statement;\n\n if (!node) {\n return new NoopChange();\n }\n\n const state = options.plural\n ? stringUtils.pluralize(options.name)\n : stringUtils.camelize(options.name);\n\n const keyInsert = `[from${stringUtils.classify(\n options.name\n )}.${stringUtils.camelize(state)}FeatureKey]: from${stringUtils.classify(\n options.name\n )}.State;`;\n const expr = node as any;\n let position;\n let toInsert;\n\n if (expr.members.length === 0) {\n position = expr.getEnd() - 1;\n toInsert = ` ${keyInsert}\\n`;\n } else {\n node = expr.members[expr.members.length - 1];\n position = node.getEnd() + 1;\n // Get the indentation of the last element, if any.\n const text = node.getFullText(source);\n const matches = text.match(/^\\r?\\n+(\\s*)/);\n\n if (matches && matches.length > 0) {\n toInsert = `${matches[1]}${keyInsert}\\n`;\n } else {\n toInsert = `\\n${keyInsert}`;\n }\n }\n\n return new InsertChange(reducersPath, position, toInsert);\n}\n\n/**\n * Insert the reducer into the ActionReducerMap\n */\nexport function addReducerToActionReducerMap(\n source: ts.SourceFile,\n reducersPath: string,\n options: { name: string; plural: boolean }\n): Change {\n let initializer: any;\n const actionReducerMap: any = source.statements\n .filter((stm) => stm.kind === ts.SyntaxKind.VariableStatement)\n .filter((stm: any) => !!stm.declarationList)\n .map((stm: any) => {\n const {\n declarations,\n }: {\n declarations: ts.SyntaxKind.VariableDeclarationList[];\n } = stm.declarationList;\n const variable: any = declarations.find(\n (decl: any) => decl.kind === ts.SyntaxKind.VariableDeclaration\n );\n const type = variable ? variable.type : {};\n\n return { initializer: variable.initializer, type };\n })\n .filter((initWithType) => initWithType.type !== undefined)\n .find(({ type }) => type.typeName.text === 'ActionReducerMap');\n\n if (!actionReducerMap || !actionReducerMap.initializer) {\n return new NoopChange();\n }\n\n let node = actionReducerMap.initializer;\n\n const state = options.plural\n ? stringUtils.pluralize(options.name)\n : stringUtils.camelize(options.name);\n\n const keyInsert = `[from${stringUtils.classify(\n options.name\n )}.${stringUtils.camelize(state)}FeatureKey]: from${stringUtils.classify(\n options.name\n )}.reducer,`;\n const expr = node as any;\n let position;\n let toInsert;\n\n if (expr.properties.length === 0) {\n position = expr.getEnd() - 1;\n toInsert = ` ${keyInsert}\\n`;\n } else {\n node = expr.properties[expr.properties.length - 1];\n position = node.getEnd() + 1;\n // Get the indentation of the last element, if any.\n const text = node.getFullText(source);\n const matches = text.match(/^\\r?\\n+(\\s*)/);\n\n if (matches && matches.length > 0) {\n toInsert = `\\n${matches[1]}${keyInsert}`;\n } else {\n toInsert = `\\n${keyInsert}`;\n }\n }\n\n return new InsertChange(reducersPath, position, toInsert);\n}\n\n/**\n * Add reducer feature to NgModule\n */\nexport function addReducerImportToNgModule(options: any): Rule {\n return (host: Tree) => {\n if (!options.module) {\n return host;\n }\n\n const modulePath = options.module;\n if (!host.exists(options.module)) {\n throw new Error(`Specified module path ${modulePath} does not exist`);\n }\n\n const text = host.read(modulePath);\n if (text === null) {\n throw new SchematicsException(`File ${modulePath} does not exist.`);\n }\n const sourceText = text.toString('utf-8');\n\n const source = ts.createSourceFile(\n modulePath,\n sourceText,\n ts.ScriptTarget.Latest,\n true\n );\n\n const commonImports = [\n insertImport(source, modulePath, 'StoreModule', '@ngrx/store'),\n ];\n\n const reducerPath =\n `/${options.path}/` +\n (options.flat ? '' : stringUtils.dasherize(options.name) + '/') +\n (options.group ? 'reducers/' : '') +\n stringUtils.dasherize(options.name) +\n '.reducer';\n const relativePath = buildRelativePath(modulePath, reducerPath);\n const reducerImport = insertImport(\n source,\n modulePath,\n `* as from${stringUtils.classify(options.name)}`,\n relativePath,\n true\n );\n const state = options.plural\n ? stringUtils.pluralize(options.name)\n : stringUtils.camelize(options.name);\n const [storeNgModuleImport] = addImportToModule(\n source,\n modulePath,\n `StoreModule.forFeature(from${stringUtils.classify(\n options.name\n )}.${state}FeatureKey, from${stringUtils.classify(\n options.name\n )}.reducer)`,\n relativePath\n );\n const changes = [...commonImports, reducerImport, storeNgModuleImport];\n const recorder = host.beginUpdate(modulePath);\n for (const change of changes) {\n if (change instanceof InsertChange) {\n recorder.insertLeft(change.pos, change.toAdd);\n }\n }\n host.commitUpdate(recorder);\n\n return host;\n };\n}\n\nexport function omit<T extends { [key: string]: any }>(\n object: T,\n keyToRemove: keyof T\n): Partial<T> {\n return Object.keys(object)\n .filter((key) => key !== keyToRemove)\n .reduce((result, key) => Object.assign(result, { [key]: object[key] }), {});\n}\n\nexport function getPrefix(options: { prefix?: string }) {\n return stringUtils.camelize(options.prefix || 'load');\n}\n"]}
@@ -5,10 +5,9 @@ exports.addPackageToPackageJson = addPackageToPackageJson;
5
5
  * Adds a package to the package.json
6
6
  */
7
7
  function addPackageToPackageJson(host, type, pkg, version) {
8
- var _a, _b;
9
8
  if (host.exists('package.json')) {
10
- var sourceText = (_b = (_a = host.read('package.json')) === null || _a === void 0 ? void 0 : _a.toString('utf-8')) !== null && _b !== void 0 ? _b : '{}';
11
- var json = JSON.parse(sourceText);
9
+ const sourceText = host.read('package.json')?.toString('utf-8') ?? '{}';
10
+ const json = JSON.parse(sourceText);
12
11
  if (!json[type]) {
13
12
  json[type] = {};
14
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"package.js","sourceRoot":"","sources":["../../../../../modules/signals/schematics-core/utility/package.ts"],"names":[],"mappings":";;AAKA,0DAqBC;AAxBD;;GAEG;AACH,SAAgB,uBAAuB,CACrC,IAAU,EACV,IAAY,EACZ,GAAW,EACX,OAAe;;IAEf,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;QAChC,IAAM,UAAU,GAAG,MAAA,MAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,0CAAE,QAAQ,CAAC,OAAO,CAAC,mCAAI,IAAI,CAAC;QACxE,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAClB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["import { Tree } from '@angular-devkit/schematics';\n\n/**\n * Adds a package to the package.json\n */\nexport function addPackageToPackageJson(\n host: Tree,\n type: string,\n pkg: string,\n version: string\n): Tree {\n if (host.exists('package.json')) {\n const sourceText = host.read('package.json')?.toString('utf-8') ?? '{}';\n const json = JSON.parse(sourceText);\n if (!json[type]) {\n json[type] = {};\n }\n\n if (!json[type][pkg]) {\n json[type][pkg] = version;\n }\n\n host.overwrite('package.json', JSON.stringify(json, null, 2));\n }\n\n return host;\n}\n"]}
1
+ {"version":3,"file":"package.js","sourceRoot":"","sources":["../../../../../modules/signals/schematics-core/utility/package.ts"],"names":[],"mappings":";;AAKA,0DAqBC;AAxBD;;GAEG;AACH,SAAgB,uBAAuB,CACrC,IAAU,EACV,IAAY,EACZ,GAAW,EACX,OAAe;IAEf,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;QACxE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAClB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["import { Tree } from '@angular-devkit/schematics';\n\n/**\n * Adds a package to the package.json\n */\nexport function addPackageToPackageJson(\n host: Tree,\n type: string,\n pkg: string,\n version: string\n): Tree {\n if (host.exists('package.json')) {\n const sourceText = host.read('package.json')?.toString('utf-8') ?? '{}';\n const json = JSON.parse(sourceText);\n if (!json[type]) {\n json[type] = {};\n }\n\n if (!json[type][pkg]) {\n json[type][pkg] = version;\n }\n\n host.overwrite('package.json', JSON.stringify(json, null, 2));\n }\n\n return host;\n}\n"]}
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parseName = parseName;
4
- var core_1 = require("@angular-devkit/core");
4
+ const core_1 = require("@angular-devkit/core");
5
5
  function parseName(path, name) {
6
- var nameWithoutPath = (0, core_1.basename)(name);
7
- var namePath = (0, core_1.dirname)((path + '/' + name));
6
+ const nameWithoutPath = (0, core_1.basename)(name);
7
+ const namePath = (0, core_1.dirname)((path + '/' + name));
8
8
  return {
9
9
  name: nameWithoutPath,
10
10
  path: (0, core_1.normalize)('/' + namePath),
@@ -1 +1 @@
1
- {"version":3,"file":"parse-name.js","sourceRoot":"","sources":["../../../../../modules/signals/schematics-core/utility/parse-name.ts"],"names":[],"mappings":";;AAOA,8BAQC;AAfD,6CAA0E;AAO1E,SAAgB,SAAS,CAAC,IAAY,EAAE,IAAY;IAClD,IAAM,eAAe,GAAG,IAAA,eAAQ,EAAC,IAAY,CAAC,CAAC;IAC/C,IAAM,QAAQ,GAAG,IAAA,cAAO,EAAC,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAS,CAAC,CAAC;IAEtD,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,IAAA,gBAAS,EAAC,GAAG,GAAG,QAAQ,CAAC;KAChC,CAAC;AACJ,CAAC","sourcesContent":["import { Path, basename, dirname, normalize } from '@angular-devkit/core';\n\nexport interface Location {\n name: string;\n path: Path;\n}\n\nexport function parseName(path: string, name: string): Location {\n const nameWithoutPath = basename(name as Path);\n const namePath = dirname((path + '/' + name) as Path);\n\n return {\n name: nameWithoutPath,\n path: normalize('/' + namePath),\n };\n}\n"]}
1
+ {"version":3,"file":"parse-name.js","sourceRoot":"","sources":["../../../../../modules/signals/schematics-core/utility/parse-name.ts"],"names":[],"mappings":";;AAOA,8BAQC;AAfD,+CAA0E;AAO1E,SAAgB,SAAS,CAAC,IAAY,EAAE,IAAY;IAClD,MAAM,eAAe,GAAG,IAAA,eAAQ,EAAC,IAAY,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,IAAA,cAAO,EAAC,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAS,CAAC,CAAC;IAEtD,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,IAAA,gBAAS,EAAC,GAAG,GAAG,QAAQ,CAAC;KAChC,CAAC;AACJ,CAAC","sourcesContent":["import { Path, basename, dirname, normalize } from '@angular-devkit/core';\n\nexport interface Location {\n name: string;\n path: Path;\n}\n\nexport function parseName(path: string, name: string): Location {\n const nameWithoutPath = basename(name as Path);\n const namePath = dirname((path + '/' + name) as Path);\n\n return {\n name: nameWithoutPath,\n path: normalize('/' + namePath),\n };\n}\n"]}
@@ -4,12 +4,12 @@ exports.getProject = getProject;
4
4
  exports.getProjectPath = getProjectPath;
5
5
  exports.isLib = isLib;
6
6
  exports.getProjectMainFile = getProjectMainFile;
7
- var config_1 = require("./config");
8
- var schematics_1 = require("@angular-devkit/schematics");
7
+ const config_1 = require("./config");
8
+ const schematics_1 = require("@angular-devkit/schematics");
9
9
  function getProject(host, options) {
10
- var workspace = (0, config_1.getWorkspace)(host);
10
+ const workspace = (0, config_1.getWorkspace)(host);
11
11
  if (!options.project) {
12
- var defaultProject = workspace
12
+ const defaultProject = workspace
13
13
  .defaultProject;
14
14
  options.project =
15
15
  defaultProject !== undefined
@@ -19,28 +19,28 @@ function getProject(host, options) {
19
19
  return workspace.projects[options.project];
20
20
  }
21
21
  function getProjectPath(host, options) {
22
- var project = getProject(host, options);
22
+ const project = getProject(host, options);
23
23
  if (project.root.slice(-1) === '/') {
24
24
  project.root = project.root.substring(0, project.root.length - 1);
25
25
  }
26
26
  if (options.path === undefined) {
27
- var projectDirName = project.projectType === 'application' ? 'app' : 'lib';
28
- return "".concat(project.root ? "/".concat(project.root) : '', "/src/").concat(projectDirName);
27
+ const projectDirName = project.projectType === 'application' ? 'app' : 'lib';
28
+ return `${project.root ? `/${project.root}` : ''}/src/${projectDirName}`;
29
29
  }
30
30
  return options.path;
31
31
  }
32
32
  function isLib(host, options) {
33
- var project = getProject(host, options);
33
+ const project = getProject(host, options);
34
34
  return project.projectType === 'library';
35
35
  }
36
36
  function getProjectMainFile(host, options) {
37
37
  if (isLib(host, options)) {
38
- throw new schematics_1.SchematicsException("Invalid project type");
38
+ throw new schematics_1.SchematicsException(`Invalid project type`);
39
39
  }
40
- var project = getProject(host, options);
41
- var projectOptions = project.architect['build'].options;
42
- if (!(projectOptions === null || projectOptions === void 0 ? void 0 : projectOptions.main) && !(projectOptions === null || projectOptions === void 0 ? void 0 : projectOptions.browser)) {
43
- throw new schematics_1.SchematicsException("Could not find the main file ".concat(project));
40
+ const project = getProject(host, options);
41
+ const projectOptions = project.architect['build'].options;
42
+ if (!projectOptions?.main && !projectOptions?.browser) {
43
+ throw new schematics_1.SchematicsException(`Could not find the main file ${project}`);
44
44
  }
45
45
  return (projectOptions.browser || projectOptions.main);
46
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../../../../modules/signals/schematics-core/utility/project.ts"],"names":[],"mappings":";;AAYA,gCAgBC;AAED,wCAkBC;AAED,sBAOC;AAED,gDAeC;AAzED,mCAAwC;AACxC,yDAAuE;AAUvE,SAAgB,UAAU,CACxB,IAAU,EACV,OAAoE;IAEpE,IAAM,SAAS,GAAG,IAAA,qBAAY,EAAC,IAAI,CAAC,CAAC;IAErC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,IAAM,cAAc,GAAI,SAAyC;aAC9D,cAAc,CAAC;QAClB,OAAO,CAAC,OAAO;YACb,cAAc,KAAK,SAAS;gBAC1B,CAAC,CAAC,cAAc;gBAChB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED,SAAgB,cAAc,CAC5B,IAAU,EACV,OAAoE;IAEpE,IAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE1C,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAM,cAAc,GAClB,OAAO,CAAC,WAAW,KAAK,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAExD,OAAO,UAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,WAAI,OAAO,CAAC,IAAI,CAAE,CAAC,CAAC,CAAC,EAAE,kBAAQ,cAAc,CAAE,CAAC;IAC3E,CAAC;IAED,OAAO,OAAO,CAAC,IAAI,CAAC;AACtB,CAAC;AAED,SAAgB,KAAK,CACnB,IAAU,EACV,OAAoE;IAEpE,IAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE1C,OAAO,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC;AAC3C,CAAC;AAED,SAAgB,kBAAkB,CAChC,IAAU,EACV,OAAoE;IAEpE,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,gCAAmB,CAAC,sBAAsB,CAAC,CAAC;IACxD,CAAC;IACD,IAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1C,IAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;IAE1D,IAAI,CAAC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,CAAA,IAAI,CAAC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,OAAO,CAAA,EAAE,CAAC;QACtD,MAAM,IAAI,gCAAmB,CAAC,uCAAgC,OAAO,CAAE,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,CAAC,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC,IAAI,CAAW,CAAC;AACnE,CAAC","sourcesContent":["import { TargetDefinition } from '@angular-devkit/core/src/workspace';\nimport { getWorkspace } from './config';\nimport { SchematicsException, Tree } from '@angular-devkit/schematics';\n\nexport interface WorkspaceProject {\n root: string;\n projectType: string;\n architect: {\n [key: string]: TargetDefinition;\n };\n}\n\nexport function getProject(\n host: Tree,\n options: { project?: string | undefined; path?: string | undefined }\n): WorkspaceProject {\n const workspace = getWorkspace(host);\n\n if (!options.project) {\n const defaultProject = (workspace as { defaultProject?: string })\n .defaultProject;\n options.project =\n defaultProject !== undefined\n ? defaultProject\n : Object.keys(workspace.projects)[0];\n }\n\n return workspace.projects[options.project];\n}\n\nexport function getProjectPath(\n host: Tree,\n options: { project?: string | undefined; path?: string | undefined }\n) {\n const project = getProject(host, options);\n\n if (project.root.slice(-1) === '/') {\n project.root = project.root.substring(0, project.root.length - 1);\n }\n\n if (options.path === undefined) {\n const projectDirName =\n project.projectType === 'application' ? 'app' : 'lib';\n\n return `${project.root ? `/${project.root}` : ''}/src/${projectDirName}`;\n }\n\n return options.path;\n}\n\nexport function isLib(\n host: Tree,\n options: { project?: string | undefined; path?: string | undefined }\n) {\n const project = getProject(host, options);\n\n return project.projectType === 'library';\n}\n\nexport function getProjectMainFile(\n host: Tree,\n options: { project?: string | undefined; path?: string | undefined }\n) {\n if (isLib(host, options)) {\n throw new SchematicsException(`Invalid project type`);\n }\n const project = getProject(host, options);\n const projectOptions = project.architect['build'].options;\n\n if (!projectOptions?.main && !projectOptions?.browser) {\n throw new SchematicsException(`Could not find the main file ${project}`);\n }\n\n return (projectOptions.browser || projectOptions.main) as string;\n}\n"]}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../../../../modules/signals/schematics-core/utility/project.ts"],"names":[],"mappings":";;AAYA,gCAgBC;AAED,wCAkBC;AAED,sBAOC;AAED,gDAeC;AAzED,qCAAwC;AACxC,2DAAuE;AAUvE,SAAgB,UAAU,CACxB,IAAU,EACV,OAAoE;IAEpE,MAAM,SAAS,GAAG,IAAA,qBAAY,EAAC,IAAI,CAAC,CAAC;IAErC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,cAAc,GAAI,SAAyC;aAC9D,cAAc,CAAC;QAClB,OAAO,CAAC,OAAO;YACb,cAAc,KAAK,SAAS;gBAC1B,CAAC,CAAC,cAAc;gBAChB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED,SAAgB,cAAc,CAC5B,IAAU,EACV,OAAoE;IAEpE,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE1C,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,cAAc,GAClB,OAAO,CAAC,WAAW,KAAK,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAExD,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,cAAc,EAAE,CAAC;IAC3E,CAAC;IAED,OAAO,OAAO,CAAC,IAAI,CAAC;AACtB,CAAC;AAED,SAAgB,KAAK,CACnB,IAAU,EACV,OAAoE;IAEpE,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE1C,OAAO,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC;AAC3C,CAAC;AAED,SAAgB,kBAAkB,CAChC,IAAU,EACV,OAAoE;IAEpE,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,gCAAmB,CAAC,sBAAsB,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;IAE1D,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,CAAC;QACtD,MAAM,IAAI,gCAAmB,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,CAAC,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC,IAAI,CAAW,CAAC;AACnE,CAAC","sourcesContent":["import { workspaces } from '@angular-devkit/core';\nimport { getWorkspace } from './config';\nimport { SchematicsException, Tree } from '@angular-devkit/schematics';\n\nexport interface WorkspaceProject {\n root: string;\n projectType: string;\n architect: {\n [key: string]: workspaces.TargetDefinition;\n };\n}\n\nexport function getProject(\n host: Tree,\n options: { project?: string | undefined; path?: string | undefined }\n): WorkspaceProject {\n const workspace = getWorkspace(host);\n\n if (!options.project) {\n const defaultProject = (workspace as { defaultProject?: string })\n .defaultProject;\n options.project =\n defaultProject !== undefined\n ? defaultProject\n : Object.keys(workspace.projects)[0];\n }\n\n return workspace.projects[options.project];\n}\n\nexport function getProjectPath(\n host: Tree,\n options: { project?: string | undefined; path?: string | undefined }\n) {\n const project = getProject(host, options);\n\n if (project.root.slice(-1) === '/') {\n project.root = project.root.substring(0, project.root.length - 1);\n }\n\n if (options.path === undefined) {\n const projectDirName =\n project.projectType === 'application' ? 'app' : 'lib';\n\n return `${project.root ? `/${project.root}` : ''}/src/${projectDirName}`;\n }\n\n return options.path;\n}\n\nexport function isLib(\n host: Tree,\n options: { project?: string | undefined; path?: string | undefined }\n) {\n const project = getProject(host, options);\n\n return project.projectType === 'library';\n}\n\nexport function getProjectMainFile(\n host: Tree,\n options: { project?: string | undefined; path?: string | undefined }\n) {\n if (isLib(host, options)) {\n throw new SchematicsException(`Invalid project type`);\n }\n const project = getProject(host, options);\n const projectOptions = project.architect['build'].options;\n\n if (!projectOptions?.main && !projectOptions?.browser) {\n throw new SchematicsException(`Could not find the main file ${project}`);\n }\n\n return (projectOptions.browser || projectOptions.main) as string;\n}\n"]}
@@ -16,11 +16,11 @@ exports.featurePath = featurePath;
16
16
  * Use of this source code is governed by an MIT-style license that can be
17
17
  * found in the LICENSE file at https://angular.io/license
18
18
  */
19
- var STRING_DASHERIZE_REGEXP = /[ _]/g;
20
- var STRING_DECAMELIZE_REGEXP = /([a-z\d])([A-Z])/g;
21
- var STRING_CAMELIZE_REGEXP = /(-|_|\.|\s)+(.)?/g;
22
- var STRING_UNDERSCORE_REGEXP_1 = /([a-z\d])([A-Z]+)/g;
23
- var STRING_UNDERSCORE_REGEXP_2 = /-|\s+/g;
19
+ const STRING_DASHERIZE_REGEXP = /[ _]/g;
20
+ const STRING_DECAMELIZE_REGEXP = /([a-z\d])([A-Z])/g;
21
+ const STRING_CAMELIZE_REGEXP = /(-|_|\.|\s)+(.)?/g;
22
+ const STRING_UNDERSCORE_REGEXP_1 = /([a-z\d])([A-Z]+)/g;
23
+ const STRING_UNDERSCORE_REGEXP_2 = /-|\s+/g;
24
24
  /**
25
25
  * Converts a camelized string into all lower case separated by underscores.
26
26
  *
@@ -60,10 +60,10 @@ function dasherize(str) {
60
60
  */
61
61
  function camelize(str) {
62
62
  return str
63
- .replace(STRING_CAMELIZE_REGEXP, function (_match, _separator, chr) {
63
+ .replace(STRING_CAMELIZE_REGEXP, (_match, _separator, chr) => {
64
64
  return chr ? chr.toUpperCase() : '';
65
65
  })
66
- .replace(/^([A-Z])/, function (match) { return match.toLowerCase(); });
66
+ .replace(/^([A-Z])/, (match) => match.toLowerCase());
67
67
  }
68
68
  /**
69
69
  Returns the UpperCamelCase form of a string.
@@ -78,7 +78,7 @@ function camelize(str) {
78
78
  function classify(str) {
79
79
  return str
80
80
  .split('.')
81
- .map(function (part) { return capitalize(camelize(part)); })
81
+ .map((part) => capitalize(camelize(part)))
82
82
  .join('.');
83
83
  }
84
84
  /**
@@ -123,15 +123,15 @@ function capitalize(str) {
123
123
  ```
124
124
  */
125
125
  function pluralize(str) {
126
- return camelize([/([^aeiou])y$/, /()fe?$/, /([^aeiou]o|[sxz]|[cs]h)$/].map(function (c, i) { return (str = str.replace(c, "$1".concat('iv'[i] || '', "e"))); }) && str + 's');
126
+ return camelize([/([^aeiou])y$/, /()fe?$/, /([^aeiou]o|[sxz]|[cs]h)$/].map((c, i) => (str = str.replace(c, `$1${'iv'[i] || ''}e`))) && str + 's');
127
127
  }
128
128
  function group(name, group) {
129
- return group ? "".concat(group, "/").concat(name) : name;
129
+ return group ? `${group}/${name}` : name;
130
130
  }
131
131
  function featurePath(group, flat, path, name) {
132
132
  if (group && !flat) {
133
- return "../../".concat(path, "/").concat(name, "/");
133
+ return `../../${path}/${name}/`;
134
134
  }
135
- return group ? "../".concat(path, "/") : './';
135
+ return group ? `../${path}/` : './';
136
136
  }
137
137
  //# sourceMappingURL=strings.js.map