breeze-client 2.2.1 → 3.0.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/LICENSE +1 -1
- package/README.md +83 -63
- package/adapters/abstract-data-service-adapter.d.ts +120 -0
- package/adapters/abstract-data-service-adapter.js +395 -0
- package/adapters/abstract-data-service-adapter.js.map +1 -0
- package/adapters/adapter-ajax-fetch.d.ts +12 -0
- package/adapters/adapter-ajax-fetch.js +13 -0
- package/adapters/adapter-ajax-fetch.js.map +1 -0
- package/{adapter-ajax-post → adapters}/adapter-ajax-post.d.ts +40 -36
- package/{fesm2022/breeze-client-adapter-ajax-post.mjs → adapters/adapter-ajax-post.js} +80 -82
- package/adapters/adapter-ajax-post.js.map +1 -0
- package/{adapter-ajax-fetch → adapters}/adapter-core.d.ts +4 -4
- package/{fesm2022/breeze-client-adapter-uri-builder-json.mjs → adapters/adapter-core.js} +48 -91
- package/adapters/adapter-core.js.map +1 -0
- package/adapters/adapter-data-service-webapi.d.ts +9 -0
- package/{fesm2022/breeze-client-adapter-data-service-webapi.mjs → adapters/adapter-data-service-webapi.js} +105 -107
- package/adapters/adapter-data-service-webapi.js.map +1 -0
- package/adapters/adapter-model-library-backing-store.d.ts +32 -0
- package/adapters/adapter-model-library-backing-store.js +321 -0
- package/adapters/adapter-model-library-backing-store.js.map +1 -0
- package/adapters/adapter-uri-builder-json.d.ts +11 -0
- package/adapters/adapter-uri-builder-json.js +40 -0
- package/adapters/adapter-uri-builder-json.js.map +1 -0
- package/adapters/http.d.ts +52 -0
- package/adapters/http.js +202 -0
- package/adapters/http.js.map +1 -0
- package/angular/adapter-angular-httpclient.d.ts +21 -0
- package/angular/adapter-angular-httpclient.js +70 -0
- package/angular/adapter-angular-httpclient.js.map +1 -0
- package/breeze.d.ts +215 -0
- package/breeze.js +141 -0
- package/breeze.js.map +1 -0
- package/config/config.d.ts +212 -0
- package/config/config.js +392 -0
- package/config/config.js.map +1 -0
- package/config/configure.d.ts +66 -0
- package/config/configure.js +46 -0
- package/config/configure.js.map +1 -0
- package/config/default-adapters.d.ts +1 -0
- package/config/default-adapters.js +40 -0
- package/config/default-adapters.js.map +1 -0
- package/config/interface-registry.d.ts +191 -0
- package/config/interface-registry.js +5 -0
- package/config/interface-registry.js.map +1 -0
- package/{src → core}/assert-param.d.ts +52 -60
- package/core/assert-param.js +390 -0
- package/core/assert-param.js.map +1 -0
- package/core/core.d.ts +285 -0
- package/core/core.js +772 -0
- package/core/core.js.map +1 -0
- package/core/enum.d.ts +116 -0
- package/core/enum.js +167 -0
- package/core/enum.js.map +1 -0
- package/core/event.d.ts +169 -0
- package/core/event.js +338 -0
- package/core/event.js.map +1 -0
- package/entity/array.d.ts +3 -0
- package/entity/array.js +4 -0
- package/entity/array.js.map +1 -0
- package/entity/complex-array.d.ts +17 -0
- package/entity/complex-array.js +104 -0
- package/entity/complex-array.js.map +1 -0
- package/entity/default-property-interceptor.d.ts +1 -0
- package/entity/default-property-interceptor.js +496 -0
- package/entity/default-property-interceptor.js.map +1 -0
- package/{src → entity}/entity-action.d.ts +36 -42
- package/entity/entity-action.js +45 -0
- package/entity/entity-action.js.map +1 -0
- package/entity/entity-aspect.d.ts +457 -0
- package/entity/entity-aspect.js +1262 -0
- package/entity/entity-aspect.js.map +1 -0
- package/entity/entity-base.d.ts +55 -0
- package/entity/entity-base.js +41 -0
- package/entity/entity-base.js.map +1 -0
- package/entity/entity-group.d.ts +1 -0
- package/entity/entity-group.js +224 -0
- package/entity/entity-group.js.map +1 -0
- package/entity/entity-key.d.ts +95 -0
- package/entity/entity-key.js +189 -0
- package/entity/entity-key.js.map +1 -0
- package/{src → entity}/entity-state.d.ts +112 -84
- package/entity/entity-state.js +135 -0
- package/entity/entity-state.js.map +1 -0
- package/entity/key-generator.d.ts +57 -0
- package/entity/key-generator.js +155 -0
- package/entity/key-generator.js.map +1 -0
- package/entity/observable-array.d.ts +25 -0
- package/entity/observable-array.js +230 -0
- package/entity/observable-array.js.map +1 -0
- package/entity/primitive-array.d.ts +12 -0
- package/entity/primitive-array.js +71 -0
- package/entity/primitive-array.js.map +1 -0
- package/entity/relation-array.d.ts +24 -0
- package/entity/relation-array.js +176 -0
- package/entity/relation-array.js.map +1 -0
- package/entity/unattached-children-map.d.ts +1 -0
- package/entity/unattached-children-map.js +105 -0
- package/entity/unattached-children-map.js.map +1 -0
- package/generate-entity-classes.js +1176 -0
- package/manager/entity-manager.d.ts +801 -0
- package/manager/entity-manager.js +2395 -0
- package/manager/entity-manager.js.map +1 -0
- package/{src → manager}/save-options.d.ts +48 -42
- package/manager/save-options.js +51 -0
- package/manager/save-options.js.map +1 -0
- package/{src → metadata}/data-service.d.ts +229 -184
- package/metadata/data-service.js +246 -0
- package/metadata/data-service.js.map +1 -0
- package/metadata/data-type.d.ts +122 -0
- package/metadata/data-type.js +465 -0
- package/metadata/data-type.js.map +1 -0
- package/metadata/entity-metadata.d.ts +1193 -0
- package/metadata/entity-metadata.js +2502 -0
- package/metadata/entity-metadata.js.map +1 -0
- package/{src → metadata}/local-query-comparison-options.d.ts +65 -59
- package/metadata/local-query-comparison-options.js +69 -0
- package/metadata/local-query-comparison-options.js.map +1 -0
- package/{src → metadata}/naming-convention.d.ts +75 -72
- package/metadata/naming-convention.js +97 -0
- package/metadata/naming-convention.js.map +1 -0
- package/mixins/mixin-get-entity-graph.d.ts +63 -0
- package/{fesm2022/breeze-client-mixin-get-entity-graph.mjs → mixins/mixin-get-entity-graph.js} +331 -253
- package/mixins/mixin-get-entity-graph.js.map +1 -0
- package/mixins/mixin-save-queuing.d.ts +98 -0
- package/{fesm2022/breeze-client-mixin-save-queuing.mjs → mixins/mixin-save-queuing.js} +493 -365
- package/mixins/mixin-save-queuing.js.map +1 -0
- package/package.json +62 -93
- package/query/entity-query.d.ts +521 -0
- package/query/entity-query.js +1149 -0
- package/query/entity-query.js.map +1 -0
- package/{src → query}/mapping-context.d.ts +44 -46
- package/query/mapping-context.js +412 -0
- package/query/mapping-context.js.map +1 -0
- package/query/predicate.d.ts +394 -0
- package/query/predicate.js +1294 -0
- package/query/predicate.js.map +1 -0
- package/query/property-path.d.ts +252 -0
- package/query/property-path.js +2 -0
- package/query/property-path.js.map +1 -0
- package/{src → query}/query-options.d.ts +143 -119
- package/query/query-options.js +180 -0
- package/query/query-options.js.map +1 -0
- package/rxjs/breeze-rxjs.d.ts +72 -0
- package/rxjs/breeze-rxjs.js +117 -0
- package/rxjs/breeze-rxjs.js.map +1 -0
- package/validation/validate.d.ts +583 -0
- package/validation/validate.js +961 -0
- package/validation/validate.js.map +1 -0
- package/{src → validation}/validation-options.d.ts +67 -63
- package/validation/validation-options.js +70 -0
- package/validation/validation-options.js.map +1 -0
- package/adapter-ajax-angularjs/adapter-ajax-angularjs.d.ts +0 -17
- package/adapter-ajax-angularjs/adapter-core.d.ts +0 -4
- package/adapter-ajax-angularjs/index.d.ts +0 -5
- package/adapter-ajax-fetch/adapter-ajax-fetch.d.ts +0 -18
- package/adapter-ajax-fetch/index.d.ts +0 -5
- package/adapter-ajax-httpclient/adapter-ajax-httpclient.d.ts +0 -13
- package/adapter-ajax-httpclient/adapter-core.d.ts +0 -4
- package/adapter-ajax-httpclient/index.d.ts +0 -5
- package/adapter-ajax-jquery/adapter-ajax-jquery.d.ts +0 -15
- package/adapter-ajax-jquery/index.d.ts +0 -5
- package/adapter-ajax-post/index.d.ts +0 -5
- package/adapter-data-service-odata/adapter-core.d.ts +0 -4
- package/adapter-data-service-odata/adapter-data-service-odata.d.ts +0 -17
- package/adapter-data-service-odata/index.d.ts +0 -5
- package/adapter-data-service-webapi/adapter-data-service-webapi.d.ts +0 -15
- package/adapter-data-service-webapi/index.d.ts +0 -5
- package/adapter-model-library-backing-store/adapter-model-library-backing-store.d.ts +0 -10
- package/adapter-model-library-backing-store/index.d.ts +0 -5
- package/adapter-model-library-ko/adapter-model-library-ko.d.ts +0 -10
- package/adapter-model-library-ko/index.d.ts +0 -5
- package/adapter-uri-builder-json/adapter-core.d.ts +0 -4
- package/adapter-uri-builder-json/adapter-uri-builder-json.d.ts +0 -8
- package/adapter-uri-builder-json/index.d.ts +0 -5
- package/adapter-uri-builder-odata/adapter-core.d.ts +0 -4
- package/adapter-uri-builder-odata/adapter-uri-builder-odata.d.ts +0 -8
- package/adapter-uri-builder-odata/index.d.ts +0 -5
- package/esm2022/adapter-ajax-angularjs/adapter-ajax-angularjs.mjs +0 -135
- package/esm2022/adapter-ajax-angularjs/adapter-core.mjs +0 -49
- package/esm2022/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.mjs +0 -5
- package/esm2022/adapter-ajax-fetch/adapter-ajax-fetch.mjs +0 -135
- package/esm2022/adapter-ajax-fetch/adapter-core.mjs +0 -49
- package/esm2022/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.mjs +0 -5
- package/esm2022/adapter-ajax-httpclient/adapter-ajax-httpclient.mjs +0 -139
- package/esm2022/adapter-ajax-httpclient/adapter-core.mjs +0 -49
- package/esm2022/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.mjs +0 -5
- package/esm2022/adapter-ajax-jquery/adapter-ajax-jquery.mjs +0 -107
- package/esm2022/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.mjs +0 -5
- package/esm2022/adapter-ajax-post/adapter-ajax-post.mjs +0 -77
- package/esm2022/adapter-ajax-post/breeze-client-adapter-ajax-post.mjs +0 -5
- package/esm2022/adapter-data-service-odata/adapter-core.mjs +0 -49
- package/esm2022/adapter-data-service-odata/adapter-data-service-odata.mjs +0 -461
- package/esm2022/adapter-data-service-odata/breeze-client-adapter-data-service-odata.mjs +0 -5
- package/esm2022/adapter-data-service-webapi/adapter-data-service-webapi.mjs +0 -100
- package/esm2022/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.mjs +0 -5
- package/esm2022/adapter-model-library-backing-store/adapter-model-library-backing-store.mjs +0 -269
- package/esm2022/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.mjs +0 -5
- package/esm2022/adapter-model-library-ko/adapter-model-library-ko.mjs +0 -241
- package/esm2022/adapter-model-library-ko/breeze-client-adapter-model-library-ko.mjs +0 -5
- package/esm2022/adapter-uri-builder-json/adapter-core.mjs +0 -49
- package/esm2022/adapter-uri-builder-json/adapter-uri-builder-json.mjs +0 -37
- package/esm2022/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.mjs +0 -5
- package/esm2022/adapter-uri-builder-odata/adapter-core.mjs +0 -49
- package/esm2022/adapter-uri-builder-odata/adapter-uri-builder-odata.mjs +0 -191
- package/esm2022/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.mjs +0 -5
- package/esm2022/breeze-client.mjs +0 -5
- package/esm2022/index.mjs +0 -2
- package/esm2022/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.mjs +0 -5
- package/esm2022/mixin-get-entity-graph/mixin-get-entity-graph.mjs +0 -269
- package/esm2022/mixin-save-queuing/breeze-client-mixin-save-queuing.mjs +0 -5
- package/esm2022/mixin-save-queuing/mixin-save-queuing.mjs +0 -421
- package/esm2022/src/abstract-data-service-adapter.mjs +0 -325
- package/esm2022/src/array.mjs +0 -4
- package/esm2022/src/assert-param.mjs +0 -330
- package/esm2022/src/breeze.mjs +0 -85
- package/esm2022/src/complex-array.mjs +0 -117
- package/esm2022/src/config.mjs +0 -232
- package/esm2022/src/core.mjs +0 -712
- package/esm2022/src/csdl-metadata-parser.mjs +0 -385
- package/esm2022/src/data-service.mjs +0 -221
- package/esm2022/src/data-type.mjs +0 -510
- package/esm2022/src/default-property-interceptor.mjs +0 -460
- package/esm2022/src/entity-action.mjs +0 -45
- package/esm2022/src/entity-aspect.mjs +0 -897
- package/esm2022/src/entity-group.mjs +0 -192
- package/esm2022/src/entity-key.mjs +0 -125
- package/esm2022/src/entity-manager.mjs +0 -2163
- package/esm2022/src/entity-metadata.mjs +0 -2242
- package/esm2022/src/entity-query.mjs +0 -1024
- package/esm2022/src/entity-state.mjs +0 -107
- package/esm2022/src/enum.mjs +0 -143
- package/esm2022/src/event.mjs +0 -264
- package/esm2022/src/interface-registry.mjs +0 -39
- package/esm2022/src/key-generator.mjs +0 -110
- package/esm2022/src/local-query-comparison-options.mjs +0 -65
- package/esm2022/src/mapping-context.mjs +0 -411
- package/esm2022/src/naming-convention.mjs +0 -92
- package/esm2022/src/observable-array.mjs +0 -183
- package/esm2022/src/predicate.mjs +0 -1259
- package/esm2022/src/primitive-array.mjs +0 -85
- package/esm2022/src/query-options.mjs +0 -152
- package/esm2022/src/relation-array.mjs +0 -173
- package/esm2022/src/save-options.mjs +0 -41
- package/esm2022/src/unattached-children-map.mjs +0 -56
- package/esm2022/src/validate.mjs +0 -995
- package/esm2022/src/validation-options.mjs +0 -64
- package/fesm2022/breeze-client-adapter-ajax-angularjs.mjs +0 -190
- package/fesm2022/breeze-client-adapter-ajax-angularjs.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-ajax-fetch.mjs +0 -190
- package/fesm2022/breeze-client-adapter-ajax-fetch.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-ajax-httpclient.mjs +0 -194
- package/fesm2022/breeze-client-adapter-ajax-httpclient.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-ajax-jquery.mjs +0 -114
- package/fesm2022/breeze-client-adapter-ajax-jquery.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-ajax-post.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-data-service-odata.mjs +0 -516
- package/fesm2022/breeze-client-adapter-data-service-odata.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-data-service-webapi.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-model-library-backing-store.mjs +0 -276
- package/fesm2022/breeze-client-adapter-model-library-backing-store.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-model-library-ko.mjs +0 -248
- package/fesm2022/breeze-client-adapter-model-library-ko.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-uri-builder-json.mjs.map +0 -1
- package/fesm2022/breeze-client-adapter-uri-builder-odata.mjs +0 -246
- package/fesm2022/breeze-client-adapter-uri-builder-odata.mjs.map +0 -1
- package/fesm2022/breeze-client-mixin-get-entity-graph.mjs.map +0 -1
- package/fesm2022/breeze-client-mixin-save-queuing.mjs.map +0 -1
- package/fesm2022/breeze-client.mjs +0 -14144
- package/fesm2022/breeze-client.mjs.map +0 -1
- package/index.d.ts +0 -1
- package/mixin-get-entity-graph/index.d.ts +0 -5
- package/mixin-get-entity-graph/mixin-get-entity-graph.d.ts +0 -31
- package/mixin-save-queuing/index.d.ts +0 -5
- package/mixin-save-queuing/mixin-save-queuing.d.ts +0 -32
- package/src/abstract-data-service-adapter.d.ts +0 -84
- package/src/array.d.ts +0 -3
- package/src/breeze.d.ts +0 -139
- package/src/complex-array.d.ts +0 -13
- package/src/config.d.ts +0 -104
- package/src/core.d.ts +0 -164
- package/src/csdl-metadata-parser.d.ts +0 -7
- package/src/data-type.d.ts +0 -89
- package/src/default-property-interceptor.d.ts +0 -4
- package/src/entity-aspect.d.ts +0 -332
- package/src/entity-group.d.ts +0 -28
- package/src/entity-key.d.ts +0 -77
- package/src/entity-manager.d.ts +0 -680
- package/src/entity-metadata.d.ts +0 -988
- package/src/entity-query.d.ts +0 -444
- package/src/enum.d.ts +0 -100
- package/src/event.d.ts +0 -142
- package/src/interface-registry.d.ts +0 -150
- package/src/key-generator.d.ts +0 -12
- package/src/observable-array.d.ts +0 -52
- package/src/predicate.d.ts +0 -376
- package/src/primitive-array.d.ts +0 -7
- package/src/relation-array.d.ts +0 -18
- package/src/unattached-children-map.d.ts +0 -19
- package/src/validate.d.ts +0 -650
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { EntityType, MetadataStore } from '../metadata/entity-metadata.js';
|
|
2
|
+
import type { Entity } from './entity-aspect.js';
|
|
3
|
+
/**
|
|
4
|
+
An EntityKey is an object that represents the unique identity of an entity. EntityKey's are immutable.
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
*/
|
|
8
|
+
export declare class EntityKey {
|
|
9
|
+
/** The 'EntityType' that this is a key for. __Read Only__ */
|
|
10
|
+
entityType: EntityType;
|
|
11
|
+
/** An array of the values for this key. This will usually only have a single element,
|
|
12
|
+
unless the entity type has a multipart key. __Read Only__ */
|
|
13
|
+
values: any[];
|
|
14
|
+
/**
|
|
15
|
+
Constructs a new EntityKey. Each entity within an EntityManager will have a unique EntityKey.
|
|
16
|
+
```ts
|
|
17
|
+
// assume Employee is registered with the MetadataStore
|
|
18
|
+
const entityKey = new EntityKey(Employee, 1);
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
EntityKey's may also be found by calling EntityAspect.getKey()
|
|
22
|
+
```ts
|
|
23
|
+
// assume employee1 is an existing Employee entity
|
|
24
|
+
const empKey = employee1.entityAspect.getKey();
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
A key of more than one property is clearest given by name, in any order:
|
|
28
|
+
```ts
|
|
29
|
+
const detailKey = new EntityKey(OrderDetail, { orderID: 10248, productID: 11 });
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
or as an array, in the order of the type's {@link EntityType.keyProperties}: the order of the
|
|
33
|
+
key's definition on the server - `HasKey(od => new { od.OrderID, od.ProductID })` - which a
|
|
34
|
+
generated entity class states in its doc comment, as `Key: orderID, productID`.
|
|
35
|
+
```ts
|
|
36
|
+
const sameKey = new EntityKey(OrderDetail, [10248, 11]);
|
|
37
|
+
```
|
|
38
|
+
A wrong order is not an error - it is a valid key for another row - which is why the named form
|
|
39
|
+
is better for these.
|
|
40
|
+
@param entityType - The {@link EntityType} of the entity, or a class registered for it with
|
|
41
|
+
{@link MetadataStore.registerEntityTypeCtor}.
|
|
42
|
+
@param keyValues - The key's value; for a key of more than one property, an object of values by
|
|
43
|
+
property name, or an array in key order. A named value that is not part of the key, or a key
|
|
44
|
+
property with no value, throws.
|
|
45
|
+
*/
|
|
46
|
+
constructor(entityType: EntityType | (new () => Entity), keyValues: any);
|
|
47
|
+
/** Returns the plain form of this key - `{ entityType, values }`, with the entity type's qualified
|
|
48
|
+
name - which `JSON.stringify` uses and {@link EntityKey.fromJSON} turns back into a key. Breeze
|
|
49
|
+
uses it to record temporary keys in an {@link EntityManager.exportEntities} bundle. */
|
|
50
|
+
toJSON(): {
|
|
51
|
+
/** The qualified name of the key's entity type, such as `"Customer:#Northwind.Models"`. */
|
|
52
|
+
entityType: string;
|
|
53
|
+
/** The key's values, one per key property. */
|
|
54
|
+
values: any[];
|
|
55
|
+
};
|
|
56
|
+
/** Recreates a key from the output of {@link EntityKey.toJSON}, looking its entity type up in
|
|
57
|
+
`metadataStore`. Throws if the type is not there. Used by {@link EntityManager.importEntities}. */
|
|
58
|
+
static fromJSON(json: any, metadataStore: MetadataStore): EntityKey;
|
|
59
|
+
/**
|
|
60
|
+
Used to compare EntityKeys are determine if they refer to the same Entity.
|
|
61
|
+
There is also an static version of 'equals' with the same functionality.
|
|
62
|
+
|
|
63
|
+
```ts
|
|
64
|
+
// assume Employee is registered with the MetadataStore
|
|
65
|
+
const empKey1 = new EntityKey(Employee, 1);
|
|
66
|
+
// assume employee1 is an existing Employee entity
|
|
67
|
+
const empKey2 = employee1.entityAspect.getKey();
|
|
68
|
+
if (empKey1.equals(empKey2)) {
|
|
69
|
+
// do something ...
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
*/
|
|
73
|
+
equals(entityKey: EntityKey): boolean;
|
|
74
|
+
/** Returns this key as a string: the entity type's qualified name, a hyphen, and the key values
|
|
75
|
+
joined by `:::` - such as `"Order:#Northwind.Models-10248"`. Given `altEntityType`, that type's
|
|
76
|
+
name is used instead. Breeze uses this form in error messages and as the property names of an
|
|
77
|
+
{@link ITempKeyMap}. */
|
|
78
|
+
toString(altEntityType?: EntityType): string;
|
|
79
|
+
/**
|
|
80
|
+
Used to compare EntityKeys are determine if they refer to the same Entity.
|
|
81
|
+
There is also an instance version of 'equals' with the same functionality.
|
|
82
|
+
```ts
|
|
83
|
+
// assume Employee is registered with the MetadataStore
|
|
84
|
+
const empKey1 = new EntityKey(Employee, 1);
|
|
85
|
+
// assume employee1 is an existing Employee entity
|
|
86
|
+
const empKey2 = employee1.entityAspect.getKey();
|
|
87
|
+
if (EntityKey.equals(empKey1, empKey2)) {
|
|
88
|
+
// do something ...
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
*/
|
|
92
|
+
static equals(k1: EntityKey, k2: EntityKey): boolean;
|
|
93
|
+
/** hidden */
|
|
94
|
+
static createKeyString(keyValues: any[]): string;
|
|
95
|
+
}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import { core } from '../core/core.js';
|
|
2
|
+
import { paramError } from '../core/assert-param.js';
|
|
3
|
+
import { EntityType, entityTypeForCtor } from '../metadata/entity-metadata.js';
|
|
4
|
+
import { DataType } from '../metadata/data-type.js';
|
|
5
|
+
/**
|
|
6
|
+
An EntityKey is an object that represents the unique identity of an entity. EntityKey's are immutable.
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
*/
|
|
10
|
+
export class EntityKey {
|
|
11
|
+
/** @hidden @internal */
|
|
12
|
+
static ENTITY_KEY_DELIMITER = ":::";
|
|
13
|
+
/** The 'EntityType' that this is a key for. __Read Only__ */
|
|
14
|
+
entityType;
|
|
15
|
+
/** An array of the values for this key. This will usually only have a single element,
|
|
16
|
+
unless the entity type has a multipart key. __Read Only__ */
|
|
17
|
+
values;
|
|
18
|
+
/** @hidden @internal */
|
|
19
|
+
_keyInGroup;
|
|
20
|
+
/** @hidden @internal */
|
|
21
|
+
_subtypes;
|
|
22
|
+
/**
|
|
23
|
+
Constructs a new EntityKey. Each entity within an EntityManager will have a unique EntityKey.
|
|
24
|
+
```ts
|
|
25
|
+
// assume Employee is registered with the MetadataStore
|
|
26
|
+
const entityKey = new EntityKey(Employee, 1);
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
EntityKey's may also be found by calling EntityAspect.getKey()
|
|
30
|
+
```ts
|
|
31
|
+
// assume employee1 is an existing Employee entity
|
|
32
|
+
const empKey = employee1.entityAspect.getKey();
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
A key of more than one property is clearest given by name, in any order:
|
|
36
|
+
```ts
|
|
37
|
+
const detailKey = new EntityKey(OrderDetail, { orderID: 10248, productID: 11 });
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
or as an array, in the order of the type's {@link EntityType.keyProperties}: the order of the
|
|
41
|
+
key's definition on the server - `HasKey(od => new { od.OrderID, od.ProductID })` - which a
|
|
42
|
+
generated entity class states in its doc comment, as `Key: orderID, productID`.
|
|
43
|
+
```ts
|
|
44
|
+
const sameKey = new EntityKey(OrderDetail, [10248, 11]);
|
|
45
|
+
```
|
|
46
|
+
A wrong order is not an error - it is a valid key for another row - which is why the named form
|
|
47
|
+
is better for these.
|
|
48
|
+
@param entityType - The {@link EntityType} of the entity, or a class registered for it with
|
|
49
|
+
{@link MetadataStore.registerEntityTypeCtor}.
|
|
50
|
+
@param keyValues - The key's value; for a key of more than one property, an object of values by
|
|
51
|
+
property name, or an array in key order. A named value that is not part of the key, or a key
|
|
52
|
+
property with no value, throws.
|
|
53
|
+
*/
|
|
54
|
+
constructor(entityType, keyValues) {
|
|
55
|
+
// A class stands for its registered type. Checked by typeof first, so the EntityType that
|
|
56
|
+
// Breeze itself always passes costs one comparison.
|
|
57
|
+
if (typeof entityType === "function")
|
|
58
|
+
entityType = entityTypeForCtor(entityType);
|
|
59
|
+
// Inline, not assertParam: an EntityKey is built for every entity and again for every
|
|
60
|
+
// foreign key the relationship fixup resolves. Same wording.
|
|
61
|
+
if (!(entityType instanceof EntityType)) {
|
|
62
|
+
throw paramError('entityType', "must be an instance of 'EntityType'");
|
|
63
|
+
}
|
|
64
|
+
// Only types that take part in an inheritance hierarchy need this, and getSelfAndSubtypes
|
|
65
|
+
// allocates an array and walks the hierarchy to find that out. Guarding on `subtypes` keeps
|
|
66
|
+
// the common case - a type with no subtypes, where the walk can only return [this] -
|
|
67
|
+
// allocation-free. `subtypes` is filled while metadata is built and not touched after.
|
|
68
|
+
if (entityType.subtypes.length > 0) {
|
|
69
|
+
let subtypes = entityType.getSelfAndSubtypes();
|
|
70
|
+
if (subtypes.length > 1) {
|
|
71
|
+
this._subtypes = subtypes.filter(function (st) {
|
|
72
|
+
return st.isAbstract === false;
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (!Array.isArray(keyValues)) {
|
|
77
|
+
keyValues = isPlainObject(keyValues) ? keyValuesByName(entityType, keyValues) : [keyValues];
|
|
78
|
+
}
|
|
79
|
+
this.entityType = entityType;
|
|
80
|
+
entityType.keyProperties.forEach(function (kp, i) {
|
|
81
|
+
// insure that guid keys are comparable.
|
|
82
|
+
if (kp.dataType === DataType.Guid) {
|
|
83
|
+
keyValues[i] = keyValues[i] && keyValues[i].toLowerCase ? keyValues[i].toLowerCase() : keyValues[i];
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
this.values = keyValues;
|
|
87
|
+
this._keyInGroup = EntityKey.createKeyString(keyValues);
|
|
88
|
+
}
|
|
89
|
+
/** Returns the plain form of this key - `{ entityType, values }`, with the entity type's qualified
|
|
90
|
+
name - which `JSON.stringify` uses and {@link EntityKey.fromJSON} turns back into a key. Breeze
|
|
91
|
+
uses it to record temporary keys in an {@link EntityManager.exportEntities} bundle. */
|
|
92
|
+
toJSON() {
|
|
93
|
+
return {
|
|
94
|
+
/** The qualified name of the key's entity type, such as `"Customer:#Northwind.Models"`. */
|
|
95
|
+
entityType: this.entityType.name,
|
|
96
|
+
/** The key's values, one per key property. */
|
|
97
|
+
values: this.values
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
/** Recreates a key from the output of {@link EntityKey.toJSON}, looking its entity type up in
|
|
101
|
+
`metadataStore`. Throws if the type is not there. Used by {@link EntityManager.importEntities}. */
|
|
102
|
+
static fromJSON(json, metadataStore) {
|
|
103
|
+
let et = metadataStore._getStructuralType(json.entityType, true);
|
|
104
|
+
return new EntityKey(et, json.values);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
Used to compare EntityKeys are determine if they refer to the same Entity.
|
|
108
|
+
There is also an static version of 'equals' with the same functionality.
|
|
109
|
+
|
|
110
|
+
```ts
|
|
111
|
+
// assume Employee is registered with the MetadataStore
|
|
112
|
+
const empKey1 = new EntityKey(Employee, 1);
|
|
113
|
+
// assume employee1 is an existing Employee entity
|
|
114
|
+
const empKey2 = employee1.entityAspect.getKey();
|
|
115
|
+
if (empKey1.equals(empKey2)) {
|
|
116
|
+
// do something ...
|
|
117
|
+
}
|
|
118
|
+
```
|
|
119
|
+
*/
|
|
120
|
+
equals(entityKey) {
|
|
121
|
+
if (!(entityKey instanceof EntityKey))
|
|
122
|
+
return false;
|
|
123
|
+
return (this.entityType === entityKey.entityType) &&
|
|
124
|
+
core.arrayEquals(this.values, entityKey.values);
|
|
125
|
+
}
|
|
126
|
+
/** Returns this key as a string: the entity type's qualified name, a hyphen, and the key values
|
|
127
|
+
joined by `:::` - such as `"Order:#Northwind.Models-10248"`. Given `altEntityType`, that type's
|
|
128
|
+
name is used instead. Breeze uses this form in error messages and as the property names of an
|
|
129
|
+
{@link ITempKeyMap}. */
|
|
130
|
+
/*
|
|
131
|
+
Returns a human readable representation of this EntityKey.
|
|
132
|
+
*/
|
|
133
|
+
toString(altEntityType) {
|
|
134
|
+
return (altEntityType || this.entityType).name + '-' + this._keyInGroup;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
Used to compare EntityKeys are determine if they refer to the same Entity.
|
|
138
|
+
There is also an instance version of 'equals' with the same functionality.
|
|
139
|
+
```ts
|
|
140
|
+
// assume Employee is registered with the MetadataStore
|
|
141
|
+
const empKey1 = new EntityKey(Employee, 1);
|
|
142
|
+
// assume employee1 is an existing Employee entity
|
|
143
|
+
const empKey2 = employee1.entityAspect.getKey();
|
|
144
|
+
if (EntityKey.equals(empKey1, empKey2)) {
|
|
145
|
+
// do something ...
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
*/
|
|
149
|
+
static equals(k1, k2) {
|
|
150
|
+
if (!(k1 instanceof EntityKey))
|
|
151
|
+
return false;
|
|
152
|
+
return k1.equals(k2);
|
|
153
|
+
}
|
|
154
|
+
/** @hidden @internal */
|
|
155
|
+
// TODO: we may want to compare to default values later.
|
|
156
|
+
_isEmpty() {
|
|
157
|
+
return this.values.join("").length === 0;
|
|
158
|
+
}
|
|
159
|
+
/** hidden */
|
|
160
|
+
// TODO: think about giving _ prefix or documenting.
|
|
161
|
+
static createKeyString(keyValues) {
|
|
162
|
+
return keyValues.join(EntityKey.ENTITY_KEY_DELIMITER);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
EntityKey.prototype._$typeName = "EntityKey";
|
|
166
|
+
/** An object literal - not an array, a Date, or any other object a single key value could be. */
|
|
167
|
+
function isPlainObject(value) {
|
|
168
|
+
if (value === null || typeof value !== 'object')
|
|
169
|
+
return false;
|
|
170
|
+
const proto = Object.getPrototypeOf(value);
|
|
171
|
+
return proto === Object.prototype || proto === null;
|
|
172
|
+
}
|
|
173
|
+
/** The key values given by name, put in the order of the type's key properties. */
|
|
174
|
+
function keyValuesByName(entityType, values) {
|
|
175
|
+
const keyProps = entityType.keyProperties;
|
|
176
|
+
const names = keyProps.map(kp => kp.name);
|
|
177
|
+
for (const name of Object.keys(values)) {
|
|
178
|
+
if (!names.includes(name)) {
|
|
179
|
+
throw new Error(`'${name}' is not part of the key of ${entityType.name}, which is ${names.join(', ')}.`);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
return keyProps.map(kp => {
|
|
183
|
+
if (!(kp.name in values)) {
|
|
184
|
+
throw new Error(`The key of ${entityType.name} is ${names.join(', ')}; no value was given for '${kp.name}'.`);
|
|
185
|
+
}
|
|
186
|
+
return values[kp.name];
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=entity-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-key.js","sourceRoot":"","sources":["../../src/entity/entity-key.ts"],"names":[],"mappings":"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","sourcesContent":["import { core } from '../core/core.js';\nimport { paramError } from '../core/assert-param.js';\nimport { EntityType, MetadataStore, entityTypeForCtor } from '../metadata/entity-metadata.js';\nimport type { Entity } from './entity-aspect.js';\nimport { DataType } from '../metadata/data-type.js';\n\n/**\nAn EntityKey is an object that represents the unique identity of an entity. EntityKey's are immutable.\n\n\n*/\nexport class EntityKey {\n /** @hidden @internal */\n declare _$typeName: string; // actually placed on prototype\n /** @hidden @internal */\n static ENTITY_KEY_DELIMITER = \":::\";\n /** The 'EntityType' that this is a key for. __Read Only__ */\n entityType: EntityType;\n /** An array of the values for this key. This will usually only have a single element, \n unless the entity type has a multipart key. __Read Only__ */\n values: any[];\n /** @hidden @internal */\n _keyInGroup: string;\n /** @hidden @internal */\n _subtypes: EntityType[];\n\n /**\n Constructs a new EntityKey. Each entity within an EntityManager will have a unique EntityKey.\n ```ts\n // assume Employee is registered with the MetadataStore\n const entityKey = new EntityKey(Employee, 1);\n ```\n\n EntityKey's may also be found by calling EntityAspect.getKey()\n ```ts\n // assume employee1 is an existing Employee entity\n const empKey = employee1.entityAspect.getKey();\n ```\n\n A key of more than one property is clearest given by name, in any order:\n ```ts\n const detailKey = new EntityKey(OrderDetail, { orderID: 10248, productID: 11 });\n ```\n\n or as an array, in the order of the type's {@link EntityType.keyProperties}: the order of the\n key's definition on the server - `HasKey(od => new { od.OrderID, od.ProductID })` - which a\n generated entity class states in its doc comment, as `Key: orderID, productID`.\n ```ts\n const sameKey = new EntityKey(OrderDetail, [10248, 11]);\n ```\n A wrong order is not an error - it is a valid key for another row - which is why the named form\n is better for these.\n @param entityType - The {@link EntityType} of the entity, or a class registered for it with\n {@link MetadataStore.registerEntityTypeCtor}.\n @param keyValues - The key's value; for a key of more than one property, an object of values by\n property name, or an array in key order. A named value that is not part of the key, or a key\n property with no value, throws.\n */\n constructor(entityType: EntityType | (new () => Entity), keyValues: any) {\n // A class stands for its registered type. Checked by typeof first, so the EntityType that\n // Breeze itself always passes costs one comparison.\n if (typeof entityType === \"function\") entityType = entityTypeForCtor(entityType);\n // Inline, not assertParam: an EntityKey is built for every entity and again for every\n // foreign key the relationship fixup resolves. Same wording.\n if (!(entityType instanceof EntityType)) {\n throw paramError('entityType', \"must be an instance of 'EntityType'\");\n }\n // Only types that take part in an inheritance hierarchy need this, and getSelfAndSubtypes\n // allocates an array and walks the hierarchy to find that out. Guarding on `subtypes` keeps\n // the common case - a type with no subtypes, where the walk can only return [this] -\n // allocation-free. `subtypes` is filled while metadata is built and not touched after.\n if (entityType.subtypes.length > 0) {\n let subtypes = entityType.getSelfAndSubtypes();\n if (subtypes.length > 1) {\n this._subtypes = subtypes.filter(function (st) {\n return st.isAbstract === false;\n });\n }\n }\n\n if (!Array.isArray(keyValues)) {\n keyValues = isPlainObject(keyValues) ? keyValuesByName(entityType, keyValues) : [keyValues];\n }\n\n this.entityType = entityType;\n entityType.keyProperties.forEach(function (kp, i) {\n // insure that guid keys are comparable.\n if (kp.dataType === DataType.Guid) {\n keyValues[i] = keyValues[i] && keyValues[i].toLowerCase ? keyValues[i].toLowerCase() : keyValues[i];\n }\n });\n\n this.values = keyValues;\n this._keyInGroup = EntityKey.createKeyString(keyValues);\n\n }\n\n\n /** Returns the plain form of this key - `{ entityType, values }`, with the entity type's qualified\n name - which `JSON.stringify` uses and {@link EntityKey.fromJSON} turns back into a key. Breeze\n uses it to record temporary keys in an {@link EntityManager.exportEntities} bundle. */\n toJSON() {\n return {\n /** The qualified name of the key's entity type, such as `\"Customer:#Northwind.Models\"`. */\n entityType: this.entityType.name,\n /** The key's values, one per key property. */\n values: this.values\n };\n }\n\n /** Recreates a key from the output of {@link EntityKey.toJSON}, looking its entity type up in\n `metadataStore`. Throws if the type is not there. Used by {@link EntityManager.importEntities}. */\n static fromJSON(json: any, metadataStore: MetadataStore) {\n let et = metadataStore._getStructuralType(json.entityType, true) as EntityType;\n return new EntityKey(et, json.values);\n }\n\n /**\n Used to compare EntityKeys are determine if they refer to the same Entity.\n There is also an static version of 'equals' with the same functionality.\n\n ```ts\n // assume Employee is registered with the MetadataStore\n const empKey1 = new EntityKey(Employee, 1);\n // assume employee1 is an existing Employee entity\n const empKey2 = employee1.entityAspect.getKey();\n if (empKey1.equals(empKey2)) {\n // do something ...\n }\n ```\n */\n equals(entityKey: EntityKey): boolean {\n if (!(entityKey instanceof EntityKey)) return false;\n return (this.entityType === entityKey.entityType) &&\n core.arrayEquals(this.values, entityKey.values);\n }\n\n /** Returns this key as a string: the entity type's qualified name, a hyphen, and the key values\n joined by `:::` - such as `\"Order:#Northwind.Models-10248\"`. Given `altEntityType`, that type's\n name is used instead. Breeze uses this form in error messages and as the property names of an\n {@link ITempKeyMap}. */\n /*\n Returns a human readable representation of this EntityKey.\n */\n toString(altEntityType?: EntityType) {\n return (altEntityType || this.entityType).name + '-' + this._keyInGroup;\n }\n\n /**\n Used to compare EntityKeys are determine if they refer to the same Entity.\n There is also an instance version of 'equals' with the same functionality.\n ```ts\n // assume Employee is registered with the MetadataStore\n const empKey1 = new EntityKey(Employee, 1);\n // assume employee1 is an existing Employee entity\n const empKey2 = employee1.entityAspect.getKey();\n if (EntityKey.equals(empKey1, empKey2)) {\n // do something ...\n }\n ```\n */\n static equals(k1: EntityKey, k2: EntityKey) {\n if (!(k1 instanceof EntityKey)) return false;\n return k1.equals(k2);\n }\n\n /** @hidden @internal */\n // TODO: we may want to compare to default values later.\n _isEmpty() {\n return this.values.join(\"\").length === 0;\n }\n\n /** hidden */\n // TODO: think about giving _ prefix or documenting.\n static createKeyString(keyValues: any[]) {\n return keyValues.join(EntityKey.ENTITY_KEY_DELIMITER);\n }\n\n}\nEntityKey.prototype._$typeName = \"EntityKey\";\n\n/** An object literal - not an array, a Date, or any other object a single key value could be. */\nfunction isPlainObject(value: any): value is Record<string, any> {\n if (value === null || typeof value !== 'object') return false;\n const proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || proto === null;\n}\n\n/** The key values given by name, put in the order of the type's key properties. */\nfunction keyValuesByName(entityType: EntityType, values: Record<string, any>) {\n const keyProps = entityType.keyProperties;\n const names = keyProps.map(kp => kp.name);\n for (const name of Object.keys(values)) {\n if (!names.includes(name)) {\n throw new Error(`'${name}' is not part of the key of ${entityType.name}, which is ${names.join(', ')}.`);\n }\n }\n return keyProps.map(kp => {\n if (!(kp.name in values)) {\n throw new Error(`The key of ${entityType.name} is ${names.join(', ')}; no value was given for '${kp.name}'.`);\n }\n return values[kp.name];\n });\n}\n\n\n"]}
|
|
@@ -1,84 +1,112 @@
|
|
|
1
|
-
import { BreezeEnum } from '
|
|
2
|
-
/**
|
|
3
|
-
EntityState is an 'Enum' containing all of the valid states for an 'Entity'.
|
|
4
|
-
|
|
5
|
-
export declare class EntityState extends BreezeEnum {
|
|
6
|
-
/** The 'Unchanged' state.
|
|
7
|
-
static Unchanged: EntityState;
|
|
8
|
-
/** The 'Added' state.
|
|
9
|
-
static Added: EntityState;
|
|
10
|
-
/** The 'Modified' state.
|
|
11
|
-
static Modified: EntityState;
|
|
12
|
-
/** The 'Deleted' state.
|
|
13
|
-
static Deleted: EntityState;
|
|
14
|
-
/** The 'Detached' state.
|
|
15
|
-
static Detached: EntityState;
|
|
16
|
-
/**
|
|
17
|
-
Returns whether an entityState instance is EntityState.Unchanged.
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
isAdded()
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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
|
-
|
|
1
|
+
import { BreezeEnum } from '../core/enum.js';
|
|
2
|
+
/**
|
|
3
|
+
EntityState is an 'Enum' containing all of the valid states for an 'Entity'.
|
|
4
|
+
*/
|
|
5
|
+
export declare class EntityState extends BreezeEnum {
|
|
6
|
+
/** The 'Unchanged' state. */
|
|
7
|
+
static Unchanged: EntityState;
|
|
8
|
+
/** The 'Added' state. */
|
|
9
|
+
static Added: EntityState;
|
|
10
|
+
/** The 'Modified' state. */
|
|
11
|
+
static Modified: EntityState;
|
|
12
|
+
/** The 'Deleted' state. */
|
|
13
|
+
static Deleted: EntityState;
|
|
14
|
+
/** The 'Detached' state. */
|
|
15
|
+
static Detached: EntityState;
|
|
16
|
+
/**
|
|
17
|
+
Returns whether an entityState instance is EntityState.Unchanged.
|
|
18
|
+
```ts
|
|
19
|
+
var es = anEntity.entityAspect.entityState;
|
|
20
|
+
return es.isUnchanged();
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
is the same as
|
|
24
|
+
```ts
|
|
25
|
+
return es === EntityState.Unchanged;
|
|
26
|
+
```
|
|
27
|
+
*/
|
|
28
|
+
isUnchanged(): boolean;
|
|
29
|
+
/**
|
|
30
|
+
Return whether an entityState instance is EntityState.Added.
|
|
31
|
+
|
|
32
|
+
```ts
|
|
33
|
+
var es = anEntity.entityAspect.entityState;
|
|
34
|
+
return es.isAdded();
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
is the same as
|
|
38
|
+
```ts
|
|
39
|
+
return es === EntityState.Added;
|
|
40
|
+
```
|
|
41
|
+
*/
|
|
42
|
+
isAdded(): boolean;
|
|
43
|
+
/**
|
|
44
|
+
Returns whether an entityState instance is EntityState.Modified.
|
|
45
|
+
```ts
|
|
46
|
+
var es = anEntity.entityAspect.entityState;
|
|
47
|
+
return es.isModified();
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
is the same as
|
|
51
|
+
```ts
|
|
52
|
+
return es === EntityState.Modified;
|
|
53
|
+
```
|
|
54
|
+
*/
|
|
55
|
+
isModified(): boolean;
|
|
56
|
+
/**
|
|
57
|
+
Returns whether an entityState instance is EntityState.Deleted.
|
|
58
|
+
```ts
|
|
59
|
+
var es = anEntity.entityAspect.entityState;
|
|
60
|
+
return es.isDeleted();
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
is the same as
|
|
64
|
+
|
|
65
|
+
```ts
|
|
66
|
+
return es === EntityState.Deleted;
|
|
67
|
+
```
|
|
68
|
+
*/
|
|
69
|
+
isDeleted(): boolean;
|
|
70
|
+
/**
|
|
71
|
+
Returns whether an entityState instance is EntityState.Detached.
|
|
72
|
+
```ts
|
|
73
|
+
var es = anEntity.entityAspect.entityState;
|
|
74
|
+
return es.isDetached();
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
is the same as
|
|
78
|
+
```ts
|
|
79
|
+
return es === EntityState.Detached;
|
|
80
|
+
```
|
|
81
|
+
*/
|
|
82
|
+
isDetached(): boolean;
|
|
83
|
+
/** Return true if EntityState is Deleted or Detached */
|
|
84
|
+
isDeletedOrDetached(): boolean;
|
|
85
|
+
/**
|
|
86
|
+
Returns whether an entityState instance is EntityState.Unchanged or EntityState.Modified.
|
|
87
|
+
```ts
|
|
88
|
+
var es = anEntity.entityAspect.entityState;
|
|
89
|
+
return es.isUnchangedOrModified();
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
is the same as
|
|
93
|
+
```ts
|
|
94
|
+
return es === EntityState.Unchanged || es === EntityState.Modified
|
|
95
|
+
```
|
|
96
|
+
*/
|
|
97
|
+
isUnchangedOrModified(): boolean;
|
|
98
|
+
/** Return true if EntityStatis is Added or Modified */
|
|
99
|
+
isAddedOrModified(): boolean;
|
|
100
|
+
/** Returns whether an entityState instance is EntityState.Added or EntityState.Modified or EntityState.Deleted.
|
|
101
|
+
```ts
|
|
102
|
+
var es = anEntity.entityAspect.entityState;
|
|
103
|
+
return es.isAddedModifiedOrDeleted();
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
is the same as
|
|
107
|
+
```ts
|
|
108
|
+
return es === EntityState.Added || es === EntityState.Modified || es === EntityState.Deleted
|
|
109
|
+
```
|
|
110
|
+
*/
|
|
111
|
+
isAddedModifiedOrDeleted(): boolean;
|
|
112
|
+
}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { BreezeEnum } from '../core/enum.js';
|
|
2
|
+
/**
|
|
3
|
+
EntityState is an 'Enum' containing all of the valid states for an 'Entity'.
|
|
4
|
+
*/
|
|
5
|
+
export class EntityState extends BreezeEnum {
|
|
6
|
+
/** The 'Unchanged' state. */
|
|
7
|
+
static Unchanged = new EntityState();
|
|
8
|
+
/** The 'Added' state. */
|
|
9
|
+
static Added = new EntityState();
|
|
10
|
+
/** The 'Modified' state. */
|
|
11
|
+
static Modified = new EntityState();
|
|
12
|
+
/** The 'Deleted' state. */
|
|
13
|
+
static Deleted = new EntityState();
|
|
14
|
+
/** The 'Detached' state. */
|
|
15
|
+
static Detached = new EntityState();
|
|
16
|
+
/**
|
|
17
|
+
Returns whether an entityState instance is EntityState.Unchanged.
|
|
18
|
+
```ts
|
|
19
|
+
var es = anEntity.entityAspect.entityState;
|
|
20
|
+
return es.isUnchanged();
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
is the same as
|
|
24
|
+
```ts
|
|
25
|
+
return es === EntityState.Unchanged;
|
|
26
|
+
```
|
|
27
|
+
*/
|
|
28
|
+
isUnchanged() {
|
|
29
|
+
return this === EntityState.Unchanged;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
Return whether an entityState instance is EntityState.Added.
|
|
33
|
+
|
|
34
|
+
```ts
|
|
35
|
+
var es = anEntity.entityAspect.entityState;
|
|
36
|
+
return es.isAdded();
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
is the same as
|
|
40
|
+
```ts
|
|
41
|
+
return es === EntityState.Added;
|
|
42
|
+
```
|
|
43
|
+
*/
|
|
44
|
+
isAdded() {
|
|
45
|
+
return this === EntityState.Added;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
Returns whether an entityState instance is EntityState.Modified.
|
|
49
|
+
```ts
|
|
50
|
+
var es = anEntity.entityAspect.entityState;
|
|
51
|
+
return es.isModified();
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
is the same as
|
|
55
|
+
```ts
|
|
56
|
+
return es === EntityState.Modified;
|
|
57
|
+
```
|
|
58
|
+
*/
|
|
59
|
+
isModified() {
|
|
60
|
+
return this === EntityState.Modified;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
Returns whether an entityState instance is EntityState.Deleted.
|
|
64
|
+
```ts
|
|
65
|
+
var es = anEntity.entityAspect.entityState;
|
|
66
|
+
return es.isDeleted();
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
is the same as
|
|
70
|
+
|
|
71
|
+
```ts
|
|
72
|
+
return es === EntityState.Deleted;
|
|
73
|
+
```
|
|
74
|
+
*/
|
|
75
|
+
isDeleted() {
|
|
76
|
+
return this === EntityState.Deleted;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
Returns whether an entityState instance is EntityState.Detached.
|
|
80
|
+
```ts
|
|
81
|
+
var es = anEntity.entityAspect.entityState;
|
|
82
|
+
return es.isDetached();
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
is the same as
|
|
86
|
+
```ts
|
|
87
|
+
return es === EntityState.Detached;
|
|
88
|
+
```
|
|
89
|
+
*/
|
|
90
|
+
isDetached() {
|
|
91
|
+
return this === EntityState.Detached;
|
|
92
|
+
}
|
|
93
|
+
/** Return true if EntityState is Deleted or Detached */
|
|
94
|
+
isDeletedOrDetached() {
|
|
95
|
+
return this === EntityState.Deleted || this === EntityState.Detached;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
Returns whether an entityState instance is EntityState.Unchanged or EntityState.Modified.
|
|
99
|
+
```ts
|
|
100
|
+
var es = anEntity.entityAspect.entityState;
|
|
101
|
+
return es.isUnchangedOrModified();
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
is the same as
|
|
105
|
+
```ts
|
|
106
|
+
return es === EntityState.Unchanged || es === EntityState.Modified
|
|
107
|
+
```
|
|
108
|
+
*/
|
|
109
|
+
isUnchangedOrModified() {
|
|
110
|
+
return this === EntityState.Unchanged || this === EntityState.Modified;
|
|
111
|
+
}
|
|
112
|
+
/** Return true if EntityStatis is Added or Modified */
|
|
113
|
+
isAddedOrModified() {
|
|
114
|
+
return this === EntityState.Added || this === EntityState.Modified;
|
|
115
|
+
}
|
|
116
|
+
/** Returns whether an entityState instance is EntityState.Added or EntityState.Modified or EntityState.Deleted.
|
|
117
|
+
```ts
|
|
118
|
+
var es = anEntity.entityAspect.entityState;
|
|
119
|
+
return es.isAddedModifiedOrDeleted();
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
is the same as
|
|
123
|
+
```ts
|
|
124
|
+
return es === EntityState.Added || es === EntityState.Modified || es === EntityState.Deleted
|
|
125
|
+
```
|
|
126
|
+
*/
|
|
127
|
+
isAddedModifiedOrDeleted() {
|
|
128
|
+
return this === EntityState.Added ||
|
|
129
|
+
this === EntityState.Modified ||
|
|
130
|
+
this === EntityState.Deleted;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
EntityState.prototype._$typeName = "EntityState";
|
|
134
|
+
EntityState.resolveSymbols();
|
|
135
|
+
//# sourceMappingURL=entity-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-state.js","sourceRoot":"","sources":["../../src/entity/entity-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;EAEE;AACF,MAAM,OAAO,WAAY,SAAQ,UAAU;IAEzC,6BAA6B;IAC7B,MAAM,CAAC,SAAS,GAAG,IAAI,WAAW,EAAE,CAAC;IACrC,2BAA2B;IAC3B,MAAM,CAAC,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;IACjC,+BAA+B;IAC/B,MAAM,CAAC,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;IACpC,6BAA6B;IAC7B,MAAM,CAAC,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IACnC,8BAA8B;IAC9B,MAAM,CAAC,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;IAEpC;;;;;;;;;;;MAWE;IACF,WAAW;QACT,OAAO,IAAI,KAAK,WAAW,CAAC,SAAS,CAAC;IACxC,CAAC;IAED;;;;;;;;;;;;MAYE;IACF,OAAO;QACL,OAAO,IAAI,KAAK,WAAW,CAAC,KAAK,CAAC;IACpC,CAAC;IAED;;;;;;;;;;;MAWE;IACF,UAAU;QACR,OAAO,IAAI,KAAK,WAAW,CAAC,QAAQ,CAAC;IACvC,CAAC;IAED;;;;;;;;;;;;MAYE;IACF,SAAS;QACP,OAAO,IAAI,KAAK,WAAW,CAAC,OAAO,CAAC;IACtC,CAAC;IAED;;;;;;;;;;;MAWE;IACF,UAAU;QACR,OAAO,IAAI,KAAK,WAAW,CAAC,QAAQ,CAAC;IACvC,CAAC;IAED,wDAAwD;IACxD,mBAAmB;QACjB,OAAO,IAAI,KAAK,WAAW,CAAC,OAAO,IAAI,IAAI,KAAK,WAAW,CAAC,QAAQ,CAAC;IACvE,CAAC;IAED;;;;;;;;;;;MAWE;IACF,qBAAqB;QACnB,OAAO,IAAI,KAAK,WAAW,CAAC,SAAS,IAAI,IAAI,KAAK,WAAW,CAAC,QAAQ,CAAC;IACzE,CAAC;IAED,uDAAuD;IACvD,iBAAiB;QACf,OAAO,IAAI,KAAK,WAAW,CAAC,KAAK,IAAI,IAAI,KAAK,WAAW,CAAC,QAAQ,CAAC;IACrE,CAAC;IAED;;;;;;;;;;MAUE;IACF,wBAAwB;QACtB,OAAO,IAAI,KAAK,WAAW,CAAC,KAAK;YAC/B,IAAI,KAAK,WAAW,CAAC,QAAQ;YAC7B,IAAI,KAAK,WAAW,CAAC,OAAO,CAAC;IACjC,CAAC;;AAGH,WAAW,CAAC,SAAS,CAAC,UAAU,GAAG,aAAa,CAAC;AACjD,WAAW,CAAC,cAAc,EAAE,CAAC","sourcesContent":["import { BreezeEnum } from '../core/enum.js';\r\n\r\n/**\r\nEntityState is an 'Enum' containing all of the valid states for an 'Entity'.\r\n*/\r\nexport class EntityState extends BreezeEnum {\r\n\r\n /** The 'Unchanged' state. */\r\n static Unchanged = new EntityState();\r\n /** The 'Added' state. */\r\n static Added = new EntityState();\r\n /** The 'Modified' state. */\r\n static Modified = new EntityState();\r\n /** The 'Deleted' state. */\r\n static Deleted = new EntityState();\r\n /** The 'Detached' state. */\r\n static Detached = new EntityState();\r\n\r\n /**\r\n Returns whether an entityState instance is EntityState.Unchanged.\r\n ```ts\r\n var es = anEntity.entityAspect.entityState;\r\n return es.isUnchanged();\r\n ```\r\n\r\n is the same as\r\n ```ts\r\n return es === EntityState.Unchanged;\r\n ```\r\n */\r\n isUnchanged() {\r\n return this === EntityState.Unchanged;\r\n }\r\n\r\n /**\r\n Return whether an entityState instance is EntityState.Added.\r\n \r\n ```ts\r\n var es = anEntity.entityAspect.entityState;\r\n return es.isAdded();\r\n ```\r\n\r\n is the same as\r\n ```ts\r\n return es === EntityState.Added;\r\n ```\r\n */\r\n isAdded() {\r\n return this === EntityState.Added;\r\n }\r\n\r\n /**\r\n Returns whether an entityState instance is EntityState.Modified.\r\n ```ts\r\n var es = anEntity.entityAspect.entityState;\r\n return es.isModified();\r\n ```\r\n\r\n is the same as\r\n ```ts\r\n return es === EntityState.Modified;\r\n ```\r\n */\r\n isModified() {\r\n return this === EntityState.Modified;\r\n }\r\n\r\n /**\r\n Returns whether an entityState instance is EntityState.Deleted.\r\n ```ts\r\n var es = anEntity.entityAspect.entityState;\r\n return es.isDeleted();\r\n ```\r\n\r\n is the same as\r\n \r\n ```ts\r\n return es === EntityState.Deleted;\r\n ```\r\n */\r\n isDeleted() {\r\n return this === EntityState.Deleted;\r\n }\r\n\r\n /**\r\n Returns whether an entityState instance is EntityState.Detached.\r\n ```ts\r\n var es = anEntity.entityAspect.entityState;\r\n return es.isDetached();\r\n ```\r\n\r\n is the same as\r\n ```ts\r\n return es === EntityState.Detached;\r\n ```\r\n */\r\n isDetached() {\r\n return this === EntityState.Detached;\r\n }\r\n\r\n /** Return true if EntityState is Deleted or Detached */\r\n isDeletedOrDetached() {\r\n return this === EntityState.Deleted || this === EntityState.Detached;\r\n }\r\n\r\n /**\r\n Returns whether an entityState instance is EntityState.Unchanged or EntityState.Modified.\r\n ```ts\r\n var es = anEntity.entityAspect.entityState;\r\n return es.isUnchangedOrModified();\r\n ```\r\n\r\n is the same as\r\n ```ts\r\n return es === EntityState.Unchanged || es === EntityState.Modified\r\n ```\r\n */\r\n isUnchangedOrModified() {\r\n return this === EntityState.Unchanged || this === EntityState.Modified;\r\n }\r\n\r\n /** Return true if EntityStatis is Added or Modified */\r\n isAddedOrModified() {\r\n return this === EntityState.Added || this === EntityState.Modified;\r\n }\r\n\r\n /** Returns whether an entityState instance is EntityState.Added or EntityState.Modified or EntityState.Deleted.\r\n ```ts\r\n var es = anEntity.entityAspect.entityState;\r\n return es.isAddedModifiedOrDeleted();\r\n ```\r\n\r\n is the same as\r\n ```ts\r\n return es === EntityState.Added || es === EntityState.Modified || es === EntityState.Deleted\r\n ```\r\n */\r\n isAddedModifiedOrDeleted() {\r\n return this === EntityState.Added ||\r\n this === EntityState.Modified ||\r\n this === EntityState.Deleted;\r\n }\r\n\r\n}\r\nEntityState.prototype._$typeName = \"EntityState\";\r\nEntityState.resolveSymbols();\r\n"]}
|