@ngxs/store 3.8.0-dev.master-d898d7e → 3.8.0-dev.master-e6e913d

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.
@@ -5,14 +5,21 @@ import { getUndecoratedStateInIvyWarningMessage } from '../configs/messages.conf
5
5
  * if another decorator was used, e.g. pipes).
6
6
  */
7
7
  export function ensureStateClassIsInjectable(stateClass) {
8
+ if (jit_hasInjectableAnnotation(stateClass) || aot_hasNgInjectableDef(stateClass)) {
9
+ return;
10
+ }
11
+ console.warn(getUndecoratedStateInIvyWarningMessage(stateClass.name));
12
+ }
13
+ function aot_hasNgInjectableDef(stateClass) {
8
14
  // `ɵprov` is a static property added by the NGCC compiler. It always exists in
9
15
  // AOT mode because this property is added before runtime. If an application is running in
10
16
  // JIT mode then this property can be added by the `@Injectable()` decorator. The `@Injectable()`
11
17
  // decorator has to go after the `@State()` decorator, thus we prevent users from unwanted DI errors.
12
- const ngInjectableDef = stateClass.ɵprov;
13
- if (!ngInjectableDef) {
14
- // Don't warn if Ivy is disabled or `ɵprov` exists on the class
15
- console.warn(getUndecoratedStateInIvyWarningMessage(stateClass.name));
16
- }
18
+ return !!stateClass.ɵprov;
19
+ }
20
+ function jit_hasInjectableAnnotation(stateClass) {
21
+ // `ɵprov` doesn't exist in JIT mode (for instance when running unit tests with Jest).
22
+ const annotations = stateClass.__annotations__ || [];
23
+ return annotations.some((annotation) => (annotation === null || annotation === void 0 ? void 0 : annotation.ngMetadataName) === 'Injectable');
17
24
  }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXZ5LWVuYWJsZWQtaW4tZGV2LW1vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvaXZ5L2l2eS1lbmFibGVkLWluLWRldi1tb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXBGOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsNEJBQTRCLENBQUMsVUFBZTtJQUMxRCwrRUFBK0U7SUFDL0UsMEZBQTBGO0lBQzFGLGlHQUFpRztJQUNqRyxxR0FBcUc7SUFDckcsTUFBTSxlQUFlLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztJQUN6QyxJQUFJLENBQUMsZUFBZSxFQUFFO1FBQ3BCLCtEQUErRDtRQUMvRCxPQUFPLENBQUMsSUFBSSxDQUFDLHNDQUFzQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0tBQ3ZFO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldFVuZGVjb3JhdGVkU3RhdGVJbkl2eVdhcm5pbmdNZXNzYWdlIH0gZnJvbSAnLi4vY29uZmlncy9tZXNzYWdlcy5jb25maWcnO1xuXG4vKipcbiAqIEFsbCBwcm92aWRlZCBvciBpbmplY3RlZCB0b2tlbnMgbXVzdCBoYXZlIGBASW5qZWN0YWJsZWAgZGVjb3JhdG9yXG4gKiAocHJldmlvdXNseSwgaW5qZWN0ZWQgdG9rZW5zIHdpdGhvdXQgYEBJbmplY3RhYmxlYCB3ZXJlIGFsbG93ZWRcbiAqIGlmIGFub3RoZXIgZGVjb3JhdG9yIHdhcyB1c2VkLCBlLmcuIHBpcGVzKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZVN0YXRlQ2xhc3NJc0luamVjdGFibGUoc3RhdGVDbGFzczogYW55KTogdm9pZCB7XG4gIC8vIGDJtXByb3ZgIGlzIGEgc3RhdGljIHByb3BlcnR5IGFkZGVkIGJ5IHRoZSBOR0NDIGNvbXBpbGVyLiBJdCBhbHdheXMgZXhpc3RzIGluXG4gIC8vIEFPVCBtb2RlIGJlY2F1c2UgdGhpcyBwcm9wZXJ0eSBpcyBhZGRlZCBiZWZvcmUgcnVudGltZS4gSWYgYW4gYXBwbGljYXRpb24gaXMgcnVubmluZyBpblxuICAvLyBKSVQgbW9kZSB0aGVuIHRoaXMgcHJvcGVydHkgY2FuIGJlIGFkZGVkIGJ5IHRoZSBgQEluamVjdGFibGUoKWAgZGVjb3JhdG9yLiBUaGUgYEBJbmplY3RhYmxlKClgXG4gIC8vIGRlY29yYXRvciBoYXMgdG8gZ28gYWZ0ZXIgdGhlIGBAU3RhdGUoKWAgZGVjb3JhdG9yLCB0aHVzIHdlIHByZXZlbnQgdXNlcnMgZnJvbSB1bndhbnRlZCBESSBlcnJvcnMuXG4gIGNvbnN0IG5nSW5qZWN0YWJsZURlZiA9IHN0YXRlQ2xhc3MuybVwcm92O1xuICBpZiAoIW5nSW5qZWN0YWJsZURlZikge1xuICAgIC8vIERvbid0IHdhcm4gaWYgSXZ5IGlzIGRpc2FibGVkIG9yIGDJtXByb3ZgIGV4aXN0cyBvbiB0aGUgY2xhc3NcbiAgICBjb25zb2xlLndhcm4oZ2V0VW5kZWNvcmF0ZWRTdGF0ZUluSXZ5V2FybmluZ01lc3NhZ2Uoc3RhdGVDbGFzcy5uYW1lKSk7XG4gIH1cbn1cbiJdfQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXZ5LWVuYWJsZWQtaW4tZGV2LW1vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvaXZ5L2l2eS1lbmFibGVkLWluLWRldi1tb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXBGOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsNEJBQTRCLENBQUMsVUFBZTtJQUMxRCxJQUFJLDJCQUEyQixDQUFDLFVBQVUsQ0FBQyxJQUFJLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQ2pGLE9BQU87S0FDUjtJQUVELE9BQU8sQ0FBQyxJQUFJLENBQUMsc0NBQXNDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDeEUsQ0FBQztBQUVELFNBQVMsc0JBQXNCLENBQUMsVUFBZTtJQUM3QywrRUFBK0U7SUFDL0UsMEZBQTBGO0lBQzFGLGlHQUFpRztJQUNqRyxxR0FBcUc7SUFDckcsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztBQUM1QixDQUFDO0FBRUQsU0FBUywyQkFBMkIsQ0FBQyxVQUFlO0lBQ2xELHNGQUFzRjtJQUN0RixNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQztJQUNyRCxPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFlLEVBQUUsRUFBRSxDQUFDLENBQUEsVUFBVSxhQUFWLFVBQVUsdUJBQVYsVUFBVSxDQUFFLGNBQWMsTUFBSyxZQUFZLENBQUMsQ0FBQztBQUM1RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0VW5kZWNvcmF0ZWRTdGF0ZUluSXZ5V2FybmluZ01lc3NhZ2UgfSBmcm9tICcuLi9jb25maWdzL21lc3NhZ2VzLmNvbmZpZyc7XG5cbi8qKlxuICogQWxsIHByb3ZpZGVkIG9yIGluamVjdGVkIHRva2VucyBtdXN0IGhhdmUgYEBJbmplY3RhYmxlYCBkZWNvcmF0b3JcbiAqIChwcmV2aW91c2x5LCBpbmplY3RlZCB0b2tlbnMgd2l0aG91dCBgQEluamVjdGFibGVgIHdlcmUgYWxsb3dlZFxuICogaWYgYW5vdGhlciBkZWNvcmF0b3Igd2FzIHVzZWQsIGUuZy4gcGlwZXMpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlU3RhdGVDbGFzc0lzSW5qZWN0YWJsZShzdGF0ZUNsYXNzOiBhbnkpOiB2b2lkIHtcbiAgaWYgKGppdF9oYXNJbmplY3RhYmxlQW5ub3RhdGlvbihzdGF0ZUNsYXNzKSB8fCBhb3RfaGFzTmdJbmplY3RhYmxlRGVmKHN0YXRlQ2xhc3MpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc29sZS53YXJuKGdldFVuZGVjb3JhdGVkU3RhdGVJbkl2eVdhcm5pbmdNZXNzYWdlKHN0YXRlQ2xhc3MubmFtZSkpO1xufVxuXG5mdW5jdGlvbiBhb3RfaGFzTmdJbmplY3RhYmxlRGVmKHN0YXRlQ2xhc3M6IGFueSk6IGJvb2xlYW4ge1xuICAvLyBgybVwcm92YCBpcyBhIHN0YXRpYyBwcm9wZXJ0eSBhZGRlZCBieSB0aGUgTkdDQyBjb21waWxlci4gSXQgYWx3YXlzIGV4aXN0cyBpblxuICAvLyBBT1QgbW9kZSBiZWNhdXNlIHRoaXMgcHJvcGVydHkgaXMgYWRkZWQgYmVmb3JlIHJ1bnRpbWUuIElmIGFuIGFwcGxpY2F0aW9uIGlzIHJ1bm5pbmcgaW5cbiAgLy8gSklUIG1vZGUgdGhlbiB0aGlzIHByb3BlcnR5IGNhbiBiZSBhZGRlZCBieSB0aGUgYEBJbmplY3RhYmxlKClgIGRlY29yYXRvci4gVGhlIGBASW5qZWN0YWJsZSgpYFxuICAvLyBkZWNvcmF0b3IgaGFzIHRvIGdvIGFmdGVyIHRoZSBgQFN0YXRlKClgIGRlY29yYXRvciwgdGh1cyB3ZSBwcmV2ZW50IHVzZXJzIGZyb20gdW53YW50ZWQgREkgZXJyb3JzLlxuICByZXR1cm4gISFzdGF0ZUNsYXNzLsm1cHJvdjtcbn1cblxuZnVuY3Rpb24gaml0X2hhc0luamVjdGFibGVBbm5vdGF0aW9uKHN0YXRlQ2xhc3M6IGFueSk6IGJvb2xlYW4ge1xuICAvLyBgybVwcm92YCBkb2Vzbid0IGV4aXN0IGluIEpJVCBtb2RlIChmb3IgaW5zdGFuY2Ugd2hlbiBydW5uaW5nIHVuaXQgdGVzdHMgd2l0aCBKZXN0KS5cbiAgY29uc3QgYW5ub3RhdGlvbnMgPSBzdGF0ZUNsYXNzLl9fYW5ub3RhdGlvbnNfXyB8fCBbXTtcbiAgcmV0dXJuIGFubm90YXRpb25zLnNvbWUoKGFubm90YXRpb246IGFueSkgPT4gYW5ub3RhdGlvbj8ubmdNZXRhZGF0YU5hbWUgPT09ICdJbmplY3RhYmxlJyk7XG59XG4iXX0=
@@ -1195,15 +1195,22 @@ StoreValidators.stateNameRegex = new RegExp('^[a-zA-Z0-9_]+$');
1195
1195
  * if another decorator was used, e.g. pipes).
1196
1196
  */
1197
1197
  function ensureStateClassIsInjectable(stateClass) {
1198
+ if (jit_hasInjectableAnnotation(stateClass) || aot_hasNgInjectableDef(stateClass)) {
1199
+ return;
1200
+ }
1201
+ console.warn(getUndecoratedStateInIvyWarningMessage(stateClass.name));
1202
+ }
1203
+ function aot_hasNgInjectableDef(stateClass) {
1198
1204
  // `ɵprov` is a static property added by the NGCC compiler. It always exists in
1199
1205
  // AOT mode because this property is added before runtime. If an application is running in
1200
1206
  // JIT mode then this property can be added by the `@Injectable()` decorator. The `@Injectable()`
1201
1207
  // decorator has to go after the `@State()` decorator, thus we prevent users from unwanted DI errors.
1202
- const ngInjectableDef = stateClass.ɵprov;
1203
- if (!ngInjectableDef) {
1204
- // Don't warn if Ivy is disabled or `ɵprov` exists on the class
1205
- console.warn(getUndecoratedStateInIvyWarningMessage(stateClass.name));
1206
- }
1208
+ return !!stateClass.ɵprov;
1209
+ }
1210
+ function jit_hasInjectableAnnotation(stateClass) {
1211
+ // `ɵprov` doesn't exist in JIT mode (for instance when running unit tests with Jest).
1212
+ const annotations = stateClass.__annotations__ || [];
1213
+ return annotations.some((annotation) => (annotation === null || annotation === void 0 ? void 0 : annotation.ngMetadataName) === 'Injectable');
1207
1214
  }
1208
1215
 
1209
1216
  /**