breeze-client 2.2.2 → 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 +63 -94
- 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
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -1,63 +1,83 @@
|
|
|
1
|
-
<p align="center"><a href="http://
|
|
2
|
-
|
|
3
|
-
#
|
|
4
|
-
|
|
5
|
-
**Breeze** is a library that helps you manage
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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
|
-
|
|
1
|
+
<p align="center"><a href="http://breeze.github.io/" target="_blank"><img src="http://breeze.github.io/images/logos/BreezeJsB.png" alt="Breeze" width="100"/></a></p>
|
|
2
|
+
|
|
3
|
+
# Breeze Data Management for JavaScript Clients
|
|
4
|
+
|
|
5
|
+
**Breeze** is a library from [IdeaBlade](https://www.ideablade.com/) that helps you manage
|
|
6
|
+
data in rich client applications. If you store data in a database, query and save it as
|
|
7
|
+
complex object graphs, and share those graphs across screens, Breeze is for you.
|
|
8
|
+
|
|
9
|
+
Client-side querying, caching, dynamic object graphs, change tracking and notification,
|
|
10
|
+
model validation, batch save, offline — all part of rich data management with Breeze.
|
|
11
|
+
Breeze clients talk to any remote service that speaks HTTP and JSON.
|
|
12
|
+
|
|
13
|
+
> **This is breeze-client 3**, published to npm as `breeze-client` 3.0.0.
|
|
14
|
+
> 2.x is maintained in [breeze-client](https://github.com/Breeze/breeze-client).
|
|
15
|
+
|
|
16
|
+
## What v3 is
|
|
17
|
+
|
|
18
|
+
Same public API, rewritten for modern TypeScript, with a build you can read in one sitting.
|
|
19
|
+
|
|
20
|
+
- **ESM only**, one package, one npm tag. No CommonJS, no UMD, no `mjs`/`cjs` dist-tags.
|
|
21
|
+
- **One `tsc` invocation.** No ng-packagr, no second `node_modules`, no `downlevel-dts`.
|
|
22
|
+
- **No runtime dependencies.**
|
|
23
|
+
- **Knockout, jQuery, AngularJS and OData removed**, including CSDL/EDMX metadata parsing.
|
|
24
|
+
- Angular support moves to its own package so Angular and RxJS stay out of the core build.
|
|
25
|
+
|
|
26
|
+
Source is 42 files / 15,630 lines, down from 51 / 19,708.
|
|
27
|
+
|
|
28
|
+
## Documentation
|
|
29
|
+
|
|
30
|
+
| | |
|
|
31
|
+
|---|---|
|
|
32
|
+
| [UPGRADE.md](./UPGRADE.md) | **Converting an app from 2.x** — every consumer-facing change |
|
|
33
|
+
| [TESTING.md](./TESTING.md) | **Running the tests** — creating the database, starting the server |
|
|
34
|
+
| [DOCS.md](./DOCS.md) | **Building and viewing the docs** — the guides and the API reference |
|
|
35
|
+
| [BUILD-AND-PACK.md](./BUILD-AND-PACK.md) | **Packing the library and trying it in another app** without publishing |
|
|
36
|
+
| [CHANGES-DEV.md](./CHANGES-DEV.md) | Structural changes, for people working on Breeze itself |
|
|
37
|
+
| [STATUS.md](./STATUS.md) | What is done, what is in flight, what is next |
|
|
38
|
+
|
|
39
|
+
The user documentation is at [breeze.github.io/breeze-client-v3](https://breeze.github.io/breeze-client-v3/).
|
|
40
|
+
The 2.x documentation is still at [breeze.github.io/doc-js](https://breeze.github.io/doc-js/?v2).
|
|
41
|
+
|
|
42
|
+
## Install
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
npm install breeze-client
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
```ts
|
|
49
|
+
import { EntityManager, EntityQuery } from 'breeze-client';
|
|
50
|
+
|
|
51
|
+
const em = new EntityManager('/breeze/Northwind');
|
|
52
|
+
const { results } = await em.executeQuery(EntityQuery.from('Customers').take(10));
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
That is all a Breeze .NET server needs. There are no adapters to import or register, and
|
|
56
|
+
property names are camel-cased by default: `CompanyName` on the server is `companyName`
|
|
57
|
+
on the client. If your server already sends the names the client should use, call
|
|
58
|
+
`NamingConvention.none.setAsDefault()` at startup, before creating an `EntityManager`.
|
|
59
|
+
2.x defaulted to `none` — see [UPGRADE.md](./UPGRADE.md).
|
|
60
|
+
|
|
61
|
+
## Building
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
npm install
|
|
65
|
+
npm run typecheck # tsc --noEmit
|
|
66
|
+
npm run build # -> dist/
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Server
|
|
70
|
+
|
|
71
|
+
The .NET server lives in
|
|
72
|
+
[breeze-server-v3](https://github.com/Breeze/breeze-server-v3). The integration tests in
|
|
73
|
+
this repo run against it.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
If you have discovered a bug or missing feature, please create an issue.
|
|
78
|
+
|
|
79
|
+
If you have questions about using Breeze, please ask on
|
|
80
|
+
[Stack Overflow](https://stackoverflow.com/questions/tagged/breeze).
|
|
81
|
+
|
|
82
|
+
If you need help developing your application, please contact us at
|
|
83
|
+
[IdeaBlade](mailto:info@ideablade.com).
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { DataServiceAdapter, AjaxAdapter, AjaxConfig, ChangeRequestInterceptorCtor, ChangeRequestInterceptor } from '../config/interface-registry.js';
|
|
2
|
+
import { MappingContext } from '../query/mapping-context.js';
|
|
3
|
+
import { DataService, JsonResultsAdapter } from '../metadata/data-service.js';
|
|
4
|
+
import { HttpResponse, SaveContext, SaveBundle, ServerError, SaveResult, QueryResult } from '../manager/entity-manager.js';
|
|
5
|
+
import { MetadataStore } from '../metadata/entity-metadata.js';
|
|
6
|
+
/** For use by breeze plugin authors only. The class is used as the base class for most {@link DataServiceAdapter} implementations
|
|
7
|
+
@adapter (see {@link DataServiceAdapter})
|
|
8
|
+
@hidden
|
|
9
|
+
*/
|
|
10
|
+
export declare abstract class AbstractDataServiceAdapter implements DataServiceAdapter {
|
|
11
|
+
/** The name of this adapter. */
|
|
12
|
+
name: string;
|
|
13
|
+
/**
|
|
14
|
+
* The ajax adapter requests go through: the registered default if there is one, otherwise
|
|
15
|
+
* a built-in one that uses `config.fetch`.
|
|
16
|
+
* @deprecated Make requests with `_ajax`, and supply the transport with
|
|
17
|
+
* `configureBreeze({ fetch })`.
|
|
18
|
+
*/
|
|
19
|
+
ajaxImpl: AjaxAdapter;
|
|
20
|
+
checkForRecomposition(interfaceInitializedArgs: any): void;
|
|
21
|
+
initialize(): void;
|
|
22
|
+
/**
|
|
23
|
+
* Sends one request. Resolves with the response, or rejects with a `ServerError`.
|
|
24
|
+
*
|
|
25
|
+
* Subclasses should make their requests through this method rather than through
|
|
26
|
+
* `ajaxImpl`, whose callback-shaped contract is kept only for compatibility. This is the
|
|
27
|
+
* only place in the class that deals in success/error callbacks.
|
|
28
|
+
*/
|
|
29
|
+
protected _ajax(config: Omit<AjaxConfig, 'success' | 'error'>, errorMessagePrefix?: string, prepareResponse?: (httpResponse: HttpResponse) => void): Promise<HttpResponse>;
|
|
30
|
+
fetchMetadata(metadataStore: MetadataStore, dataService: DataService): Promise<any>;
|
|
31
|
+
/** Execute the query in the mappingContext. */
|
|
32
|
+
executeQuery(mappingContext: MappingContext): Promise<QueryResult>;
|
|
33
|
+
/** Set up ajax parameters for query GET. This puts the query into the request querystring, in whatever syntax the UriBuilder produces. */
|
|
34
|
+
_makeQueryGetParams(mappingContext: MappingContext): {
|
|
35
|
+
type: string;
|
|
36
|
+
url: string;
|
|
37
|
+
params: Object;
|
|
38
|
+
dataType: string;
|
|
39
|
+
crossDomain: boolean;
|
|
40
|
+
};
|
|
41
|
+
/** Set up ajax parameters for query POST. This put the query into the request body as JSON. */
|
|
42
|
+
_makeQueryPostParams(mappingContext: MappingContext): {
|
|
43
|
+
type: string;
|
|
44
|
+
url: string;
|
|
45
|
+
params: Object;
|
|
46
|
+
dataType: string;
|
|
47
|
+
processData: boolean;
|
|
48
|
+
contentType: string;
|
|
49
|
+
data: string;
|
|
50
|
+
crossDomain: boolean;
|
|
51
|
+
};
|
|
52
|
+
saveChanges(saveContext: SaveContext, saveBundle: SaveBundle): Promise<SaveResult>;
|
|
53
|
+
/** Abstract method that needs to be overwritten in any concrete DataServiceAdapter subclass.
|
|
54
|
+
The return value from this method should be a serializable object that will be sent to the server after calling JSON.stringify on it.
|
|
55
|
+
*/
|
|
56
|
+
_prepareSaveBundle(saveContext: SaveContext, saveBundle: SaveBundle): any;
|
|
57
|
+
/**
|
|
58
|
+
Returns a constructor function for a "ChangeRequestInterceptor"
|
|
59
|
+
that can tweak the saveBundle both as it is built and when it is completed
|
|
60
|
+
by a concrete DataServiceAdapater.
|
|
61
|
+
|
|
62
|
+
Initialized with a default, no-op implementation that developers can replace with a
|
|
63
|
+
substantive implementation that changes the individual entity change requests
|
|
64
|
+
or aspects of the entire 'saveBundle' without having to write their own DataService adapters.
|
|
65
|
+
```ts
|
|
66
|
+
let adapter = breeze.config.getAdapterInstance('dataService');
|
|
67
|
+
adapter.changeRequestInterceptor = function (saveContext, saveBundle) {
|
|
68
|
+
this.getRequest = function (request, entity, index) {
|
|
69
|
+
// alter the request that the adapter prepared for this entity
|
|
70
|
+
// based on the entity, saveContext, and saveBundle
|
|
71
|
+
// e.g., add a custom header or prune the originalValuesMap
|
|
72
|
+
return request;
|
|
73
|
+
};
|
|
74
|
+
this.done = function (requests) {
|
|
75
|
+
// alter the array of requests representing the entire change-set
|
|
76
|
+
// based on the saveContext and saveBundle
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
@param saveContext - The BreezeJS "context" for the save operation.
|
|
82
|
+
@param saveBundle - Contains the array of entities-to-be-saved (AKA, the entity change-set).
|
|
83
|
+
@returns Constructor for a "ChangeRequestInterceptor".
|
|
84
|
+
*/
|
|
85
|
+
changeRequestInterceptor: ChangeRequestInterceptorCtor;
|
|
86
|
+
/**
|
|
87
|
+
* Creates the change request interceptor for one save, from `changeRequestInterceptor`.
|
|
88
|
+
* Call it at the start of `_prepareSaveBundle`, pass each entity's request through its
|
|
89
|
+
* `getRequest`, and pass the finished array to its `done`.
|
|
90
|
+
*
|
|
91
|
+
* Falls back to a no-op interceptor when `changeRequestInterceptor` is not set. If the
|
|
92
|
+
* interceptor it creates has `oneTime` set, the adapter goes back to the no-op
|
|
93
|
+
* interceptor afterwards, so only this save is intercepted.
|
|
94
|
+
* @throws if the interceptor has no `getRequest` or `done` method.
|
|
95
|
+
*/
|
|
96
|
+
protected _createChangeRequestInterceptor(saveContext: SaveContext, saveBundle: SaveBundle): ChangeRequestInterceptor;
|
|
97
|
+
/** Abstract method that needs to be overwritten in any concrete DataServiceAdapter sublclass.
|
|
98
|
+
This method needs to take the result returned the server and convert it into an ISaveResult.
|
|
99
|
+
*/
|
|
100
|
+
_prepareSaveResult(saveContext: SaveContext, data: any): SaveResult;
|
|
101
|
+
/** Utility method that may be used in any concrete DataServiceAdapter sublclass to handle any
|
|
102
|
+
http connection issues. For an error with status 0 - the request got no response - it says in
|
|
103
|
+
the message that the server could not be reached, keeping any message the transport gave.
|
|
104
|
+
An aborted request is left alone. `makeHttpError` already applies it.
|
|
105
|
+
*/
|
|
106
|
+
static _catchNoConnectionError(err: ServerError): void;
|
|
107
|
+
/**
|
|
108
|
+
* Builds the Breeze error for a failed HTTP response: an `Error` carrying `status`,
|
|
109
|
+
* `statusText`, `url`, `body` and `httpResponse`, whose message comes from the response
|
|
110
|
+
* body (a .NET exception, or `{ message, errors }`). For a save, it also carries the
|
|
111
|
+
* server's per-entity `entityErrors`, if `httpResponse.saveContext` is set.
|
|
112
|
+
*
|
|
113
|
+
* `_ajax` uses it for every failed request. Call it when your adapter makes a request some
|
|
114
|
+
* other way, then throw or reject with the result.
|
|
115
|
+
* @param httpResponse - The failed response.
|
|
116
|
+
* @param messagePrefix - Put at the start of the message, followed by "; ".
|
|
117
|
+
*/
|
|
118
|
+
static makeHttpError(httpResponse: HttpResponse, messagePrefix?: string): ServerError;
|
|
119
|
+
jsonResultsAdapter: JsonResultsAdapter;
|
|
120
|
+
}
|