@warp-drive/core 5.6.0-alpha.15 → 5.6.0-alpha.18
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/declarations/build-config/babel-macros.d.ts +1 -2
- package/declarations/build-config/canary-features.d.ts +1 -2
- package/declarations/build-config/debugging.d.ts +1 -2
- package/declarations/build-config/deprecations.d.ts +1 -2
- package/declarations/build-config/env.d.ts +1 -2
- package/declarations/build-config/macros.d.ts +1 -2
- package/declarations/build-config.d.ts +1 -2
- package/declarations/configure.d.ts +6 -7
- package/declarations/graph/-private/-diff.d.ts +21 -22
- package/declarations/graph/-private/-edge-definition.d.ts +134 -135
- package/declarations/graph/-private/-state.d.ts +93 -7
- package/declarations/graph/-private/-utils.d.ts +18 -13
- package/declarations/graph/-private/coerce-id.d.ts +6 -1
- package/declarations/graph/-private/debug/assert-polymorphic-type.d.ts +15 -4
- package/declarations/graph/-private/edges/collection.d.ts +35 -36
- package/declarations/graph/-private/edges/implicit.d.ts +28 -29
- package/declarations/graph/-private/edges/resource.d.ts +19 -20
- package/declarations/graph/-private/graph.d.ts +83 -48
- package/declarations/graph/-private/normalize-link.d.ts +7 -2
- package/declarations/graph/-private/operations/add-to-related-records.d.ts +3 -4
- package/declarations/graph/-private/operations/merge-identifier.d.ts +2 -3
- package/declarations/graph/-private/operations/remove-from-related-records.d.ts +3 -4
- package/declarations/graph/-private/operations/replace-related-record.d.ts +2 -3
- package/declarations/graph/-private/operations/replace-related-records.d.ts +58 -4
- package/declarations/graph/-private/operations/update-relationship.d.ts +11 -9
- package/declarations/graph/-private.d.ts +9 -10
- package/declarations/index.d.ts +11 -12
- package/declarations/reactive/-private/document.d.ts +143 -144
- package/declarations/reactive/-private/fields/compute.d.ts +31 -28
- package/declarations/reactive/-private/fields/extension.d.ts +2 -3
- package/declarations/reactive/-private/fields/managed-array.d.ts +19 -20
- package/declarations/reactive/-private/fields/managed-object.d.ts +16 -16
- package/declarations/reactive/-private/fields/many-array-manager.d.ts +15 -16
- package/declarations/reactive/-private/hooks.d.ts +3 -4
- package/declarations/reactive/-private/record.d.ts +61 -59
- package/declarations/reactive/-private/schema.d.ts +242 -224
- package/declarations/reactive/-private/symbols.d.ts +26 -1
- package/declarations/reactive/-private.d.ts +1 -2
- package/declarations/reactive.d.ts +4 -5
- package/declarations/request/-private/context.d.ts +34 -35
- package/declarations/request/-private/debug.d.ts +2 -3
- package/declarations/request/-private/fetch.d.ts +23 -24
- package/declarations/request/-private/future.d.ts +3 -4
- package/declarations/request/-private/manager.d.ts +159 -157
- package/declarations/request/-private/promise-cache.d.ts +21 -13
- package/declarations/request/-private/types.d.ts +124 -124
- package/declarations/request/-private/utils.d.ts +8 -9
- package/declarations/request.d.ts +5 -6
- package/declarations/store/-private/cache-handler/handler.d.ts +57 -52
- package/declarations/store/-private/cache-handler/types.d.ts +95 -96
- package/declarations/store/-private/cache-handler/utils.d.ts +16 -16
- package/declarations/store/-private/caches/cache-utils.d.ts +7 -4
- package/declarations/store/-private/caches/identifier-cache.d.ts +234 -246
- package/declarations/store/-private/caches/instance-cache.d.ts +47 -47
- package/declarations/store/-private/caches/resource-utils.d.ts +3 -4
- package/declarations/store/-private/debug/utils.d.ts +6 -7
- package/declarations/store/-private/default-cache-policy.d.ts +362 -361
- package/declarations/store/-private/legacy-model-support/record-reference.d.ts +154 -159
- package/declarations/store/-private/legacy-model-support/shim-model-class.d.ts +14 -14
- package/declarations/store/-private/managers/cache-capabilities-manager.d.ts +21 -22
- package/declarations/store/-private/managers/cache-manager.d.ts +440 -425
- package/declarations/store/-private/managers/notification-manager.d.ts +88 -83
- package/declarations/store/-private/managers/record-array-manager.d.ts +89 -90
- package/declarations/store/-private/network/request-cache.d.ts +86 -83
- package/declarations/store/-private/new-core-tmp/promise-state.d.ts +252 -244
- package/declarations/store/-private/new-core-tmp/reactivity/configure.d.ts +154 -155
- package/declarations/store/-private/new-core-tmp/reactivity/internal.d.ts +148 -149
- package/declarations/store/-private/new-core-tmp/reactivity/signal.d.ts +28 -23
- package/declarations/store/-private/new-core-tmp/request-state.d.ts +263 -241
- package/declarations/store/-private/new-core-tmp/request-subscription.d.ts +253 -223
- package/declarations/store/-private/record-arrays/identifier-array.d.ts +125 -121
- package/declarations/store/-private/record-arrays/many-array.d.ts +180 -184
- package/declarations/store/-private/record-arrays/native-proxy-type-fix.d.ts +120 -110
- package/declarations/store/-private/store-service.d.ts +1594 -1586
- package/declarations/store/-private/utils/coerce-id.d.ts +6 -1
- package/declarations/store/-private/utils/construct-resource.d.ts +1 -2
- package/declarations/store/-private/utils/is-non-empty-string.d.ts +0 -1
- package/declarations/store/-private/utils/normalize-model-name.d.ts +0 -1
- package/declarations/store/-private/utils/uuid-polyfill.d.ts +0 -1
- package/declarations/store/-private.d.ts +31 -28
- package/declarations/store/-types/q/cache-capabilities-manager.d.ts +96 -97
- package/declarations/store/-types/q/ds-model.d.ts +17 -18
- package/declarations/store/-types/q/identifier.d.ts +11 -12
- package/declarations/store/-types/q/record-instance.d.ts +16 -17
- package/declarations/store/-types/q/schema-service.d.ts +346 -343
- package/declarations/store/-types/q/store.d.ts +25 -28
- package/declarations/store.d.ts +1 -2
- package/declarations/types/-private.d.ts +16 -8
- package/declarations/types/cache/aliases.d.ts +11 -1
- package/declarations/types/cache/change.d.ts +4 -5
- package/declarations/types/cache/mutations.d.ts +51 -28
- package/declarations/types/cache/operations.d.ts +60 -47
- package/declarations/types/cache/relationship.d.ts +11 -9
- package/declarations/types/cache.d.ts +495 -484
- package/declarations/types/graph.d.ts +31 -32
- package/declarations/types/identifier.d.ts +83 -82
- package/declarations/types/json/raw.d.ts +1 -2
- package/declarations/types/params.d.ts +4 -5
- package/declarations/types/record.d.ts +117 -76
- package/declarations/types/request.d.ts +289 -266
- package/declarations/types/runtime.d.ts +8 -9
- package/declarations/types/schema/concepts.d.ts +19 -13
- package/declarations/types/schema/fields.d.ts +1712 -1713
- package/declarations/types/schema/fields.type-test.d.ts +0 -1
- package/declarations/types/spec/document.d.ts +28 -22
- package/declarations/types/spec/error.d.ts +16 -17
- package/declarations/types/spec/json-api-raw.d.ts +102 -102
- package/declarations/types/symbols.d.ts +74 -75
- package/declarations/types/utils.d.ts +5 -5
- package/declarations/types.d.ts +10 -11
- package/declarations/utils/string.d.ts +43 -40
- package/dist/graph/-private.js +1 -1
- package/dist/{handler-D1C3Innj.js → handler-C2T-IyJK.js} +1 -1
- package/dist/index.js +2 -2
- package/dist/reactive/-private.js +1 -1
- package/dist/reactive.js +42 -73
- package/dist/{request-state-CCOJIj5i.js → request-state-CjLph1LP.js} +275 -261
- package/dist/store/-private.js +2 -2
- package/dist/{symbols-epHW0Vm9.js → symbols-SIstXMLI.js} +1 -1
- package/dist/types/-private.js +1 -1
- package/package.json +4 -4
- package/declarations/build-config/babel-macros.d.ts.map +0 -1
- package/declarations/build-config/canary-features.d.ts.map +0 -1
- package/declarations/build-config/debugging.d.ts.map +0 -1
- package/declarations/build-config/deprecations.d.ts.map +0 -1
- package/declarations/build-config/env.d.ts.map +0 -1
- package/declarations/build-config/macros.d.ts.map +0 -1
- package/declarations/build-config.d.ts.map +0 -1
- package/declarations/configure.d.ts.map +0 -1
- package/declarations/graph/-private/-diff.d.ts.map +0 -1
- package/declarations/graph/-private/-edge-definition.d.ts.map +0 -1
- package/declarations/graph/-private/-state.d.ts.map +0 -1
- package/declarations/graph/-private/-utils.d.ts.map +0 -1
- package/declarations/graph/-private/coerce-id.d.ts.map +0 -1
- package/declarations/graph/-private/debug/assert-polymorphic-type.d.ts.map +0 -1
- package/declarations/graph/-private/edges/collection.d.ts.map +0 -1
- package/declarations/graph/-private/edges/implicit.d.ts.map +0 -1
- package/declarations/graph/-private/edges/resource.d.ts.map +0 -1
- package/declarations/graph/-private/graph.d.ts.map +0 -1
- package/declarations/graph/-private/normalize-link.d.ts.map +0 -1
- package/declarations/graph/-private/operations/add-to-related-records.d.ts.map +0 -1
- package/declarations/graph/-private/operations/merge-identifier.d.ts.map +0 -1
- package/declarations/graph/-private/operations/remove-from-related-records.d.ts.map +0 -1
- package/declarations/graph/-private/operations/replace-related-record.d.ts.map +0 -1
- package/declarations/graph/-private/operations/replace-related-records.d.ts.map +0 -1
- package/declarations/graph/-private/operations/update-relationship.d.ts.map +0 -1
- package/declarations/graph/-private.d.ts.map +0 -1
- package/declarations/index.d.ts.map +0 -1
- package/declarations/reactive/-private/document.d.ts.map +0 -1
- package/declarations/reactive/-private/fields/compute.d.ts.map +0 -1
- package/declarations/reactive/-private/fields/extension.d.ts.map +0 -1
- package/declarations/reactive/-private/fields/managed-array.d.ts.map +0 -1
- package/declarations/reactive/-private/fields/managed-object.d.ts.map +0 -1
- package/declarations/reactive/-private/fields/many-array-manager.d.ts.map +0 -1
- package/declarations/reactive/-private/hooks.d.ts.map +0 -1
- package/declarations/reactive/-private/record.d.ts.map +0 -1
- package/declarations/reactive/-private/schema.d.ts.map +0 -1
- package/declarations/reactive/-private/symbols.d.ts.map +0 -1
- package/declarations/reactive/-private.d.ts.map +0 -1
- package/declarations/reactive.d.ts.map +0 -1
- package/declarations/request/-private/context.d.ts.map +0 -1
- package/declarations/request/-private/debug.d.ts.map +0 -1
- package/declarations/request/-private/fetch.d.ts.map +0 -1
- package/declarations/request/-private/future.d.ts.map +0 -1
- package/declarations/request/-private/manager.d.ts.map +0 -1
- package/declarations/request/-private/promise-cache.d.ts.map +0 -1
- package/declarations/request/-private/types.d.ts.map +0 -1
- package/declarations/request/-private/utils.d.ts.map +0 -1
- package/declarations/request.d.ts.map +0 -1
- package/declarations/store/-private/cache-handler/handler.d.ts.map +0 -1
- package/declarations/store/-private/cache-handler/types.d.ts.map +0 -1
- package/declarations/store/-private/cache-handler/utils.d.ts.map +0 -1
- package/declarations/store/-private/caches/cache-utils.d.ts.map +0 -1
- package/declarations/store/-private/caches/identifier-cache.d.ts.map +0 -1
- package/declarations/store/-private/caches/instance-cache.d.ts.map +0 -1
- package/declarations/store/-private/caches/resource-utils.d.ts.map +0 -1
- package/declarations/store/-private/debug/utils.d.ts.map +0 -1
- package/declarations/store/-private/default-cache-policy.d.ts.map +0 -1
- package/declarations/store/-private/legacy-model-support/record-reference.d.ts.map +0 -1
- package/declarations/store/-private/legacy-model-support/shim-model-class.d.ts.map +0 -1
- package/declarations/store/-private/managers/cache-capabilities-manager.d.ts.map +0 -1
- package/declarations/store/-private/managers/cache-manager.d.ts.map +0 -1
- package/declarations/store/-private/managers/notification-manager.d.ts.map +0 -1
- package/declarations/store/-private/managers/record-array-manager.d.ts.map +0 -1
- package/declarations/store/-private/network/request-cache.d.ts.map +0 -1
- package/declarations/store/-private/new-core-tmp/promise-state.d.ts.map +0 -1
- package/declarations/store/-private/new-core-tmp/reactivity/configure.d.ts.map +0 -1
- package/declarations/store/-private/new-core-tmp/reactivity/internal.d.ts.map +0 -1
- package/declarations/store/-private/new-core-tmp/reactivity/signal.d.ts.map +0 -1
- package/declarations/store/-private/new-core-tmp/request-state.d.ts.map +0 -1
- package/declarations/store/-private/new-core-tmp/request-subscription.d.ts.map +0 -1
- package/declarations/store/-private/record-arrays/identifier-array.d.ts.map +0 -1
- package/declarations/store/-private/record-arrays/many-array.d.ts.map +0 -1
- package/declarations/store/-private/record-arrays/native-proxy-type-fix.d.ts.map +0 -1
- package/declarations/store/-private/store-service.d.ts.map +0 -1
- package/declarations/store/-private/store-service.type-test.d.ts +0 -2
- package/declarations/store/-private/store-service.type-test.d.ts.map +0 -1
- package/declarations/store/-private/utils/coerce-id.d.ts.map +0 -1
- package/declarations/store/-private/utils/construct-resource.d.ts.map +0 -1
- package/declarations/store/-private/utils/is-non-empty-string.d.ts.map +0 -1
- package/declarations/store/-private/utils/normalize-model-name.d.ts.map +0 -1
- package/declarations/store/-private/utils/uuid-polyfill.d.ts.map +0 -1
- package/declarations/store/-private.d.ts.map +0 -1
- package/declarations/store/-types/q/cache-capabilities-manager.d.ts.map +0 -1
- package/declarations/store/-types/q/ds-model.d.ts.map +0 -1
- package/declarations/store/-types/q/identifier.d.ts.map +0 -1
- package/declarations/store/-types/q/promise-proxies.d.ts +0 -2
- package/declarations/store/-types/q/promise-proxies.d.ts.map +0 -1
- package/declarations/store/-types/q/record-data-json-api.d.ts +0 -31
- package/declarations/store/-types/q/record-data-json-api.d.ts.map +0 -1
- package/declarations/store/-types/q/record-instance.d.ts.map +0 -1
- package/declarations/store/-types/q/schema-service.d.ts.map +0 -1
- package/declarations/store/-types/q/store.d.ts.map +0 -1
- package/declarations/store.d.ts.map +0 -1
- package/declarations/types/-private.d.ts.map +0 -1
- package/declarations/types/cache/aliases.d.ts.map +0 -1
- package/declarations/types/cache/change.d.ts.map +0 -1
- package/declarations/types/cache/mutations.d.ts.map +0 -1
- package/declarations/types/cache/operations.d.ts.map +0 -1
- package/declarations/types/cache/relationship.d.ts.map +0 -1
- package/declarations/types/cache.d.ts.map +0 -1
- package/declarations/types/graph.d.ts.map +0 -1
- package/declarations/types/identifier.d.ts.map +0 -1
- package/declarations/types/json/raw.d.ts.map +0 -1
- package/declarations/types/params.d.ts.map +0 -1
- package/declarations/types/record.d.ts.map +0 -1
- package/declarations/types/record.type-test.d.ts +0 -2
- package/declarations/types/record.type-test.d.ts.map +0 -1
- package/declarations/types/request.d.ts.map +0 -1
- package/declarations/types/request.type-test.d.ts +0 -2
- package/declarations/types/request.type-test.d.ts.map +0 -1
- package/declarations/types/runtime.d.ts.map +0 -1
- package/declarations/types/schema/concepts.d.ts.map +0 -1
- package/declarations/types/schema/fields.d.ts.map +0 -1
- package/declarations/types/schema/fields.type-test.d.ts.map +0 -1
- package/declarations/types/spec/document.d.ts.map +0 -1
- package/declarations/types/spec/error.d.ts.map +0 -1
- package/declarations/types/spec/json-api-raw.d.ts.map +0 -1
- package/declarations/types/symbols.d.ts.map +0 -1
- package/declarations/types/utils.d.ts.map +0 -1
- package/declarations/types.d.ts.map +0 -1
- package/declarations/utils/string.d.ts.map +0 -1
- package/dist/build-config/babel-macros.js.map +0 -1
- package/dist/build-config/canary-features.js.map +0 -1
- package/dist/build-config/debugging.js.map +0 -1
- package/dist/build-config/deprecations.js.map +0 -1
- package/dist/build-config/env.js.map +0 -1
- package/dist/build-config/macros.js.map +0 -1
- package/dist/build-config.js.map +0 -1
- package/dist/configure-B48bFHOl.js.map +0 -1
- package/dist/configure.js.map +0 -1
- package/dist/context-COmAnXUQ.js.map +0 -1
- package/dist/graph/-private.js.map +0 -1
- package/dist/handler-D1C3Innj.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/reactive/-private.js.map +0 -1
- package/dist/reactive.js.map +0 -1
- package/dist/request-state-CCOJIj5i.js.map +0 -1
- package/dist/request.js.map +0 -1
- package/dist/store/-private.js.map +0 -1
- package/dist/store.js.map +0 -1
- package/dist/symbols-epHW0Vm9.js.map +0 -1
- package/dist/types/-private.js.map +0 -1
- package/dist/types/cache/aliases.js.map +0 -1
- package/dist/types/cache/change.js.map +0 -1
- package/dist/types/cache/mutations.js.map +0 -1
- package/dist/types/cache/operations.js.map +0 -1
- package/dist/types/cache/relationship.js.map +0 -1
- package/dist/types/cache.js.map +0 -1
- package/dist/types/graph.js.map +0 -1
- package/dist/types/identifier.js.map +0 -1
- package/dist/types/json/raw.js.map +0 -1
- package/dist/types/params.js.map +0 -1
- package/dist/types/record.js.map +0 -1
- package/dist/types/request.js.map +0 -1
- package/dist/types/runtime.js.map +0 -1
- package/dist/types/schema/concepts.js.map +0 -1
- package/dist/types/schema/fields.js.map +0 -1
- package/dist/types/schema/fields.type-test.js.map +0 -1
- package/dist/types/spec/document.js.map +0 -1
- package/dist/types/spec/error.js.map +0 -1
- package/dist/types/spec/json-api-raw.js.map +0 -1
- package/dist/types/symbols.js.map +0 -1
- package/dist/types/utils.js.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/utils/string.js.map +0 -1
|
@@ -1,143 +1,147 @@
|
|
|
1
|
-
import type { BaseFinderOptions } from
|
|
2
|
-
import type { LocalRelationshipOperation } from
|
|
3
|
-
import type { StableDocumentIdentifier, StableRecordIdentifier } from
|
|
4
|
-
import type { TypeFromInstanceOrString } from
|
|
5
|
-
import type { ImmutableRequestInfo } from
|
|
6
|
-
import type { LegacyHasManyField, LinksModeHasManyField } from
|
|
7
|
-
import type { Links, PaginationLinks } from
|
|
8
|
-
import type { RecordArrayManager } from
|
|
9
|
-
import type { WarpDriveSignal } from
|
|
10
|
-
import { ARRAY_SIGNAL } from
|
|
11
|
-
import type { Store } from
|
|
12
|
-
import { NativeProxy } from
|
|
1
|
+
import type { BaseFinderOptions } from "../../../types.js";
|
|
2
|
+
import type { LocalRelationshipOperation } from "../../../types/graph.js";
|
|
3
|
+
import type { StableDocumentIdentifier, StableRecordIdentifier } from "../../../types/identifier.js";
|
|
4
|
+
import type { TypeFromInstanceOrString } from "../../../types/record.js";
|
|
5
|
+
import type { ImmutableRequestInfo } from "../../../types/request.js";
|
|
6
|
+
import type { LegacyHasManyField, LinksModeHasManyField } from "../../../types/schema/fields.js";
|
|
7
|
+
import type { Links, PaginationLinks } from "../../../types/spec/json-api-raw.js";
|
|
8
|
+
import type { RecordArrayManager } from "../managers/record-array-manager.js";
|
|
9
|
+
import type { WarpDriveSignal } from "../new-core-tmp/reactivity/internal.js";
|
|
10
|
+
import { ARRAY_SIGNAL } from "../new-core-tmp/reactivity/internal.js";
|
|
11
|
+
import type { Store } from "../store-service.js";
|
|
12
|
+
import { NativeProxy } from "./native-proxy-type-fix.js";
|
|
13
13
|
export declare const SOURCE: "___(unique) Symbol(#source)";
|
|
14
14
|
export declare const MUTATE: "___(unique) Symbol(#update)";
|
|
15
15
|
declare const IS_COLLECTION: "___(unique) Symbol(IS_COLLECTION)";
|
|
16
16
|
export type IdentifierArrayCreateOptions<T = unknown> = {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
17
|
+
identifiers: StableRecordIdentifier<TypeFromInstanceOrString<T>>[];
|
|
18
|
+
type?: TypeFromInstanceOrString<T>;
|
|
19
|
+
store: Store;
|
|
20
|
+
allowMutation: boolean;
|
|
21
|
+
manager: MinimumManager;
|
|
22
|
+
field?: LegacyHasManyField | LinksModeHasManyField;
|
|
23
|
+
links?: Links | PaginationLinks | null;
|
|
24
|
+
meta?: Record<string, unknown> | null;
|
|
25
|
+
identifier?: StableDocumentIdentifier | null;
|
|
26
|
+
[MUTATE]?(target: StableRecordIdentifier[], receiver: typeof NativeProxy<StableRecordIdentifier[], T[]>, prop: string, args: unknown[], _SIGNAL: WarpDriveSignal): unknown;
|
|
26
27
|
};
|
|
27
28
|
type PromiseTo<T> = Omit<Promise<T>, typeof Symbol.toStringTag>;
|
|
28
29
|
type PromiseManyArray<T> = {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
length: number;
|
|
31
|
+
content: IdentifierArray<T> | null;
|
|
32
|
+
promise: Promise<IdentifierArray<T>> | null;
|
|
32
33
|
} & PromiseTo<IdentifierArray<T>>;
|
|
33
34
|
export type MinimumManager = {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
_syncArray: (array: IdentifierArray) => void;
|
|
36
|
+
mutate?(mutation: LocalRelationshipOperation): void;
|
|
37
|
+
reloadHasMany?<T>(key: string, options?: BaseFinderOptions): Promise<IdentifierArray<T>> | PromiseManyArray<T>;
|
|
37
38
|
};
|
|
38
39
|
/**
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
A record array is an array that contains records of a certain type (or modelName).
|
|
41
|
+
The record array materializes records as needed when they are retrieved for the first
|
|
42
|
+
time. You should not create record arrays yourself. Instead, an instance of
|
|
43
|
+
`RecordArray` or its subclasses will be returned by your application's store
|
|
44
|
+
in response to queries.
|
|
44
45
|
|
|
45
|
-
|
|
46
|
+
This class should not be imported and instantiated by consuming applications.
|
|
46
47
|
|
|
47
|
-
|
|
48
|
-
|
|
48
|
+
@class RecordArray
|
|
49
|
+
@public
|
|
49
50
|
*/
|
|
50
|
-
export interface IdentifierArray<T = unknown> extends Omit<Array<T>,
|
|
51
|
-
|
|
51
|
+
export interface IdentifierArray<T = unknown> extends Omit<Array<T>, "[]"> {
|
|
52
|
+
[IS_COLLECTION]: boolean;
|
|
53
|
+
[ARRAY_SIGNAL]: WarpDriveSignal;
|
|
54
|
+
[SOURCE]: StableRecordIdentifier[];
|
|
52
55
|
}
|
|
53
56
|
export declare class IdentifierArray<T = unknown> {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
57
|
+
DEPRECATED_CLASS_NAME: string;
|
|
58
|
+
/**
|
|
59
|
+
The flag to signal a `RecordArray` is currently loading data.
|
|
60
|
+
Example
|
|
61
|
+
```javascript
|
|
62
|
+
let people = store.peekAll('person');
|
|
63
|
+
people.isUpdating; // false
|
|
64
|
+
people.update();
|
|
65
|
+
people.isUpdating; // true
|
|
66
|
+
```
|
|
67
|
+
@property isUpdating
|
|
68
|
+
@public
|
|
69
|
+
@type Boolean
|
|
70
|
+
*/
|
|
71
|
+
isUpdating: boolean;
|
|
72
|
+
isLoaded: boolean;
|
|
73
|
+
isDestroying: boolean;
|
|
74
|
+
isDestroyed: boolean;
|
|
75
|
+
_updatingPromise: Promise<IdentifierArray<T>> | null;
|
|
76
|
+
readonly identifier: StableDocumentIdentifier | null;
|
|
77
|
+
links: Links | PaginationLinks | null;
|
|
78
|
+
meta: Record<string, unknown> | null;
|
|
79
|
+
modelName?: TypeFromInstanceOrString<T>;
|
|
80
|
+
/**
|
|
81
|
+
The store that created this record array.
|
|
82
|
+
|
|
83
|
+
@property store
|
|
84
|
+
@private
|
|
85
|
+
@type Store
|
|
86
|
+
*/
|
|
87
|
+
store: Store;
|
|
88
|
+
_manager: MinimumManager;
|
|
89
|
+
destroy(clear: boolean): void;
|
|
90
|
+
constructor(options: IdentifierArrayCreateOptions<T>);
|
|
91
|
+
/**
|
|
92
|
+
Used to get the latest version of all of the records in this array
|
|
93
|
+
from the adapter.
|
|
94
|
+
|
|
95
|
+
Example
|
|
96
|
+
|
|
97
|
+
```javascript
|
|
98
|
+
let people = store.peekAll('person');
|
|
99
|
+
people.isUpdating; // false
|
|
100
|
+
|
|
101
|
+
people.update().then(function() {
|
|
102
|
+
people.isUpdating; // false
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
people.isUpdating; // true
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
@public
|
|
109
|
+
*/
|
|
110
|
+
update(): Promise<IdentifierArray<T>>;
|
|
111
|
+
/*
|
|
112
|
+
Update this Array and return a promise which resolves once the update
|
|
113
|
+
is finished.
|
|
114
|
+
*/
|
|
115
|
+
_update(): Promise<IdentifierArray<T>>;
|
|
116
|
+
// TODO deprecate
|
|
117
|
+
/**
|
|
118
|
+
Saves all of the records in the `RecordArray`.
|
|
119
|
+
|
|
120
|
+
Example
|
|
121
|
+
|
|
122
|
+
```javascript
|
|
123
|
+
let messages = store.peekAll('message');
|
|
124
|
+
messages.forEach(function(message) {
|
|
125
|
+
message.hasBeenSeen = true;
|
|
126
|
+
});
|
|
127
|
+
messages.save();
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
@public
|
|
131
|
+
@return {Promise<IdentifierArray>} promise
|
|
132
|
+
*/
|
|
133
|
+
save(): Promise<IdentifierArray>;
|
|
129
134
|
}
|
|
130
135
|
export type CollectionCreateOptions = IdentifierArrayCreateOptions & {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
136
|
+
manager: RecordArrayManager;
|
|
137
|
+
query: ImmutableRequestInfo | Record<string, unknown> | null;
|
|
138
|
+
isLoaded: boolean;
|
|
134
139
|
};
|
|
135
140
|
export declare class Collection<T = unknown> extends IdentifierArray<T> {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
+
query: ImmutableRequestInfo | Record<string, unknown> | null;
|
|
142
|
+
_manager: RecordArrayManager;
|
|
143
|
+
constructor(options: CollectionCreateOptions);
|
|
144
|
+
_update(): Promise<Collection<T>>;
|
|
145
|
+
destroy(clear: boolean): void;
|
|
141
146
|
}
|
|
142
147
|
export {};
|
|
143
|
-
//# sourceMappingURL=identifier-array.d.ts.map
|
|
@@ -1,201 +1,197 @@
|
|
|
1
|
-
import type { BaseFinderOptions, ModelSchema, StableRecordIdentifier } from
|
|
2
|
-
import type { Cache } from
|
|
3
|
-
import type { TypedRecordInstance, TypeFromInstance, TypeFromInstanceOrString } from
|
|
4
|
-
import type { LegacyHasManyField, LinksModeHasManyField } from
|
|
5
|
-
import type { Links, PaginationLinks } from
|
|
6
|
-
import {
|
|
7
|
-
import type {
|
|
8
|
-
import
|
|
9
|
-
import { IdentifierArray, MUTATE } from './identifier-array.ts';
|
|
10
|
-
import type { NativeProxy } from './native-proxy-type-fix.ts';
|
|
1
|
+
import type { BaseFinderOptions, ModelSchema, StableRecordIdentifier } from "../../../types.js";
|
|
2
|
+
import type { Cache } from "../../../types/cache.js";
|
|
3
|
+
import type { TypedRecordInstance, TypeFromInstance, TypeFromInstanceOrString } from "../../../types/record.js";
|
|
4
|
+
import type { LegacyHasManyField, LinksModeHasManyField } from "../../../types/schema/fields.js";
|
|
5
|
+
import type { Links, PaginationLinks } from "../../../types/spec/json-api-raw.js";
|
|
6
|
+
import type { CreateRecordProperties, Store } from "../store-service.js";
|
|
7
|
+
import type { MinimumManager } from "./identifier-array.js";
|
|
8
|
+
import { IdentifierArray } from "./identifier-array.js";
|
|
11
9
|
export interface ManyArrayCreateArgs<T> {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
10
|
+
identifiers: StableRecordIdentifier<TypeFromInstanceOrString<T>>[];
|
|
11
|
+
type: TypeFromInstanceOrString<T>;
|
|
12
|
+
store: Store;
|
|
13
|
+
allowMutation: boolean;
|
|
14
|
+
manager: MinimumManager;
|
|
15
|
+
field?: LegacyHasManyField | LinksModeHasManyField;
|
|
16
|
+
identifier: StableRecordIdentifier;
|
|
17
|
+
cache: Cache;
|
|
18
|
+
meta: Record<string, unknown> | null;
|
|
19
|
+
links: Links | PaginationLinks | null;
|
|
20
|
+
key: string;
|
|
21
|
+
isPolymorphic: boolean;
|
|
22
|
+
isAsync: boolean;
|
|
23
|
+
_inverseIsAsync: boolean;
|
|
24
|
+
isLoaded: boolean;
|
|
27
25
|
}
|
|
28
26
|
/**
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
A `ManyArray` is a `MutableArray` that represents the contents of a has-many
|
|
28
|
+
relationship.
|
|
31
29
|
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
The `ManyArray` is instantiated lazily the first time the relationship is
|
|
31
|
+
requested.
|
|
34
32
|
|
|
35
|
-
|
|
33
|
+
This class is not intended to be directly instantiated by consuming applications.
|
|
36
34
|
|
|
37
|
-
|
|
35
|
+
### Inverses
|
|
38
36
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
Often, the relationships in Ember Data applications will have
|
|
38
|
+
an inverse. For example, imagine the following models are
|
|
39
|
+
defined:
|
|
42
40
|
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
```js [app/models/post.js]
|
|
42
|
+
import Model, { hasMany } from '@ember-data/model';
|
|
45
43
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
44
|
+
export default class PostModel extends Model {
|
|
45
|
+
@hasMany('comment') comments;
|
|
46
|
+
}
|
|
47
|
+
```
|
|
50
48
|
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
```js [app/models/comment.js]
|
|
50
|
+
import { Model, belongsTo } from '@warp-drive/legacy/model';
|
|
53
51
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
52
|
+
export default class CommentModel extends Model {
|
|
53
|
+
@belongsTo('post') post;
|
|
54
|
+
}
|
|
55
|
+
```
|
|
58
56
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
57
|
+
If you created a new instance of `Post` and added
|
|
58
|
+
a `Comment` record to its `comments` has-many
|
|
59
|
+
relationship, you would expect the comment's `post`
|
|
60
|
+
property to be set to the post that contained
|
|
61
|
+
the has-many.
|
|
64
62
|
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
We call the record to which a relationship belongs-to the
|
|
64
|
+
relationship's _owner_.
|
|
67
65
|
|
|
68
|
-
|
|
69
|
-
|
|
66
|
+
@class ManyArray
|
|
67
|
+
@public
|
|
70
68
|
*/
|
|
71
69
|
export declare class RelatedCollection<T = unknown> extends IdentifierArray<T> {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
destroy(): void;
|
|
70
|
+
isAsync: boolean;
|
|
71
|
+
/**
|
|
72
|
+
The loading state of this array
|
|
73
|
+
|
|
74
|
+
@property isLoaded
|
|
75
|
+
@type {Boolean}
|
|
76
|
+
@public
|
|
77
|
+
*/
|
|
78
|
+
isLoaded: boolean;
|
|
79
|
+
/**
|
|
80
|
+
`true` if the relationship is polymorphic, `false` otherwise.
|
|
81
|
+
|
|
82
|
+
@property isPolymorphic
|
|
83
|
+
@type {Boolean}
|
|
84
|
+
@private
|
|
85
|
+
*/
|
|
86
|
+
isPolymorphic: boolean;
|
|
87
|
+
_inverseIsAsync: boolean;
|
|
88
|
+
/**
|
|
89
|
+
Metadata associated with the request for async hasMany relationships.
|
|
90
|
+
|
|
91
|
+
Example
|
|
92
|
+
|
|
93
|
+
Given that the server returns the following JSON payload when fetching a
|
|
94
|
+
hasMany relationship:
|
|
95
|
+
|
|
96
|
+
```js
|
|
97
|
+
{
|
|
98
|
+
"comments": [{
|
|
99
|
+
"id": 1,
|
|
100
|
+
"comment": "This is the first comment",
|
|
101
|
+
}, {
|
|
102
|
+
// ...
|
|
103
|
+
}],
|
|
104
|
+
|
|
105
|
+
"meta": {
|
|
106
|
+
"page": 1,
|
|
107
|
+
"total": 5
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
You can then access the meta data via the `meta` property:
|
|
113
|
+
|
|
114
|
+
```js
|
|
115
|
+
let comments = await post.comments;
|
|
116
|
+
let meta = comments.meta;
|
|
117
|
+
|
|
118
|
+
// meta.page => 1
|
|
119
|
+
// meta.total => 5
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
@property meta
|
|
123
|
+
@type {Object | null}
|
|
124
|
+
@public
|
|
125
|
+
*/
|
|
126
|
+
meta: Record<string, unknown> | null;
|
|
127
|
+
/**
|
|
128
|
+
* Retrieve the links for this relationship
|
|
129
|
+
*
|
|
130
|
+
@property links
|
|
131
|
+
@type {Object | null}
|
|
132
|
+
@public
|
|
133
|
+
*/
|
|
134
|
+
links: Links | PaginationLinks | null;
|
|
135
|
+
identifier: StableRecordIdentifier;
|
|
136
|
+
cache: Cache;
|
|
137
|
+
_manager: MinimumManager;
|
|
138
|
+
store: Store;
|
|
139
|
+
key: string;
|
|
140
|
+
type: ModelSchema;
|
|
141
|
+
modelName: T extends TypedRecordInstance ? TypeFromInstance<T> : string;
|
|
142
|
+
constructor(options: ManyArrayCreateArgs<T>);
|
|
143
|
+
notify(): void;
|
|
144
|
+
/**
|
|
145
|
+
Reloads all of the records in the manyArray. If the manyArray
|
|
146
|
+
holds a relationship that was originally fetched using a links url
|
|
147
|
+
WarpDrive will revisit the original links url to repopulate the
|
|
148
|
+
relationship.
|
|
149
|
+
|
|
150
|
+
If the ManyArray holds the result of a `store.query()` reload will
|
|
151
|
+
re-run the original query.
|
|
152
|
+
|
|
153
|
+
Example
|
|
154
|
+
|
|
155
|
+
```javascript
|
|
156
|
+
let user = store.peekRecord('user', '1')
|
|
157
|
+
await login(user);
|
|
158
|
+
|
|
159
|
+
let permissions = await user.permissions;
|
|
160
|
+
await permissions.reload();
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
@public
|
|
164
|
+
*/
|
|
165
|
+
reload(options?: BaseFinderOptions): Promise<this>;
|
|
166
|
+
/**
|
|
167
|
+
Create a child record within the owner
|
|
168
|
+
|
|
169
|
+
@public
|
|
170
|
+
@param {Object} hash
|
|
171
|
+
@return {Model} record
|
|
172
|
+
*/
|
|
173
|
+
createRecord(hash: CreateRecordProperties<T>): T;
|
|
174
|
+
/**
|
|
175
|
+
Saves all of the records in the `ManyArray`.
|
|
176
|
+
|
|
177
|
+
Note: this API can only be used in legacy mode with a configured Adapter.
|
|
178
|
+
|
|
179
|
+
Example
|
|
180
|
+
|
|
181
|
+
```javascript
|
|
182
|
+
const { content: { data: inbox } } = await store.request(findRecord({ type: 'inbox', id: '1' }));
|
|
183
|
+
|
|
184
|
+
let messages = await inbox.messages;
|
|
185
|
+
messages.forEach((message) => {
|
|
186
|
+
message.isRead = true;
|
|
187
|
+
});
|
|
188
|
+
messages.save();
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
@public
|
|
192
|
+
@return {PromiseArray} promise
|
|
193
|
+
*/
|
|
194
|
+
save: () => Promise<IdentifierArray<T>>;
|
|
195
|
+
/** @internal */
|
|
196
|
+
destroy(): void;
|
|
200
197
|
}
|
|
201
|
-
//# sourceMappingURL=many-array.d.ts.map
|