@ember-data/store 4.0.0-beta.3 → 4.0.2
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 -5
- package/addon/-private/identifiers/utils/uuid-v4.ts +0 -13
- package/addon/-private/index.ts +0 -1
- package/addon/-private/system/core-store.ts +21 -23
- package/addon/-private/system/ds-model-store.ts +2 -2
- package/addon/-private/system/fetch-manager.ts +10 -6
- package/addon/-private/system/model/internal-model.ts +42 -27
- package/addon/-private/system/model/states.js +7 -1
- package/addon/-private/system/record-array-manager.js +2 -3
- package/addon/-private/system/record-arrays/adapter-populated-record-array.js +2 -3
- package/addon/-private/system/record-notification-manager.ts +14 -6
- package/addon/-private/system/references/{belongs-to.js → belongs-to.ts} +95 -16
- package/addon/-private/system/references/{has-many.js → has-many.ts} +141 -45
- package/addon/-private/system/references/record.ts +52 -7
- package/addon/-private/system/references/reference.ts +1 -1
- package/addon/-private/system/request-cache.ts +6 -7
- package/addon/-private/system/snapshot.ts +1 -2
- package/addon/-private/system/store/finders.js +4 -11
- package/addon/-private/ts-interfaces/ds-model.ts +1 -0
- package/addon/-private/ts-interfaces/fetch-manager.ts +4 -0
- package/addon/-private/ts-interfaces/identifier.ts +2 -3
- package/index.js +3 -0
- package/package.json +9 -8
- package/addon/-private/utils/symbol.ts +0 -33
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
import type { Dict } from '@ember-data/store/-private/ts-interfaces/utils';
|
|
2
|
+
|
|
1
3
|
import type { RecordIdentifier } from './identifier';
|
|
2
4
|
|
|
3
5
|
export interface Operation {
|
|
4
6
|
op: string;
|
|
7
|
+
options: Dict<unknown> | undefined;
|
|
8
|
+
recordIdentifier: RecordIdentifier;
|
|
5
9
|
}
|
|
6
10
|
|
|
7
11
|
export interface FindRecordQuery extends Operation {
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
@module @ember-data/store
|
|
3
3
|
*/
|
|
4
|
-
import { symbol } from '../utils/symbol';
|
|
5
4
|
import type { ExistingResourceObject, ResourceIdentifierObject } from './ember-data-json-api';
|
|
6
5
|
|
|
7
6
|
export type ResourceData = ResourceIdentifierObject | ExistingResourceObject;
|
|
8
7
|
export type IdentifierBucket = 'record';
|
|
9
8
|
|
|
10
9
|
// provided for additional debuggability
|
|
11
|
-
export const DEBUG_CLIENT_ORIGINATED: unique symbol =
|
|
12
|
-
export const DEBUG_IDENTIFIER_BUCKET: unique symbol =
|
|
10
|
+
export const DEBUG_CLIENT_ORIGINATED: unique symbol = Symbol('record-originated-on-client');
|
|
11
|
+
export const DEBUG_IDENTIFIER_BUCKET: unique symbol = Symbol('identifier-bucket');
|
|
13
12
|
|
|
14
13
|
export interface Identifier {
|
|
15
14
|
lid: string;
|
package/index.js
CHANGED
|
@@ -10,6 +10,8 @@ module.exports = Object.assign({}, addonBaseConfig, {
|
|
|
10
10
|
shouldRollupPrivate: true,
|
|
11
11
|
externalDependenciesForPrivateModule() {
|
|
12
12
|
return [
|
|
13
|
+
'ember-cached-decorator-polyfill',
|
|
14
|
+
|
|
13
15
|
'@ember-data/canary-features',
|
|
14
16
|
'@ember-data/store/-debug',
|
|
15
17
|
|
|
@@ -23,6 +25,7 @@ module.exports = Object.assign({}, addonBaseConfig, {
|
|
|
23
25
|
'@ember/object/evented',
|
|
24
26
|
'@ember/object/internals',
|
|
25
27
|
'@ember/object/mixin',
|
|
28
|
+
'@ember/object/compat',
|
|
26
29
|
'@ember/object/promise-proxy-mixin',
|
|
27
30
|
'@ember/object/proxy',
|
|
28
31
|
'@ember/polyfills',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ember-data/store",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.2",
|
|
4
4
|
"description": "The default blueprint for ember-cli addons.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ember-addon"
|
|
@@ -17,22 +17,23 @@
|
|
|
17
17
|
"start": "ember serve"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@ember-data/canary-features": "4.0.
|
|
21
|
-
"@ember-data/private-build-infra": "4.0.
|
|
20
|
+
"@ember-data/canary-features": "4.0.2",
|
|
21
|
+
"@ember-data/private-build-infra": "4.0.2",
|
|
22
22
|
"@ember/string": "^3.0.0",
|
|
23
23
|
"@glimmer/tracking": "^1.0.4",
|
|
24
|
+
"ember-auto-import": "^2.2.4",
|
|
25
|
+
"ember-cached-decorator-polyfill": "^0.1.4",
|
|
24
26
|
"ember-cli-babel": "^7.26.6",
|
|
25
27
|
"ember-cli-path-utils": "^1.0.0",
|
|
26
28
|
"ember-cli-typescript": "^4.1.0"
|
|
27
29
|
},
|
|
28
30
|
"devDependencies": {
|
|
29
|
-
"@ember-data/unpublished-test-infra": "4.0.
|
|
31
|
+
"@ember-data/unpublished-test-infra": "4.0.2",
|
|
30
32
|
"@ember/optional-features": "^2.0.0",
|
|
31
|
-
"@ember/test-helpers": "^2.
|
|
33
|
+
"@ember/test-helpers": "^2.6.0",
|
|
32
34
|
"@types/ember": "^3.16.5",
|
|
33
35
|
"@types/rsvp": "^4.0.3",
|
|
34
36
|
"broccoli-asset-rev": "^3.0.0",
|
|
35
|
-
"ember-auto-import": "^2.0.0",
|
|
36
37
|
"ember-cli": "~3.26.1",
|
|
37
38
|
"ember-cli-dependency-checker": "^3.2.0",
|
|
38
39
|
"ember-cli-htmlbars": "^5.1.2",
|
|
@@ -43,9 +44,9 @@
|
|
|
43
44
|
"ember-export-application-global": "^2.0.1",
|
|
44
45
|
"ember-load-initializers": "^2.1.1",
|
|
45
46
|
"ember-maybe-import-regenerator": "^0.1.6",
|
|
46
|
-
"ember-qunit": "^5.1.
|
|
47
|
+
"ember-qunit": "^5.1.5",
|
|
47
48
|
"ember-resolver": "^8.0.0",
|
|
48
|
-
"ember-source": "~
|
|
49
|
+
"ember-source": "~4.0.0",
|
|
49
50
|
"ember-source-channel-url": "^3.0.0",
|
|
50
51
|
"ember-try": "^1.4.0",
|
|
51
52
|
"loader.js": "^4.7.0",
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
@module @ember-data/store
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* This symbol provides a Symbol replacement for browsers that do not have it
|
|
7
|
-
* (eg. IE 11).
|
|
8
|
-
*
|
|
9
|
-
* The replacement is different from the native Symbol in some ways. It is a
|
|
10
|
-
* function that produces an output:
|
|
11
|
-
* - iterable;
|
|
12
|
-
* - that is a string, not a symbol.
|
|
13
|
-
*
|
|
14
|
-
* @internal
|
|
15
|
-
*/
|
|
16
|
-
export const symbol =
|
|
17
|
-
typeof Symbol !== 'undefined'
|
|
18
|
-
? Symbol
|
|
19
|
-
: (key: string) => `__${key}${Math.floor(Math.random() * Date.now())}__` as any;
|
|
20
|
-
|
|
21
|
-
export function addSymbol(obj: object, symbol: Symbol | string, value: any): void {
|
|
22
|
-
if (typeof symbol === 'string') {
|
|
23
|
-
Object.defineProperty(obj, symbol, {
|
|
24
|
-
value,
|
|
25
|
-
configurable: false,
|
|
26
|
-
enumerable: false,
|
|
27
|
-
writable: false,
|
|
28
|
-
});
|
|
29
|
-
} else {
|
|
30
|
-
// Typescript doesn't allow Symbol as an index type
|
|
31
|
-
obj[symbol as unknown as string] = value;
|
|
32
|
-
}
|
|
33
|
-
}
|