@ember-data/store 4.2.0-alpha.8 → 4.2.0-alpha.9

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 (28) hide show
  1. package/addon/-private/identifiers/cache.ts +3 -16
  2. package/addon/-private/identifiers/is-stable-identifier.ts +2 -2
  3. package/addon/-private/index.ts +1 -3
  4. package/addon/-private/system/core-store.ts +57 -497
  5. package/addon/-private/system/ds-model-store.ts +15 -55
  6. package/addon/-private/system/fetch-manager.ts +2 -1
  7. package/addon/-private/system/model/internal-model.ts +2 -3
  8. package/addon/-private/system/model/shim-model-class.ts +15 -16
  9. package/addon/-private/system/record-array-manager.js +20 -42
  10. package/addon/-private/system/record-arrays/adapter-populated-record-array.js +1 -20
  11. package/addon/-private/system/record-arrays/record-array.js +1 -8
  12. package/addon/-private/system/record-data-for.ts +10 -8
  13. package/addon/-private/system/record-notification-manager.ts +11 -10
  14. package/addon/-private/system/references/belongs-to.ts +20 -40
  15. package/addon/-private/system/references/has-many.ts +7 -8
  16. package/addon/-private/system/references/record.ts +6 -4
  17. package/addon/-private/system/references/reference.ts +4 -11
  18. package/addon/-private/system/schema-definition-service.ts +2 -2
  19. package/addon/-private/system/snapshot.ts +10 -4
  20. package/addon/-private/system/store/finders.js +2 -40
  21. package/addon/-private/system/store/internal-model-factory.ts +34 -28
  22. package/addon/-private/system/store/record-data-store-wrapper.ts +11 -12
  23. package/addon/-private/system/weak-cache.ts +125 -0
  24. package/addon/-private/ts-interfaces/identifier.ts +2 -2
  25. package/addon/-private/ts-interfaces/minimum-adapter-interface.ts +0 -1
  26. package/addon/-private/ts-interfaces/schema-definition-service.ts +2 -2
  27. package/package.json +9 -9
  28. package/addon/-private/system/deprecated-evented.js +0 -92
@@ -5,8 +5,8 @@ import { assert, warn } from '@ember/debug';
5
5
  import { DEBUG } from '@glimmer/env';
6
6
 
7
7
  import coerceId from '../system/coerce-id';
8
- import type CoreStore from '../system/core-store';
9
8
  import normalizeModelName from '../system/normalize-model-name';
9
+ import WeakCache from '../system/weak-cache';
10
10
  import type { ExistingResourceObject, ResourceIdentifierObject } from '../ts-interfaces/ember-data-json-api';
11
11
  import type {
12
12
  ForgetMethod,
@@ -81,24 +81,11 @@ function defaultGenerationMethod(data: ResourceData | { type: string }, bucket:
81
81
  return uuidv4();
82
82
  }
83
83
 
84
- const IdentifierCaches = new WeakMap<CoreStore, IdentifierCache>();
85
-
86
- export function identifierCacheFor(store: CoreStore): IdentifierCache {
87
- let cache = IdentifierCaches.get(store);
88
-
89
- if (cache === undefined) {
90
- cache = new IdentifierCache();
91
- IdentifierCaches.set(store, cache);
92
- }
93
-
94
- return cache;
95
- }
96
-
97
84
  function defaultEmptyCallback(...args: any[]): any {}
98
85
 
99
86
  let DEBUG_MAP;
100
87
  if (DEBUG) {
101
- DEBUG_MAP = new WeakMap<StableRecordIdentifier, StableRecordIdentifier>();
88
+ DEBUG_MAP = new WeakCache<StableRecordIdentifier, StableRecordIdentifier>('identifier-proxy-target');
102
89
  }
103
90
 
104
91
  /**
@@ -511,9 +498,9 @@ function makeStableRecordIdentifier(
511
498
  };
512
499
  wrapper[DEBUG_CLIENT_ORIGINATED] = clientOriginated;
513
500
  wrapper[DEBUG_IDENTIFIER_BUCKET] = bucket;
514
- wrapper = freeze(wrapper);
515
501
  markStableIdentifier(wrapper);
516
502
  DEBUG_MAP.set(wrapper, recordIdentifier);
503
+ wrapper = freeze(wrapper);
517
504
  return wrapper;
518
505
  }
519
506
 
@@ -3,14 +3,14 @@ import type { StableRecordIdentifier } from '../ts-interfaces/identifier';
3
3
  @module @ember-data/store
4
4
  */
5
5
 
6
- const IDENTIFIERS = new WeakMap();
6
+ const IDENTIFIERS = new WeakSet();
7
7
 
8
8
  export default function isStableIdentifier(identifier: Object): identifier is StableRecordIdentifier {
9
9
  return IDENTIFIERS.has(identifier);
10
10
  }
11
11
 
12
12
  export function markStableIdentifier(identifier: Object) {
13
- IDENTIFIERS.set(identifier, 'is-identifier');
13
+ IDENTIFIERS.add(identifier);
14
14
  }
15
15
 
16
16
  export function unmarkStableIdentifier(identifier: Object) {
@@ -8,7 +8,6 @@ export { recordIdentifierFor } from './system/store/internal-model-factory';
8
8
 
9
9
  export { default as Snapshot } from './system/snapshot';
10
10
  export {
11
- identifierCacheFor,
12
11
  setIdentifierGenerationMethod,
13
12
  setIdentifierUpdateMethod,
14
13
  setIdentifierForgetMethod,
@@ -37,5 +36,4 @@ export { default as SnapshotRecordArray } from './system/snapshot-record-array';
37
36
  export { default as recordDataFor, removeRecordDataFor } from './system/record-data-for';
38
37
  export { default as RecordDataStoreWrapper } from './system/store/record-data-store-wrapper';
39
38
 
40
- // for Model
41
- export { default as DeprecatedEvented } from './system/deprecated-evented';
39
+ export { default as WeakCache } from './system/weak-cache';