@ember-data/store 4.2.0-beta.0 → 4.3.0-beta.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.
- package/addon/-private/identifiers/cache.ts +3 -16
- package/addon/-private/identifiers/is-stable-identifier.ts +2 -2
- package/addon/-private/index.ts +1 -3
- package/addon/-private/system/core-store.ts +192 -958
- package/addon/-private/system/ds-model-store.ts +20 -111
- package/addon/-private/system/fetch-manager.ts +11 -5
- package/addon/-private/system/model/internal-model.ts +92 -345
- package/addon/-private/system/model/shim-model-class.ts +15 -16
- package/addon/-private/system/model/states.js +2 -14
- package/addon/-private/system/record-array-manager.js +21 -70
- package/addon/-private/system/record-arrays/adapter-populated-record-array.js +1 -20
- package/addon/-private/system/record-arrays/record-array.js +1 -8
- package/addon/-private/system/record-data-for.ts +10 -8
- package/addon/-private/system/record-notification-manager.ts +11 -10
- package/addon/-private/system/references/belongs-to.ts +32 -67
- package/addon/-private/system/references/has-many.ts +21 -41
- package/addon/-private/system/references/record.ts +15 -27
- package/addon/-private/system/references/reference.ts +4 -11
- package/addon/-private/system/schema-definition-service.ts +2 -2
- package/addon/-private/system/snapshot.ts +28 -48
- package/addon/-private/system/store/finders.js +2 -96
- package/addon/-private/system/store/internal-model-factory.ts +34 -28
- package/addon/-private/system/store/record-data-store-wrapper.ts +28 -36
- package/addon/-private/system/weak-cache.ts +125 -0
- package/addon/-private/ts-interfaces/fetch-manager.ts +4 -0
- package/addon/-private/ts-interfaces/identifier.ts +2 -2
- package/addon/-private/ts-interfaces/minimum-adapter-interface.ts +0 -1
- package/addon/-private/ts-interfaces/schema-definition-service.ts +2 -2
- package/package.json +16 -16
- 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
|
|
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
|
|
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.
|
|
13
|
+
IDENTIFIERS.add(identifier);
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
export function unmarkStableIdentifier(identifier: Object) {
|
package/addon/-private/index.ts
CHANGED
|
@@ -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
|
-
|
|
41
|
-
export { default as DeprecatedEvented } from './system/deprecated-evented';
|
|
39
|
+
export { default as WeakCache } from './system/weak-cache';
|