@contember/bindx 0.1.5 → 0.1.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.
- package/dist/adapter/ContemberAdapter.d.ts +11 -14
- package/dist/adapter/ContemberAdapter.d.ts.map +1 -1
- package/dist/brand/ComponentBrand.d.ts +1 -24
- package/dist/brand/ComponentBrand.d.ts.map +1 -1
- package/dist/contember/index.d.ts +1 -2
- package/dist/contember/index.d.ts.map +1 -1
- package/dist/handles/EntityHandle.d.ts +18 -29
- package/dist/handles/EntityHandle.d.ts.map +1 -1
- package/dist/handles/FieldHandle.d.ts +5 -3
- package/dist/handles/FieldHandle.d.ts.map +1 -1
- package/dist/handles/HasManyListHandle.d.ts +4 -3
- package/dist/handles/HasManyListHandle.d.ts.map +1 -1
- package/dist/handles/HasOneHandle.d.ts +33 -36
- package/dist/handles/HasOneHandle.d.ts.map +1 -1
- package/dist/handles/PlaceholderHandle.d.ts +9 -19
- package/dist/handles/PlaceholderHandle.d.ts.map +1 -1
- package/dist/handles/proxyFactory.d.ts +9 -37
- package/dist/handles/proxyFactory.d.ts.map +1 -1
- package/dist/handles/types.d.ts +4 -0
- package/dist/handles/types.d.ts.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/persistence/ContemberSchemaMutationAdapter.d.ts +24 -1
- package/dist/persistence/ContemberSchemaMutationAdapter.d.ts.map +1 -1
- package/dist/schema/ContemberSchema.d.ts +1 -97
- package/dist/schema/ContemberSchema.d.ts.map +1 -1
- package/dist/schema/SchemaLoader.d.ts +1 -27
- package/dist/schema/SchemaLoader.d.ts.map +1 -1
- package/dist/schema/SchemaRegistry.d.ts +1 -94
- package/dist/schema/SchemaRegistry.d.ts.map +1 -1
- package/dist/schema/roles.d.ts +1 -61
- package/dist/schema/roles.d.ts.map +1 -1
- package/dist/schema/types.d.ts +1 -178
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/selection/SelectionMetaCollector.d.ts +1 -31
- package/dist/selection/SelectionMetaCollector.d.ts.map +1 -1
- package/dist/selection/SelectionScope.d.ts +1 -76
- package/dist/selection/SelectionScope.d.ts.map +1 -1
- package/dist/selection/buildQuery.d.ts +1 -44
- package/dist/selection/buildQuery.d.ts.map +1 -1
- package/dist/selection/createFragment.d.ts +1 -28
- package/dist/selection/createFragment.d.ts.map +1 -1
- package/dist/selection/createSelectionBuilder.d.ts +1 -17
- package/dist/selection/createSelectionBuilder.d.ts.map +1 -1
- package/dist/selection/queryTypes.d.ts +1 -83
- package/dist/selection/queryTypes.d.ts.map +1 -1
- package/dist/selection/types.d.ts +1 -237
- package/dist/selection/types.d.ts.map +1 -1
- package/dist/utils/aliasGenerator.d.ts +1 -24
- package/dist/utils/aliasGenerator.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/adapter/ContemberAdapter.ts +193 -123
- package/src/brand/ComponentBrand.ts +1 -28
- package/src/contember/index.ts +1 -8
- package/src/handles/EntityHandle.ts +131 -61
- package/src/handles/FieldHandle.ts +19 -3
- package/src/handles/HasManyListHandle.ts +15 -12
- package/src/handles/HasOneHandle.ts +98 -66
- package/src/handles/PlaceholderHandle.ts +26 -24
- package/src/handles/proxyFactory.ts +29 -128
- package/src/handles/types.ts +6 -0
- package/src/index.ts +22 -3
- package/src/persistence/ContemberSchemaMutationAdapter.ts +19 -1
- package/src/schema/ContemberSchema.ts +14 -132
- package/src/schema/SchemaLoader.ts +1 -93
- package/src/schema/SchemaRegistry.ts +1 -286
- package/src/schema/roles.ts +10 -83
- package/src/schema/types.ts +21 -238
- package/src/selection/SelectionMetaCollector.ts +1 -122
- package/src/selection/SelectionScope.ts +1 -208
- package/src/selection/buildQuery.ts +1 -134
- package/src/selection/createFragment.ts +1 -50
- package/src/selection/createSelectionBuilder.ts +1 -283
- package/src/selection/queryTypes.ts +8 -135
- package/src/selection/types.ts +13 -320
- package/src/utils/aliasGenerator.ts +1 -56
|
@@ -1,23 +1,24 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { ContentClient } from '@contember/bindx-client';
|
|
2
|
+
import type { GraphQlClient } from '@contember/graphql-client';
|
|
3
3
|
import type { BackendAdapter, Query, QueryResult, QueryOptions, PersistResult, CreateResult, DeleteResult } from './types.js';
|
|
4
|
+
import type { SchemaRegistry } from '../schema/SchemaRegistry.js';
|
|
4
5
|
/**
|
|
5
6
|
* Options for ContemberAdapter
|
|
6
7
|
*/
|
|
7
8
|
export interface ContemberAdapterOptions {
|
|
8
9
|
/** GraphQL client instance */
|
|
9
10
|
client: GraphQlClient;
|
|
10
|
-
/**
|
|
11
|
-
|
|
11
|
+
/** Schema registry for relation target resolution */
|
|
12
|
+
schemaRegistry: SchemaRegistry;
|
|
12
13
|
}
|
|
13
14
|
/**
|
|
14
15
|
* Backend adapter for Contember Content API.
|
|
15
|
-
* Uses @contember/client
|
|
16
|
+
* Uses @contember/bindx-client for GraphQL operations.
|
|
16
17
|
*/
|
|
17
18
|
export declare class ContemberAdapter implements BackendAdapter {
|
|
18
19
|
private readonly contentClient;
|
|
19
|
-
private readonly
|
|
20
|
-
constructor(contentClient: ContentClient,
|
|
20
|
+
private readonly schemaRegistry;
|
|
21
|
+
constructor(contentClient: ContentClient, schemaRegistry: SchemaRegistry);
|
|
21
22
|
query(queries: readonly Query[], options?: QueryOptions): Promise<QueryResult[]>;
|
|
22
23
|
private buildGetQuery;
|
|
23
24
|
private buildListQuery;
|
|
@@ -25,16 +26,12 @@ export declare class ContemberAdapter implements BackendAdapter {
|
|
|
25
26
|
create(entityType: string, data: Record<string, unknown>): Promise<CreateResult>;
|
|
26
27
|
delete(entityType: string, id: string): Promise<DeleteResult>;
|
|
27
28
|
/**
|
|
28
|
-
* Converts
|
|
29
|
+
* Converts raw mutation result to ContemberMutationResult type.
|
|
29
30
|
*/
|
|
30
31
|
private toMutationResult;
|
|
31
32
|
/**
|
|
32
|
-
*
|
|
33
|
+
* Creates a QuerySpecContext for an entity, wiring in SchemaRegistry for relation target resolution.
|
|
33
34
|
*/
|
|
34
|
-
private
|
|
35
|
-
/**
|
|
36
|
-
* Recursively applies QueryFieldSpec[] to ContentEntitySelection
|
|
37
|
-
*/
|
|
38
|
-
private applyFieldsToSelection;
|
|
35
|
+
private createContext;
|
|
39
36
|
}
|
|
40
37
|
//# sourceMappingURL=ContemberAdapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContemberAdapter.d.ts","sourceRoot":"","sources":["../../src/adapter/ContemberAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ContemberAdapter.d.ts","sourceRoot":"","sources":["../../src/adapter/ContemberAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,aAAa,EAcb,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAuB,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAElJ,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAGjE;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACvC,8BAA8B;IAC9B,MAAM,EAAE,aAAa,CAAA;IACrB,qDAAqD;IACrD,cAAc,EAAE,cAAc,CAAA;CAC9B;AAED;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,cAAc;IAGrD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc;gBADd,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc;IAI1C,KAAK,CAAC,OAAO,EAAE,SAAS,KAAK,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAqCtF,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,cAAc;IAmBhB,OAAO,CACZ,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,aAAa,CAAC;IA4BnB,MAAM,CACX,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,OAAO,CAAC,YAAY,CAAC;IAkClB,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA4BnE;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsBxB;;OAEG;IACH,OAAO,CAAC,aAAa;CAMrB"}
|
|
@@ -1,25 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* ComponentBrand provides unique identity for each component created with createComponent.
|
|
3
|
-
* Each instance has a unique runtime Symbol for brand validation.
|
|
4
|
-
* The class structure itself provides nominal typing in TypeScript.
|
|
5
|
-
*/
|
|
6
|
-
export declare class ComponentBrand {
|
|
7
|
-
readonly name: string;
|
|
8
|
-
/**
|
|
9
|
-
* Private property to ensure nominal typing.
|
|
10
|
-
* Each class instance is considered a unique type.
|
|
11
|
-
*/
|
|
12
|
-
private readonly __nominal;
|
|
13
|
-
/**
|
|
14
|
-
* Runtime symbol for brand validation.
|
|
15
|
-
* Used to check that EntityRef includes required component brands.
|
|
16
|
-
*/
|
|
17
|
-
readonly brandSymbol: symbol;
|
|
18
|
-
constructor(name: string);
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Type alias for any ComponentBrand.
|
|
22
|
-
* Used as default/base type in generic constraints.
|
|
23
|
-
*/
|
|
24
|
-
export type AnyBrand = ComponentBrand;
|
|
1
|
+
export { ComponentBrand, type AnyBrand } from '@contember/bindx-client';
|
|
25
2
|
//# sourceMappingURL=ComponentBrand.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComponentBrand.d.ts","sourceRoot":"","sources":["../../src/brand/ComponentBrand.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ComponentBrand.d.ts","sourceRoot":"","sources":["../../src/brand/ComponentBrand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAA"}
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
* @packageDocumentation
|
|
5
5
|
*/
|
|
6
6
|
export { MutationCollector, type EntityMutationResult } from '../persistence/MutationCollector.js';
|
|
7
|
-
export { ContemberSchemaMutationAdapter } from '../persistence/ContemberSchemaMutationAdapter.js';
|
|
7
|
+
export { ContemberSchemaMutationAdapter, type SchemaNames } from '../persistence/ContemberSchemaMutationAdapter.js';
|
|
8
8
|
export type { MutationSchemaProvider } from '../persistence/MutationSchemaProvider.js';
|
|
9
|
-
export type { SchemaNames, SchemaEntityNames, ContentClientInput, } from '@contember/client-content';
|
|
10
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contember/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAE,KAAK,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAClG,OAAO,EAAE,8BAA8B,EAAE,MAAM,kDAAkD,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contember/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAE,KAAK,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAClG,OAAO,EAAE,8BAA8B,EAAE,KAAK,WAAW,EAAE,MAAM,kDAAkD,CAAA;AACnH,YAAY,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAA"}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import { EntityRelatedHandle } from './BaseHandle.js';
|
|
2
|
-
import { FieldHandle } from './FieldHandle.js';
|
|
3
2
|
import type { ActionDispatcher } from '../core/ActionDispatcher.js';
|
|
4
3
|
import { type SnapshotStore } from '../store/SnapshotStore.js';
|
|
5
4
|
import type { SchemaRegistry } from '../schema/SchemaRegistry.js';
|
|
6
5
|
import type { EntitySnapshot } from '../store/snapshots.js';
|
|
7
|
-
import { type
|
|
6
|
+
import { type FieldRef, type HasOneAccessor, type HasManyRef, type SelectedEntityFields, type Unsubscribe, type EntityAccessor } from './types.js';
|
|
8
7
|
import { type ErrorInput, type FieldError } from '../errors/types.js';
|
|
9
8
|
import type { EventTypeMap, AfterEventTypes, BeforeEventTypes, EventListener, Interceptor, EntityPersistedEvent, EntityPersistingEvent } from '../events/types.js';
|
|
10
|
-
import { HasOneHandle } from './HasOneHandle.js';
|
|
11
|
-
import { HasManyListHandle } from './HasManyListHandle.js';
|
|
12
9
|
import type { SelectionMeta } from '../selection/types.js';
|
|
13
10
|
/**
|
|
14
11
|
* EntityHandle provides stable access to an entity.
|
|
@@ -27,7 +24,7 @@ import type { SelectionMeta } from '../selection/types.js';
|
|
|
27
24
|
* @typeParam T - The full entity type
|
|
28
25
|
* @typeParam TSelected - The selected subset of fields (defaults to T for backwards compatibility)
|
|
29
26
|
*/
|
|
30
|
-
export declare class EntityHandle<T extends object = object, TSelected = T> extends EntityRelatedHandle
|
|
27
|
+
export declare class EntityHandle<T extends object = object, TSelected = T> extends EntityRelatedHandle {
|
|
31
28
|
private readonly schema;
|
|
32
29
|
private readonly selection?;
|
|
33
30
|
/** Cache for field handles to ensure stable identity */
|
|
@@ -36,32 +33,14 @@ export declare class EntityHandle<T extends object = object, TSelected = T> exte
|
|
|
36
33
|
private readonly relationHandleCache;
|
|
37
34
|
/** Runtime brand symbols for validation */
|
|
38
35
|
readonly __brands?: Set<symbol>;
|
|
39
|
-
/** Type brand for schema - placeholder at runtime */
|
|
40
|
-
readonly __schema: Record<string, object>;
|
|
41
|
-
readonly $fields: SelectedEntityFields<T, TSelected>;
|
|
42
|
-
readonly $data: TSelected | null;
|
|
43
|
-
readonly $isDirty: boolean;
|
|
44
|
-
readonly $persistedId: string | null;
|
|
45
|
-
readonly $isNew: boolean;
|
|
46
|
-
readonly $errors: readonly FieldError[];
|
|
47
|
-
readonly $hasError: boolean;
|
|
48
|
-
$addError: (error: ErrorInput) => void;
|
|
49
|
-
$clearErrors: () => void;
|
|
50
|
-
$clearAllErrors: () => void;
|
|
51
|
-
$on: <E extends AfterEventTypes>(eventType: E, listener: EventListener<EventTypeMap[E]>) => Unsubscribe;
|
|
52
|
-
$intercept: <E extends BeforeEventTypes>(eventType: E, interceptor: Interceptor<EventTypeMap[E]>) => Unsubscribe;
|
|
53
|
-
$onPersisted: (listener: EventListener<EntityPersistedEvent>) => Unsubscribe;
|
|
54
|
-
$interceptPersisting: (interceptor: Interceptor<EntityPersistingEvent>) => Unsubscribe;
|
|
55
36
|
private constructor();
|
|
56
|
-
static create<T extends object = object, TSelected = T>(id: string, entityType: string, store: SnapshotStore, dispatcher: ActionDispatcher, schema: SchemaRegistry, brands?: Set<symbol>, selection?: SelectionMeta):
|
|
37
|
+
static create<T extends object = object, TSelected = T>(id: string, entityType: string, store: SnapshotStore, dispatcher: ActionDispatcher, schema: SchemaRegistry, brands?: Set<symbol>, selection?: SelectionMeta): EntityAccessor<T, TSelected>;
|
|
38
|
+
static createRaw<T extends object = object, TSelected = T>(id: string, entityType: string, store: SnapshotStore, dispatcher: ActionDispatcher, schema: SchemaRegistry, brands?: Set<symbol>, selection?: SelectionMeta): EntityHandle<T, TSelected>;
|
|
39
|
+
static wrapProxy<T extends object, TSelected>(handle: EntityHandle<T, TSelected>): EntityAccessor<T, TSelected>;
|
|
57
40
|
/**
|
|
58
41
|
* Gets the entity ID.
|
|
59
42
|
*/
|
|
60
43
|
get id(): string;
|
|
61
|
-
/**
|
|
62
|
-
* Gets the entity type.
|
|
63
|
-
*/
|
|
64
|
-
get type(): string;
|
|
65
44
|
/**
|
|
66
45
|
* Gets the current entity snapshot.
|
|
67
46
|
*/
|
|
@@ -113,18 +92,28 @@ export declare class EntityHandle<T extends object = object, TSelected = T> exte
|
|
|
113
92
|
* Gets a field handle for a specific field.
|
|
114
93
|
* Returns cached handle to ensure stable identity.
|
|
115
94
|
*/
|
|
116
|
-
field<K extends keyof T>(fieldName: K):
|
|
95
|
+
field<K extends keyof T>(fieldName: K): FieldRef<T[K]>;
|
|
117
96
|
/**
|
|
118
97
|
* Gets a has-one relation handle.
|
|
119
98
|
*/
|
|
120
|
-
hasOne<TRelated extends object>(fieldName: string, nestedSelection?: SelectionMeta):
|
|
99
|
+
hasOne<TRelated extends object>(fieldName: string, nestedSelection?: SelectionMeta): HasOneAccessor<TRelated>;
|
|
121
100
|
/**
|
|
122
101
|
* Gets a has-many relation handle.
|
|
123
102
|
*
|
|
124
103
|
* @param alias - Optional alias for the relation. When the same field is used multiple times
|
|
125
104
|
* with different parameters (filter, orderBy, limit), each needs a unique alias.
|
|
126
105
|
*/
|
|
127
|
-
hasMany<TItem extends object>(fieldName: string, alias?: string, nestedSelection?: SelectionMeta):
|
|
106
|
+
hasMany<TItem extends object>(fieldName: string, alias?: string, nestedSelection?: SelectionMeta): HasManyRef<TItem>;
|
|
107
|
+
/**
|
|
108
|
+
* Gets a raw (unproxied) has-one relation handle from cache.
|
|
109
|
+
* Creates the handle if not cached yet.
|
|
110
|
+
*/
|
|
111
|
+
private getHasOneHandleRaw;
|
|
112
|
+
/**
|
|
113
|
+
* Gets a raw (unproxied) has-many relation handle from cache.
|
|
114
|
+
* Creates the handle if not cached yet.
|
|
115
|
+
*/
|
|
116
|
+
private getHasManyHandleRaw;
|
|
128
117
|
/**
|
|
129
118
|
* Resets the entity to server data.
|
|
130
119
|
* Also resets all relation states (hasOne, hasMany).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityHandle.d.ts","sourceRoot":"","sources":["../../src/handles/EntityHandle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"EntityHandle.d.ts","sourceRoot":"","sources":["../../src/handles/EntityHandle.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ import type { FieldChangedEvent, FieldChangingEvent, EventListener, Interceptor
|
|
|
14
14
|
* - Provides inputProps for form integration
|
|
15
15
|
* - Implements FieldRef interface for JSX compatibility
|
|
16
16
|
*/
|
|
17
|
-
export declare class FieldHandle<T = unknown> extends EntityRelatedHandle
|
|
17
|
+
export declare class FieldHandle<T = unknown> extends EntityRelatedHandle {
|
|
18
18
|
private readonly fieldPath;
|
|
19
19
|
private readonly _enumName?;
|
|
20
20
|
private readonly _columnType?;
|
|
@@ -22,7 +22,9 @@ export declare class FieldHandle<T = unknown> extends EntityRelatedHandle implem
|
|
|
22
22
|
private _cachedInputPropsValue;
|
|
23
23
|
private readonly _boundSetValue;
|
|
24
24
|
private constructor();
|
|
25
|
-
static create<T = unknown>(entityType: string, entityId: string, fieldPath: string[], store: SnapshotStore, dispatcher: ActionDispatcher, enumName?: string, columnType?: string):
|
|
25
|
+
static create<T = unknown>(entityType: string, entityId: string, fieldPath: string[], store: SnapshotStore, dispatcher: ActionDispatcher, enumName?: string, columnType?: string): FieldRef<T>;
|
|
26
|
+
static createRaw<T = unknown>(entityType: string, entityId: string, fieldPath: string[], store: SnapshotStore, dispatcher: ActionDispatcher, enumName?: string, columnType?: string): FieldHandle<T>;
|
|
27
|
+
static wrapProxy<T>(handle: FieldHandle<T>): FieldRef<T>;
|
|
26
28
|
/**
|
|
27
29
|
* JSX field reference metadata for collection phase.
|
|
28
30
|
* Implements FieldRef interface.
|
|
@@ -96,7 +98,7 @@ export declare class FieldHandle<T = unknown> extends EntityRelatedHandle implem
|
|
|
96
98
|
/**
|
|
97
99
|
* Creates a nested field handle for a subfield.
|
|
98
100
|
*/
|
|
99
|
-
nested<K extends keyof NonNullable<T>>(key: K):
|
|
101
|
+
nested<K extends keyof NonNullable<T>>(key: K): FieldRef<NonNullable<T>[K]>;
|
|
100
102
|
/**
|
|
101
103
|
* Subscribe to field value changes.
|
|
102
104
|
* The listener is called after the value has changed.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldHandle.d.ts","sourceRoot":"","sources":["../../src/handles/FieldHandle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAE9D,OAAO,EAAE,cAAc,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AAEhH,OAAO,EAAqB,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACxF,OAAO,KAAK,EACX,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,MAAM,oBAAoB,CAAA;AAG3B;;;;;;;;;GASG;AACH,qBAAa,WAAW,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,
|
|
1
|
+
{"version":3,"file":"FieldHandle.d.ts","sourceRoot":"","sources":["../../src/handles/FieldHandle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAE9D,OAAO,EAAE,cAAc,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AAEhH,OAAO,EAAqB,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACxF,OAAO,KAAK,EACX,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,MAAM,oBAAoB,CAAA;AAG3B;;;;;;;;;GASG;AACH,qBAAa,WAAW,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,mBAAmB;IAS/D,OAAO,CAAC,QAAQ,CAAC,SAAS;IAG1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAZ9B,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,sBAAsB,CAAkC;IAEhE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkD;IAEjF,OAAO;IAYP,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,EACxB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,gBAAgB,EAC5B,QAAQ,CAAC,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,GACjB,QAAQ,CAAC,CAAC,CAAC;IAId,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,OAAO,EAC3B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,gBAAgB,EAC5B,QAAQ,CAAC,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,GACjB,WAAW,CAAC,CAAC,CAAC;IAIjB,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IAIxD;;;OAGG;IACH,IAAI,CAAC,cAAc,CAAC,IAAI,YAAY,CAWnC;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAIpB;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,CAAC,GAAG,IAAI,CAI1B;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;OAGG;IACH,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;;OAGG;IACH,KAAK,IAAI,IAAI;IAKb;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;IAS/B;;OAEG;IACH,IAAI,MAAM,IAAI,SAAS,UAAU,EAAE,CAElC;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAOjC;;OAEG;IACH,WAAW,IAAI,IAAI;IAOnB;;;;;;;;;;;;OAYG;IACH,IAAI,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,CAW9B;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,SAAS,MAAM,EAAE,CAE5B;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;OAEG;IACH,MAAM,CAAC,CAAC,SAAS,MAAM,WAAW,CAAC,CAAC,CAAC,EACpC,GAAG,EAAE,CAAC,GACJ,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAY9B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,iBAAiB,CAAC,GAAG,WAAW;IAWjE;;;OAGG;IACH,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,kBAAkB,CAAC,GAAG,WAAW;CAWrE"}
|
|
@@ -13,12 +13,13 @@ import type { EventListener, Interceptor, HasManyConnectedEvent, HasManyDisconne
|
|
|
13
13
|
* @typeParam TEntity - The full entity type of items in the relation
|
|
14
14
|
* @typeParam TSelected - The selected subset of fields (defaults to TEntity for backwards compatibility)
|
|
15
15
|
*/
|
|
16
|
-
export declare class HasManyListHandle<TEntity extends object = object, TSelected = TEntity> extends EntityRelatedHandle
|
|
16
|
+
export declare class HasManyListHandle<TEntity extends object = object, TSelected = TEntity> extends EntityRelatedHandle {
|
|
17
17
|
private readonly fieldName;
|
|
18
18
|
private readonly itemType;
|
|
19
19
|
private readonly schema;
|
|
20
20
|
private readonly selection?;
|
|
21
|
-
private
|
|
21
|
+
private itemHandleCacheRaw;
|
|
22
|
+
private itemHandleCacheProxy;
|
|
22
23
|
/** Runtime brand symbols for validation */
|
|
23
24
|
readonly __brands?: Set<symbol>;
|
|
24
25
|
/**
|
|
@@ -38,7 +39,7 @@ export declare class HasManyListHandle<TEntity extends object = object, TSelecte
|
|
|
38
39
|
*/
|
|
39
40
|
private readonly alias;
|
|
40
41
|
private constructor();
|
|
41
|
-
static create<TEntity extends object = object, TSelected = TEntity>(parentEntityType: string, parentEntityId: string, fieldName: string, itemType: string, store: SnapshotStore, dispatcher: ActionDispatcher, schema: SchemaRegistry, brands?: Set<symbol>, alias?: string, selection?: SelectionMeta):
|
|
42
|
+
static create<TEntity extends object = object, TSelected = TEntity>(parentEntityType: string, parentEntityId: string, fieldName: string, itemType: string, store: SnapshotStore, dispatcher: ActionDispatcher, schema: SchemaRegistry, brands?: Set<symbol>, alias?: string, selection?: SelectionMeta): HasManyRef<TEntity, TSelected>;
|
|
42
43
|
/**
|
|
43
44
|
* JSX field reference metadata for collection phase.
|
|
44
45
|
* Implements HasManyRef interface.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HasManyListHandle.d.ts","sourceRoot":"","sources":["../../src/handles/HasManyListHandle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAErD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAK1D,OAAO,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AACtH,OAAO,EAAqB,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACxF,OAAO,KAAK,EACX,aAAa,EACb,WAAW,EACX,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,yBAAyB,EACzB,MAAM,oBAAoB,CAAA;AAG3B;;;;;;GAMG;AACH,qBAAa,iBAAiB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,SAAS,GAAG,OAAO,CAAE,SAAQ,
|
|
1
|
+
{"version":3,"file":"HasManyListHandle.d.ts","sourceRoot":"","sources":["../../src/handles/HasManyListHandle.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,9 +3,11 @@ import type { ActionDispatcher } from '../core/ActionDispatcher.js';
|
|
|
3
3
|
import type { SnapshotStore } from '../store/SnapshotStore.js';
|
|
4
4
|
import type { SchemaRegistry } from '../schema/SchemaRegistry.js';
|
|
5
5
|
import type { SelectionMeta } from '../selection/types.js';
|
|
6
|
-
import { FIELD_REF_META, type
|
|
6
|
+
import { FIELD_REF_META, type FieldRefMeta, type SelectedEntityFields, type Unsubscribe, type EntityAccessor, type HasOneAccessor } from './types.js';
|
|
7
7
|
import { type ErrorInput, type FieldError } from '../errors/types.js';
|
|
8
8
|
import type { EventTypeMap, AfterEventTypes, BeforeEventTypes, EventListener, Interceptor, EntityPersistedEvent, EntityPersistingEvent, RelationConnectedEvent, RelationDisconnectedEvent, RelationConnectingEvent, RelationDisconnectingEvent } from '../events/types.js';
|
|
9
|
+
import { EntityHandle } from './EntityHandle.js';
|
|
10
|
+
import { PlaceholderHandle } from './PlaceholderHandle.js';
|
|
9
11
|
/**
|
|
10
12
|
* HasOneHandle provides access to a has-one relation.
|
|
11
13
|
* Implements HasOneRef interface for JSX compatibility.
|
|
@@ -13,36 +15,21 @@ import type { EventTypeMap, AfterEventTypes, BeforeEventTypes, EventListener, In
|
|
|
13
15
|
* @typeParam TEntity - The full entity type of the related entity
|
|
14
16
|
* @typeParam TSelected - The selected subset of fields (defaults to TEntity for backwards compatibility)
|
|
15
17
|
*/
|
|
16
|
-
export declare class HasOneHandle<TEntity extends object = object, TSelected = TEntity> extends EntityRelatedHandle
|
|
18
|
+
export declare class HasOneHandle<TEntity extends object = object, TSelected = TEntity> extends EntityRelatedHandle {
|
|
17
19
|
private readonly fieldName;
|
|
18
20
|
private readonly targetType;
|
|
19
21
|
private readonly schema;
|
|
20
22
|
private readonly selection?;
|
|
21
|
-
private
|
|
22
|
-
private
|
|
23
|
+
private entityHandleCacheRaw;
|
|
24
|
+
private entityHandleCacheProxy;
|
|
25
|
+
private placeholderCacheRaw;
|
|
26
|
+
private placeholderCacheProxy;
|
|
23
27
|
/** Runtime brand symbols for validation */
|
|
24
28
|
readonly __brands?: Set<symbol>;
|
|
25
|
-
/** Type brand for schema - placeholder at runtime */
|
|
26
|
-
readonly __schema: Record<string, object>;
|
|
27
|
-
readonly $id: string;
|
|
28
|
-
readonly $isDirty: boolean;
|
|
29
|
-
readonly $state: 'connected' | 'disconnected' | 'deleted' | 'creating';
|
|
30
|
-
readonly $fields: SelectedEntityFields<TEntity, TSelected>;
|
|
31
|
-
readonly $entity: EntityAccessor<TEntity, TSelected>;
|
|
32
|
-
readonly $errors: readonly FieldError[];
|
|
33
|
-
readonly $hasError: boolean;
|
|
34
|
-
$connect: (id: string) => void;
|
|
35
|
-
$disconnect: () => void;
|
|
36
|
-
$delete: () => void;
|
|
37
|
-
$reset: () => void;
|
|
38
|
-
$addError: (error: ErrorInput) => void;
|
|
39
|
-
$clearErrors: () => void;
|
|
40
|
-
$onConnect: (listener: EventListener<RelationConnectedEvent>) => Unsubscribe;
|
|
41
|
-
$onDisconnect: (listener: EventListener<RelationDisconnectedEvent>) => Unsubscribe;
|
|
42
|
-
$interceptConnect: (interceptor: Interceptor<RelationConnectingEvent>) => Unsubscribe;
|
|
43
|
-
$interceptDisconnect: (interceptor: Interceptor<RelationDisconnectingEvent>) => Unsubscribe;
|
|
44
29
|
private constructor();
|
|
45
|
-
static create<TEntity extends object = object, TSelected = TEntity>(parentEntityType: string, parentEntityId: string, fieldName: string, targetType: string, store: SnapshotStore, dispatcher: ActionDispatcher, schema: SchemaRegistry, brands?: Set<symbol>, selection?: SelectionMeta):
|
|
30
|
+
static create<TEntity extends object = object, TSelected = TEntity>(parentEntityType: string, parentEntityId: string, fieldName: string, targetType: string, store: SnapshotStore, dispatcher: ActionDispatcher, schema: SchemaRegistry, brands?: Set<symbol>, selection?: SelectionMeta): HasOneAccessor<TEntity, TSelected>;
|
|
31
|
+
static createRaw<TEntity extends object = object, TSelected = TEntity>(parentEntityType: string, parentEntityId: string, fieldName: string, targetType: string, store: SnapshotStore, dispatcher: ActionDispatcher, schema: SchemaRegistry, brands?: Set<symbol>, selection?: SelectionMeta): HasOneHandle<TEntity, TSelected>;
|
|
32
|
+
static wrapProxy<TEntity extends object, TSelected>(handle: HasOneHandle<TEntity, TSelected>): HasOneAccessor<TEntity, TSelected>;
|
|
46
33
|
/**
|
|
47
34
|
* JSX field reference metadata for collection phase.
|
|
48
35
|
* Implements HasOneRef interface.
|
|
@@ -73,6 +60,12 @@ export declare class HasOneHandle<TEntity extends object = object, TSelected = T
|
|
|
73
60
|
* Delegates to the entity (either real EntityHandle or PlaceholderHandle).
|
|
74
61
|
*/
|
|
75
62
|
get fields(): SelectedEntityFields<TEntity, TSelected>;
|
|
63
|
+
/**
|
|
64
|
+
* Gets the raw (unproxied) related entity handle.
|
|
65
|
+
* Returns raw EntityHandle or raw PlaceholderHandle.
|
|
66
|
+
* Used internally to avoid going through the proxy layer.
|
|
67
|
+
*/
|
|
68
|
+
get entityRaw(): EntityHandle<TEntity, TSelected> | PlaceholderHandle<TEntity, TSelected>;
|
|
76
69
|
/**
|
|
77
70
|
* Gets the related entity accessor with direct field access.
|
|
78
71
|
* Implements HasOneRef.$entity - returns EntityAccessor for the related entity.
|
|
@@ -85,6 +78,10 @@ export declare class HasOneHandle<TEntity extends object = object, TSelected = T
|
|
|
85
78
|
* creates a snapshot from the embedded data.
|
|
86
79
|
*/
|
|
87
80
|
private ensureRelatedEntitySnapshot;
|
|
81
|
+
/**
|
|
82
|
+
* Checks if the related entity is currently being persisted.
|
|
83
|
+
*/
|
|
84
|
+
get isPersisting(): boolean;
|
|
88
85
|
/**
|
|
89
86
|
* Checks if the relation is dirty.
|
|
90
87
|
*/
|
|
@@ -146,23 +143,23 @@ export declare class HasOneHandle<TEntity extends object = object, TSelected = T
|
|
|
146
143
|
* Intercept disconnection (can cancel).
|
|
147
144
|
*/
|
|
148
145
|
interceptDisconnect(interceptor: Interceptor<RelationDisconnectingEvent>): Unsubscribe;
|
|
149
|
-
/** Raw data snapshot of the related entity - delegates to
|
|
150
|
-
get
|
|
151
|
-
/** Whether this entity is new - delegates to
|
|
152
|
-
get
|
|
153
|
-
/** Server-assigned ID after persistence - delegates to
|
|
154
|
-
get
|
|
146
|
+
/** Raw data snapshot of the related entity - delegates to entityRaw */
|
|
147
|
+
get data(): TSelected | null;
|
|
148
|
+
/** Whether this entity is new - delegates to entityRaw */
|
|
149
|
+
get isNew(): boolean;
|
|
150
|
+
/** Server-assigned ID after persistence - delegates to entityRaw */
|
|
151
|
+
get persistedId(): string | null;
|
|
155
152
|
/** Type brand for entity name */
|
|
156
153
|
get __entityName(): string;
|
|
157
|
-
/** Clear all errors - delegates to
|
|
158
|
-
|
|
154
|
+
/** Clear all errors - delegates to entityRaw */
|
|
155
|
+
clearAllErrors(): void;
|
|
159
156
|
/** Subscribe to any event on the related entity */
|
|
160
|
-
|
|
157
|
+
on<E extends AfterEventTypes>(eventType: E, listener: EventListener<EventTypeMap[E]>): Unsubscribe;
|
|
161
158
|
/** Intercept any before event on the related entity */
|
|
162
|
-
|
|
159
|
+
intercept<E extends BeforeEventTypes>(eventType: E, interceptor: Interceptor<EventTypeMap[E]>): Unsubscribe;
|
|
163
160
|
/** Subscribe to persist success events on the related entity */
|
|
164
|
-
|
|
161
|
+
onPersisted(listener: EventListener<EntityPersistedEvent>): Unsubscribe;
|
|
165
162
|
/** Intercept persist on the related entity */
|
|
166
|
-
|
|
163
|
+
interceptPersisting(interceptor: Interceptor<EntityPersistingEvent>): Unsubscribe;
|
|
167
164
|
}
|
|
168
165
|
//# sourceMappingURL=HasOneHandle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HasOneHandle.d.ts","sourceRoot":"","sources":["../../src/handles/HasOneHandle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAQ1D,OAAO,EACN,cAAc,EACd,KAAK,
|
|
1
|
+
{"version":3,"file":"HasOneHandle.d.ts","sourceRoot":"","sources":["../../src/handles/HasOneHandle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ActionDispatcher } from '../core/ActionDispatcher.js';
|
|
2
2
|
import type { SnapshotStore } from '../store/SnapshotStore.js';
|
|
3
|
-
import { type
|
|
3
|
+
import { type SelectedEntityFields, type Unsubscribe, type EntityAccessor } from './types.js';
|
|
4
4
|
import type { ErrorInput, FieldError } from '../errors/types.js';
|
|
5
5
|
import type { EventTypeMap, AfterEventTypes, BeforeEventTypes, EventListener, Interceptor, EntityPersistedEvent, EntityPersistingEvent } from '../events/types.js';
|
|
6
6
|
/**
|
|
@@ -11,7 +11,7 @@ import type { EventTypeMap, AfterEventTypes, BeforeEventTypes, EventListener, In
|
|
|
11
11
|
* @typeParam TEntity - The full entity type
|
|
12
12
|
* @typeParam TSelected - The selected subset of fields
|
|
13
13
|
*/
|
|
14
|
-
export declare class PlaceholderHandle<TEntity extends object = object, TSelected = TEntity>
|
|
14
|
+
export declare class PlaceholderHandle<TEntity extends object = object, TSelected = TEntity> {
|
|
15
15
|
private readonly parentEntityType;
|
|
16
16
|
private readonly parentEntityId;
|
|
17
17
|
private readonly fieldName;
|
|
@@ -20,26 +20,12 @@ export declare class PlaceholderHandle<TEntity extends object = object, TSelecte
|
|
|
20
20
|
private readonly dispatcher;
|
|
21
21
|
/** Runtime brand symbols for validation */
|
|
22
22
|
readonly __brands?: Set<symbol>;
|
|
23
|
-
/** Type brand for schema - placeholder at runtime */
|
|
24
|
-
readonly __schema: Record<string, object>;
|
|
25
23
|
/** Placeholder ID for this handle */
|
|
26
24
|
private readonly placeholderId;
|
|
27
|
-
readonly $fields: SelectedEntityFields<TEntity, TSelected>;
|
|
28
|
-
readonly $data: TSelected | null;
|
|
29
|
-
readonly $isDirty: boolean;
|
|
30
|
-
readonly $persistedId: null;
|
|
31
|
-
readonly $isNew: boolean;
|
|
32
|
-
readonly $errors: readonly FieldError[];
|
|
33
|
-
readonly $hasError: boolean;
|
|
34
|
-
$addError: (error: ErrorInput) => void;
|
|
35
|
-
$clearErrors: () => void;
|
|
36
|
-
$clearAllErrors: () => void;
|
|
37
|
-
$on: <E extends AfterEventTypes>(eventType: E, listener: EventListener<EventTypeMap[E]>) => Unsubscribe;
|
|
38
|
-
$intercept: <E extends BeforeEventTypes>(eventType: E, interceptor: Interceptor<EventTypeMap[E]>) => Unsubscribe;
|
|
39
|
-
$onPersisted: (listener: EventListener<EntityPersistedEvent>) => Unsubscribe;
|
|
40
|
-
$interceptPersisting: (interceptor: Interceptor<EntityPersistingEvent>) => Unsubscribe;
|
|
41
25
|
private constructor();
|
|
42
|
-
static create<TEntity extends object = object, TSelected = TEntity>(parentEntityType: string, parentEntityId: string, fieldName: string, targetType: string, store: SnapshotStore, dispatcher: ActionDispatcher, brands?: Set<symbol>):
|
|
26
|
+
static create<TEntity extends object = object, TSelected = TEntity>(parentEntityType: string, parentEntityId: string, fieldName: string, targetType: string, store: SnapshotStore, dispatcher: ActionDispatcher, brands?: Set<symbol>): EntityAccessor<TEntity, TSelected>;
|
|
27
|
+
static createRaw<TEntity extends object = object, TSelected = TEntity>(parentEntityType: string, parentEntityId: string, fieldName: string, targetType: string, store: SnapshotStore, dispatcher: ActionDispatcher, brands?: Set<symbol>): PlaceholderHandle<TEntity, TSelected>;
|
|
28
|
+
static wrapProxy<TEntity extends object, TSelected>(handle: PlaceholderHandle<TEntity, TSelected>): EntityAccessor<TEntity, TSelected>;
|
|
43
29
|
/**
|
|
44
30
|
* Gets the placeholder ID.
|
|
45
31
|
*/
|
|
@@ -52,6 +38,10 @@ export declare class PlaceholderHandle<TEntity extends object = object, TSelecte
|
|
|
52
38
|
* Placeholder is dirty if it has any data.
|
|
53
39
|
*/
|
|
54
40
|
get isDirty(): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Placeholder entities are never being persisted.
|
|
43
|
+
*/
|
|
44
|
+
get isPersisting(): boolean;
|
|
55
45
|
/**
|
|
56
46
|
* Placeholder entities are always new (not yet persisted).
|
|
57
47
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlaceholderHandle.d.ts","sourceRoot":"","sources":["../../src/handles/PlaceholderHandle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAE9D,OAAO,EAEN,KAAK,
|
|
1
|
+
{"version":3,"file":"PlaceholderHandle.d.ts","sourceRoot":"","sources":["../../src/handles/PlaceholderHandle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAE9D,OAAO,EAEN,KAAK,oBAAoB,EAEzB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,KAAK,EACX,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,oBAAoB,EACpB,qBAAqB,EACrB,MAAM,oBAAoB,CAAA;AAG3B;;;;;;;GAOG;AACH,qBAAa,iBAAiB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,SAAS,GAAG,OAAO;IAQjF,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAZ5B,2CAA2C;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAE/B,qCAAqC;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IAEtC,OAAO;IAaP,MAAM,CAAC,MAAM,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,SAAS,GAAG,OAAO,EACjE,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,gBAAgB,EAC5B,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAClB,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC;IAIrC,MAAM,CAAC,SAAS,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,SAAS,GAAG,OAAO,EACpE,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,gBAAgB,EAC5B,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAClB,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC;IAIxC,MAAM,CAAC,SAAS,CAAC,OAAO,SAAS,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC;IAItI;;OAEG;IACH,IAAI,EAAE,IAAI,MAAM,CAEf;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,SAAS,GAAG,IAAI,CAU3B;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAOrB;IAED;;OAEG;IACH,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,IAAI,CAEtB;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAMrD;IAED;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAwFpC;;OAEG;IACH,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED;;OAEG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;;OAGG;IACH,IAAI,MAAM,IAAI,SAAS,UAAU,EAAE,CAElC;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAIlC;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB;;OAEG;IACH,cAAc,IAAI,IAAI;IAOtB;;OAEG;IACH,EAAE,CAAC,CAAC,SAAS,eAAe,EAC3B,UAAU,EAAE,CAAC,EACb,SAAS,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GACvC,WAAW;IAId;;OAEG;IACH,SAAS,CAAC,CAAC,SAAS,gBAAgB,EACnC,UAAU,EAAE,CAAC,EACb,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GACxC,WAAW;IAId;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,aAAa,CAAC,oBAAoB,CAAC,GAAG,WAAW;IAIxE;;OAEG;IACH,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC,qBAAqB,CAAC,GAAG,WAAW;CAIlF"}
|
|
@@ -8,50 +8,22 @@
|
|
|
8
8
|
* The $ prefix convention allows handle properties to avoid collision with entity field names:
|
|
9
9
|
* - `entity.title` → field access (returns FieldHandle)
|
|
10
10
|
* - `entity.$isDirty` → handle property
|
|
11
|
+
* - `entity.id` → entity ID (special case, always passes through)
|
|
11
12
|
*/
|
|
12
|
-
/**
|
|
13
|
-
* Known properties on EntityHandle that should NOT be treated as field access.
|
|
14
|
-
* Properties like `fields`, `data`, `errors` are NOT included - use $ prefix for those.
|
|
15
|
-
*/
|
|
16
|
-
export declare const ENTITY_HANDLE_PROPERTIES: Set<string | symbol>;
|
|
17
|
-
/**
|
|
18
|
-
* Known properties on HasOneHandle that should NOT be treated as field access.
|
|
19
|
-
* Properties like `fields`, `entity`, `errors`, `state` are NOT included - they require $ prefix.
|
|
20
|
-
*/
|
|
21
|
-
export declare const HAS_ONE_HANDLE_PROPERTIES: Set<string | symbol>;
|
|
22
|
-
/**
|
|
23
|
-
* All properties on FieldHandle (no field access proxy needed, just $ aliasing).
|
|
24
|
-
*/
|
|
25
|
-
export declare const FIELD_HANDLE_PROPERTIES: Set<string | symbol>;
|
|
26
|
-
/**
|
|
27
|
-
* All properties on HasManyListHandle (no field access proxy needed, just $ aliasing).
|
|
28
|
-
*/
|
|
29
|
-
export declare const HAS_MANY_HANDLE_PROPERTIES: Set<string | symbol>;
|
|
30
|
-
/**
|
|
31
|
-
* All properties on PlaceholderHandle (no field access proxy needed, just $ aliasing).
|
|
32
|
-
*/
|
|
33
|
-
export declare const PLACEHOLDER_HANDLE_PROPERTIES: Set<string | symbol>;
|
|
34
|
-
/**
|
|
35
|
-
* Configuration for creating a handle proxy.
|
|
36
|
-
*/
|
|
37
|
-
export interface HandleProxyConfig<T extends object> {
|
|
38
|
-
/** Set of property names that should pass through to the handle */
|
|
39
|
-
knownProperties: Set<string | symbol>;
|
|
40
|
-
/** Function to get the fields proxy from the handle */
|
|
41
|
-
getFields: (target: T) => object;
|
|
42
|
-
}
|
|
43
13
|
/**
|
|
44
14
|
* Creates a proxy around a handle that supports direct field access.
|
|
45
15
|
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
16
|
+
* Resolution order:
|
|
17
|
+
* 1. Symbols → pass through to handle
|
|
18
|
+
* 2. `id` / FIELD_REF_META → pass through to handle
|
|
19
|
+
* 3. `$xxx` → strip `$`, access handle property
|
|
20
|
+
* 4. Everything else → field access (returns FieldHandle/HasOneHandle/HasManyListHandle)
|
|
49
21
|
*
|
|
50
22
|
* @param handle - The handle instance to wrap
|
|
51
|
-
* @param
|
|
23
|
+
* @param getFields - Function to get the fields object from the handle
|
|
52
24
|
* @returns Proxied handle with direct field access support
|
|
53
25
|
*/
|
|
54
|
-
export declare function createHandleProxy<T extends object>(handle: T,
|
|
26
|
+
export declare function createHandleProxy<T extends object, TResult = T>(handle: T, getFields: (target: T) => object): TResult;
|
|
55
27
|
/**
|
|
56
28
|
* Creates a simple proxy that only handles $ prefix aliasing.
|
|
57
29
|
* Used for handles that don't need field access proxying (FieldHandle, HasManyListHandle, PlaceholderHandle).
|
|
@@ -62,5 +34,5 @@ export declare function createHandleProxy<T extends object>(handle: T, config: H
|
|
|
62
34
|
* @param handle - The handle instance to wrap
|
|
63
35
|
* @returns Proxied handle with $ alias support
|
|
64
36
|
*/
|
|
65
|
-
export declare function createAliasProxy<T extends object>(handle: T):
|
|
37
|
+
export declare function createAliasProxy<T extends object, TResult = T>(handle: T): TResult;
|
|
66
38
|
//# sourceMappingURL=proxyFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxyFactory.d.ts","sourceRoot":"","sources":["../../src/handles/proxyFactory.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"proxyFactory.d.ts","sourceRoot":"","sources":["../../src/handles/proxyFactory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAeH;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,GAAG,CAAC,EAC9D,MAAM,EAAE,CAAC,EACT,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,GAC9B,OAAO,CAqCT;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CA2BlF"}
|