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.
Files changed (299) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +83 -63
  3. package/adapters/abstract-data-service-adapter.d.ts +120 -0
  4. package/adapters/abstract-data-service-adapter.js +395 -0
  5. package/adapters/abstract-data-service-adapter.js.map +1 -0
  6. package/adapters/adapter-ajax-fetch.d.ts +12 -0
  7. package/adapters/adapter-ajax-fetch.js +13 -0
  8. package/adapters/adapter-ajax-fetch.js.map +1 -0
  9. package/{adapter-ajax-post → adapters}/adapter-ajax-post.d.ts +40 -36
  10. package/{fesm2022/breeze-client-adapter-ajax-post.mjs → adapters/adapter-ajax-post.js} +80 -82
  11. package/adapters/adapter-ajax-post.js.map +1 -0
  12. package/{adapter-ajax-fetch → adapters}/adapter-core.d.ts +4 -4
  13. package/{fesm2022/breeze-client-adapter-uri-builder-json.mjs → adapters/adapter-core.js} +48 -91
  14. package/adapters/adapter-core.js.map +1 -0
  15. package/adapters/adapter-data-service-webapi.d.ts +9 -0
  16. package/{fesm2022/breeze-client-adapter-data-service-webapi.mjs → adapters/adapter-data-service-webapi.js} +105 -107
  17. package/adapters/adapter-data-service-webapi.js.map +1 -0
  18. package/adapters/adapter-model-library-backing-store.d.ts +32 -0
  19. package/adapters/adapter-model-library-backing-store.js +321 -0
  20. package/adapters/adapter-model-library-backing-store.js.map +1 -0
  21. package/adapters/adapter-uri-builder-json.d.ts +11 -0
  22. package/adapters/adapter-uri-builder-json.js +40 -0
  23. package/adapters/adapter-uri-builder-json.js.map +1 -0
  24. package/adapters/http.d.ts +52 -0
  25. package/adapters/http.js +202 -0
  26. package/adapters/http.js.map +1 -0
  27. package/angular/adapter-angular-httpclient.d.ts +21 -0
  28. package/angular/adapter-angular-httpclient.js +70 -0
  29. package/angular/adapter-angular-httpclient.js.map +1 -0
  30. package/breeze.d.ts +215 -0
  31. package/breeze.js +141 -0
  32. package/breeze.js.map +1 -0
  33. package/config/config.d.ts +212 -0
  34. package/config/config.js +392 -0
  35. package/config/config.js.map +1 -0
  36. package/config/configure.d.ts +66 -0
  37. package/config/configure.js +46 -0
  38. package/config/configure.js.map +1 -0
  39. package/config/default-adapters.d.ts +1 -0
  40. package/config/default-adapters.js +40 -0
  41. package/config/default-adapters.js.map +1 -0
  42. package/config/interface-registry.d.ts +191 -0
  43. package/config/interface-registry.js +5 -0
  44. package/config/interface-registry.js.map +1 -0
  45. package/{src → core}/assert-param.d.ts +52 -60
  46. package/core/assert-param.js +390 -0
  47. package/core/assert-param.js.map +1 -0
  48. package/core/core.d.ts +285 -0
  49. package/core/core.js +772 -0
  50. package/core/core.js.map +1 -0
  51. package/core/enum.d.ts +116 -0
  52. package/core/enum.js +167 -0
  53. package/core/enum.js.map +1 -0
  54. package/core/event.d.ts +169 -0
  55. package/core/event.js +338 -0
  56. package/core/event.js.map +1 -0
  57. package/entity/array.d.ts +3 -0
  58. package/entity/array.js +4 -0
  59. package/entity/array.js.map +1 -0
  60. package/entity/complex-array.d.ts +17 -0
  61. package/entity/complex-array.js +104 -0
  62. package/entity/complex-array.js.map +1 -0
  63. package/entity/default-property-interceptor.d.ts +1 -0
  64. package/entity/default-property-interceptor.js +496 -0
  65. package/entity/default-property-interceptor.js.map +1 -0
  66. package/{src → entity}/entity-action.d.ts +36 -42
  67. package/entity/entity-action.js +45 -0
  68. package/entity/entity-action.js.map +1 -0
  69. package/entity/entity-aspect.d.ts +457 -0
  70. package/entity/entity-aspect.js +1262 -0
  71. package/entity/entity-aspect.js.map +1 -0
  72. package/entity/entity-base.d.ts +55 -0
  73. package/entity/entity-base.js +41 -0
  74. package/entity/entity-base.js.map +1 -0
  75. package/entity/entity-group.d.ts +1 -0
  76. package/entity/entity-group.js +224 -0
  77. package/entity/entity-group.js.map +1 -0
  78. package/entity/entity-key.d.ts +95 -0
  79. package/entity/entity-key.js +189 -0
  80. package/entity/entity-key.js.map +1 -0
  81. package/{src → entity}/entity-state.d.ts +112 -84
  82. package/entity/entity-state.js +135 -0
  83. package/entity/entity-state.js.map +1 -0
  84. package/entity/key-generator.d.ts +57 -0
  85. package/entity/key-generator.js +155 -0
  86. package/entity/key-generator.js.map +1 -0
  87. package/entity/observable-array.d.ts +25 -0
  88. package/entity/observable-array.js +230 -0
  89. package/entity/observable-array.js.map +1 -0
  90. package/entity/primitive-array.d.ts +12 -0
  91. package/entity/primitive-array.js +71 -0
  92. package/entity/primitive-array.js.map +1 -0
  93. package/entity/relation-array.d.ts +24 -0
  94. package/entity/relation-array.js +176 -0
  95. package/entity/relation-array.js.map +1 -0
  96. package/entity/unattached-children-map.d.ts +1 -0
  97. package/entity/unattached-children-map.js +105 -0
  98. package/entity/unattached-children-map.js.map +1 -0
  99. package/generate-entity-classes.js +1176 -0
  100. package/manager/entity-manager.d.ts +801 -0
  101. package/manager/entity-manager.js +2395 -0
  102. package/manager/entity-manager.js.map +1 -0
  103. package/{src → manager}/save-options.d.ts +48 -42
  104. package/manager/save-options.js +51 -0
  105. package/manager/save-options.js.map +1 -0
  106. package/{src → metadata}/data-service.d.ts +229 -184
  107. package/metadata/data-service.js +246 -0
  108. package/metadata/data-service.js.map +1 -0
  109. package/metadata/data-type.d.ts +122 -0
  110. package/metadata/data-type.js +465 -0
  111. package/metadata/data-type.js.map +1 -0
  112. package/metadata/entity-metadata.d.ts +1193 -0
  113. package/metadata/entity-metadata.js +2502 -0
  114. package/metadata/entity-metadata.js.map +1 -0
  115. package/{src → metadata}/local-query-comparison-options.d.ts +65 -59
  116. package/metadata/local-query-comparison-options.js +69 -0
  117. package/metadata/local-query-comparison-options.js.map +1 -0
  118. package/{src → metadata}/naming-convention.d.ts +75 -72
  119. package/metadata/naming-convention.js +97 -0
  120. package/metadata/naming-convention.js.map +1 -0
  121. package/mixins/mixin-get-entity-graph.d.ts +63 -0
  122. package/{fesm2022/breeze-client-mixin-get-entity-graph.mjs → mixins/mixin-get-entity-graph.js} +331 -253
  123. package/mixins/mixin-get-entity-graph.js.map +1 -0
  124. package/mixins/mixin-save-queuing.d.ts +98 -0
  125. package/{fesm2022/breeze-client-mixin-save-queuing.mjs → mixins/mixin-save-queuing.js} +493 -365
  126. package/mixins/mixin-save-queuing.js.map +1 -0
  127. package/package.json +63 -94
  128. package/query/entity-query.d.ts +521 -0
  129. package/query/entity-query.js +1149 -0
  130. package/query/entity-query.js.map +1 -0
  131. package/{src → query}/mapping-context.d.ts +44 -46
  132. package/query/mapping-context.js +412 -0
  133. package/query/mapping-context.js.map +1 -0
  134. package/query/predicate.d.ts +394 -0
  135. package/query/predicate.js +1294 -0
  136. package/query/predicate.js.map +1 -0
  137. package/query/property-path.d.ts +252 -0
  138. package/query/property-path.js +2 -0
  139. package/query/property-path.js.map +1 -0
  140. package/{src → query}/query-options.d.ts +143 -119
  141. package/query/query-options.js +180 -0
  142. package/query/query-options.js.map +1 -0
  143. package/rxjs/breeze-rxjs.d.ts +72 -0
  144. package/rxjs/breeze-rxjs.js +117 -0
  145. package/rxjs/breeze-rxjs.js.map +1 -0
  146. package/validation/validate.d.ts +583 -0
  147. package/validation/validate.js +961 -0
  148. package/validation/validate.js.map +1 -0
  149. package/{src → validation}/validation-options.d.ts +67 -63
  150. package/validation/validation-options.js +70 -0
  151. package/validation/validation-options.js.map +1 -0
  152. package/adapter-ajax-angularjs/adapter-ajax-angularjs.d.ts +0 -17
  153. package/adapter-ajax-angularjs/adapter-core.d.ts +0 -4
  154. package/adapter-ajax-angularjs/index.d.ts +0 -5
  155. package/adapter-ajax-fetch/adapter-ajax-fetch.d.ts +0 -18
  156. package/adapter-ajax-fetch/index.d.ts +0 -5
  157. package/adapter-ajax-httpclient/adapter-ajax-httpclient.d.ts +0 -13
  158. package/adapter-ajax-httpclient/adapter-core.d.ts +0 -4
  159. package/adapter-ajax-httpclient/index.d.ts +0 -5
  160. package/adapter-ajax-jquery/adapter-ajax-jquery.d.ts +0 -15
  161. package/adapter-ajax-jquery/index.d.ts +0 -5
  162. package/adapter-ajax-post/index.d.ts +0 -5
  163. package/adapter-data-service-odata/adapter-core.d.ts +0 -4
  164. package/adapter-data-service-odata/adapter-data-service-odata.d.ts +0 -17
  165. package/adapter-data-service-odata/index.d.ts +0 -5
  166. package/adapter-data-service-webapi/adapter-data-service-webapi.d.ts +0 -15
  167. package/adapter-data-service-webapi/index.d.ts +0 -5
  168. package/adapter-model-library-backing-store/adapter-model-library-backing-store.d.ts +0 -10
  169. package/adapter-model-library-backing-store/index.d.ts +0 -5
  170. package/adapter-model-library-ko/adapter-model-library-ko.d.ts +0 -10
  171. package/adapter-model-library-ko/index.d.ts +0 -5
  172. package/adapter-uri-builder-json/adapter-core.d.ts +0 -4
  173. package/adapter-uri-builder-json/adapter-uri-builder-json.d.ts +0 -8
  174. package/adapter-uri-builder-json/index.d.ts +0 -5
  175. package/adapter-uri-builder-odata/adapter-core.d.ts +0 -4
  176. package/adapter-uri-builder-odata/adapter-uri-builder-odata.d.ts +0 -8
  177. package/adapter-uri-builder-odata/index.d.ts +0 -5
  178. package/esm2022/adapter-ajax-angularjs/adapter-ajax-angularjs.mjs +0 -135
  179. package/esm2022/adapter-ajax-angularjs/adapter-core.mjs +0 -49
  180. package/esm2022/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.mjs +0 -5
  181. package/esm2022/adapter-ajax-fetch/adapter-ajax-fetch.mjs +0 -135
  182. package/esm2022/adapter-ajax-fetch/adapter-core.mjs +0 -49
  183. package/esm2022/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.mjs +0 -5
  184. package/esm2022/adapter-ajax-httpclient/adapter-ajax-httpclient.mjs +0 -139
  185. package/esm2022/adapter-ajax-httpclient/adapter-core.mjs +0 -49
  186. package/esm2022/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.mjs +0 -5
  187. package/esm2022/adapter-ajax-jquery/adapter-ajax-jquery.mjs +0 -107
  188. package/esm2022/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.mjs +0 -5
  189. package/esm2022/adapter-ajax-post/adapter-ajax-post.mjs +0 -77
  190. package/esm2022/adapter-ajax-post/breeze-client-adapter-ajax-post.mjs +0 -5
  191. package/esm2022/adapter-data-service-odata/adapter-core.mjs +0 -49
  192. package/esm2022/adapter-data-service-odata/adapter-data-service-odata.mjs +0 -461
  193. package/esm2022/adapter-data-service-odata/breeze-client-adapter-data-service-odata.mjs +0 -5
  194. package/esm2022/adapter-data-service-webapi/adapter-data-service-webapi.mjs +0 -100
  195. package/esm2022/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.mjs +0 -5
  196. package/esm2022/adapter-model-library-backing-store/adapter-model-library-backing-store.mjs +0 -269
  197. package/esm2022/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.mjs +0 -5
  198. package/esm2022/adapter-model-library-ko/adapter-model-library-ko.mjs +0 -241
  199. package/esm2022/adapter-model-library-ko/breeze-client-adapter-model-library-ko.mjs +0 -5
  200. package/esm2022/adapter-uri-builder-json/adapter-core.mjs +0 -49
  201. package/esm2022/adapter-uri-builder-json/adapter-uri-builder-json.mjs +0 -37
  202. package/esm2022/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.mjs +0 -5
  203. package/esm2022/adapter-uri-builder-odata/adapter-core.mjs +0 -49
  204. package/esm2022/adapter-uri-builder-odata/adapter-uri-builder-odata.mjs +0 -191
  205. package/esm2022/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.mjs +0 -5
  206. package/esm2022/breeze-client.mjs +0 -5
  207. package/esm2022/index.mjs +0 -2
  208. package/esm2022/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.mjs +0 -5
  209. package/esm2022/mixin-get-entity-graph/mixin-get-entity-graph.mjs +0 -269
  210. package/esm2022/mixin-save-queuing/breeze-client-mixin-save-queuing.mjs +0 -5
  211. package/esm2022/mixin-save-queuing/mixin-save-queuing.mjs +0 -421
  212. package/esm2022/src/abstract-data-service-adapter.mjs +0 -325
  213. package/esm2022/src/array.mjs +0 -4
  214. package/esm2022/src/assert-param.mjs +0 -330
  215. package/esm2022/src/breeze.mjs +0 -85
  216. package/esm2022/src/complex-array.mjs +0 -117
  217. package/esm2022/src/config.mjs +0 -232
  218. package/esm2022/src/core.mjs +0 -712
  219. package/esm2022/src/csdl-metadata-parser.mjs +0 -385
  220. package/esm2022/src/data-service.mjs +0 -221
  221. package/esm2022/src/data-type.mjs +0 -510
  222. package/esm2022/src/default-property-interceptor.mjs +0 -460
  223. package/esm2022/src/entity-action.mjs +0 -45
  224. package/esm2022/src/entity-aspect.mjs +0 -897
  225. package/esm2022/src/entity-group.mjs +0 -192
  226. package/esm2022/src/entity-key.mjs +0 -125
  227. package/esm2022/src/entity-manager.mjs +0 -2163
  228. package/esm2022/src/entity-metadata.mjs +0 -2242
  229. package/esm2022/src/entity-query.mjs +0 -1024
  230. package/esm2022/src/entity-state.mjs +0 -107
  231. package/esm2022/src/enum.mjs +0 -143
  232. package/esm2022/src/event.mjs +0 -264
  233. package/esm2022/src/interface-registry.mjs +0 -39
  234. package/esm2022/src/key-generator.mjs +0 -110
  235. package/esm2022/src/local-query-comparison-options.mjs +0 -65
  236. package/esm2022/src/mapping-context.mjs +0 -411
  237. package/esm2022/src/naming-convention.mjs +0 -92
  238. package/esm2022/src/observable-array.mjs +0 -183
  239. package/esm2022/src/predicate.mjs +0 -1259
  240. package/esm2022/src/primitive-array.mjs +0 -85
  241. package/esm2022/src/query-options.mjs +0 -152
  242. package/esm2022/src/relation-array.mjs +0 -173
  243. package/esm2022/src/save-options.mjs +0 -41
  244. package/esm2022/src/unattached-children-map.mjs +0 -56
  245. package/esm2022/src/validate.mjs +0 -995
  246. package/esm2022/src/validation-options.mjs +0 -64
  247. package/fesm2022/breeze-client-adapter-ajax-angularjs.mjs +0 -190
  248. package/fesm2022/breeze-client-adapter-ajax-angularjs.mjs.map +0 -1
  249. package/fesm2022/breeze-client-adapter-ajax-fetch.mjs +0 -190
  250. package/fesm2022/breeze-client-adapter-ajax-fetch.mjs.map +0 -1
  251. package/fesm2022/breeze-client-adapter-ajax-httpclient.mjs +0 -194
  252. package/fesm2022/breeze-client-adapter-ajax-httpclient.mjs.map +0 -1
  253. package/fesm2022/breeze-client-adapter-ajax-jquery.mjs +0 -114
  254. package/fesm2022/breeze-client-adapter-ajax-jquery.mjs.map +0 -1
  255. package/fesm2022/breeze-client-adapter-ajax-post.mjs.map +0 -1
  256. package/fesm2022/breeze-client-adapter-data-service-odata.mjs +0 -516
  257. package/fesm2022/breeze-client-adapter-data-service-odata.mjs.map +0 -1
  258. package/fesm2022/breeze-client-adapter-data-service-webapi.mjs.map +0 -1
  259. package/fesm2022/breeze-client-adapter-model-library-backing-store.mjs +0 -276
  260. package/fesm2022/breeze-client-adapter-model-library-backing-store.mjs.map +0 -1
  261. package/fesm2022/breeze-client-adapter-model-library-ko.mjs +0 -248
  262. package/fesm2022/breeze-client-adapter-model-library-ko.mjs.map +0 -1
  263. package/fesm2022/breeze-client-adapter-uri-builder-json.mjs.map +0 -1
  264. package/fesm2022/breeze-client-adapter-uri-builder-odata.mjs +0 -246
  265. package/fesm2022/breeze-client-adapter-uri-builder-odata.mjs.map +0 -1
  266. package/fesm2022/breeze-client-mixin-get-entity-graph.mjs.map +0 -1
  267. package/fesm2022/breeze-client-mixin-save-queuing.mjs.map +0 -1
  268. package/fesm2022/breeze-client.mjs +0 -14144
  269. package/fesm2022/breeze-client.mjs.map +0 -1
  270. package/index.d.ts +0 -1
  271. package/mixin-get-entity-graph/index.d.ts +0 -5
  272. package/mixin-get-entity-graph/mixin-get-entity-graph.d.ts +0 -31
  273. package/mixin-save-queuing/index.d.ts +0 -5
  274. package/mixin-save-queuing/mixin-save-queuing.d.ts +0 -32
  275. package/src/abstract-data-service-adapter.d.ts +0 -84
  276. package/src/array.d.ts +0 -3
  277. package/src/breeze.d.ts +0 -139
  278. package/src/complex-array.d.ts +0 -13
  279. package/src/config.d.ts +0 -104
  280. package/src/core.d.ts +0 -164
  281. package/src/csdl-metadata-parser.d.ts +0 -7
  282. package/src/data-type.d.ts +0 -89
  283. package/src/default-property-interceptor.d.ts +0 -4
  284. package/src/entity-aspect.d.ts +0 -332
  285. package/src/entity-group.d.ts +0 -28
  286. package/src/entity-key.d.ts +0 -77
  287. package/src/entity-manager.d.ts +0 -680
  288. package/src/entity-metadata.d.ts +0 -988
  289. package/src/entity-query.d.ts +0 -444
  290. package/src/enum.d.ts +0 -100
  291. package/src/event.d.ts +0 -142
  292. package/src/interface-registry.d.ts +0 -150
  293. package/src/key-generator.d.ts +0 -12
  294. package/src/observable-array.d.ts +0 -52
  295. package/src/predicate.d.ts +0 -376
  296. package/src/primitive-array.d.ts +0 -7
  297. package/src/relation-array.d.ts +0 -18
  298. package/src/unattached-children-map.d.ts +0 -19
  299. package/src/validate.d.ts +0 -650
@@ -1,680 +0,0 @@
1
- import { DataServiceAdapter } from './interface-registry';
2
- import { Callback, ErrorCallback } from './core';
3
- import { BreezeEvent } from './event';
4
- import { Entity, StructuralObject, PropertyChangedEventArgs } from './entity-aspect';
5
- import { MetadataStore, EntityType, DataProperty } from './entity-metadata';
6
- import { EntityKey } from './entity-key';
7
- import { EntityAction } from './entity-action';
8
- import { EntityState } from './entity-state';
9
- import { DataService } from './data-service';
10
- import { ValidationError } from './validate';
11
- import { ValidationOptions } from './validation-options';
12
- import { QueryOptions, MergeStrategy } from './query-options';
13
- import { SaveOptions } from './save-options';
14
- import { KeyGenerator } from './key-generator';
15
- import { EntityGroup } from './entity-group';
16
- import { EntityQuery } from './entity-query';
17
- import { UnattachedChildrenMap } from './unattached-children-map';
18
- export interface HttpResponse {
19
- config: any;
20
- data: any;
21
- error?: any;
22
- saveContext?: any;
23
- status: number;
24
- getHeaders(headerName: string): string;
25
- }
26
- export interface ImportResult {
27
- entities: Entity[];
28
- tempKeyMapping: ITempKeyMap;
29
- }
30
- /** Base shape of any errors returned from the server. */
31
- export interface ServerError extends Error {
32
- httpResponse: HttpResponse;
33
- status: number;
34
- message: string;
35
- statusText?: string;
36
- body?: any;
37
- url?: string;
38
- }
39
- /** Shape of a save error returned from the server.
40
- For use by breeze plugin authors only. The class is for use in building a [[IDataServiceAdapter]] implementation.
41
- @adapter (see [[IDataServiceAdapter]])
42
- @hidden @internal
43
- */
44
- export interface SaveErrorFromServer extends ServerError {
45
- entityErrors: EntityErrorFromServer[];
46
- }
47
- /** Shape of a save error when returned to the client. */
48
- export interface SaveError extends ServerError {
49
- entityErrors: EntityError[];
50
- }
51
- /**
52
- For use by breeze plugin authors only. The class is for use in building a [[IDataServiceAdapter]] implementation.
53
- @adapter (see [[IDataServiceAdapter]])
54
- @hidden @internal
55
- */
56
- export interface EntityErrorFromServer {
57
- entityTypeName: string;
58
- keyValues: any[];
59
- errorName: string;
60
- errorMessage: string;
61
- propertyName: string;
62
- custom?: any;
63
- }
64
- /** Shape of an error on a specific entity. Part of a [[ISaveError]] */
65
- export interface EntityError {
66
- entity: Entity;
67
- errorName: string;
68
- errorMessage: string;
69
- propertyName: string;
70
- isServerError: boolean;
71
- custom?: any;
72
- }
73
- /** The shape of the Promise returned by an [[EntityManager.executeQuery]] call. */
74
- export interface QueryResult {
75
- /** Top level entities returned. Excludes entities that are Deleted. */
76
- results: any[];
77
- /** Query that was executed */
78
- query: EntityQuery | string;
79
- /** EntityManager that executed the query */
80
- entityManager?: EntityManager;
81
- /** Total number of results available on the server */
82
- inlineCount?: number;
83
- /** All entities returned by the query. Differs from `results` when an expand is used. Includes entities that are Deleted. */
84
- retrievedEntities?: Entity[];
85
- /** Raw response from the server */
86
- httpResponse?: HttpResponse;
87
- }
88
- export interface QuerySuccessCallback {
89
- (data: QueryResult): void;
90
- }
91
- export interface QueryErrorCallback {
92
- (error: {
93
- query: EntityQuery;
94
- httpResponse: HttpResponse;
95
- entityManager: EntityManager;
96
- message?: string;
97
- stack?: string;
98
- }): void;
99
- }
100
- /** Key mapping information returned as part of an [[ISaveResult]]. */
101
- export interface KeyMapping {
102
- entityTypeName: string;
103
- tempValue: any;
104
- realValue: any;
105
- }
106
- interface ITempKeyMap {
107
- [index: string]: EntityKey;
108
- }
109
- /** Configuration info to be passed to the [[EntityManager.importEntities]] method */
110
- export interface ImportConfig {
111
- /** If true, merge Added entities (with temp keys) as well. This can be dangerous. */
112
- mergeAdds?: boolean;
113
- mergeStrategy?: MergeStrategy;
114
- metadataVersionFn?: (arg: {
115
- metadataVersion: any;
116
- metadataStoreName: any;
117
- }) => void;
118
- }
119
- /** The shape of the Promise returned by an [[EntityManager.saveChanges]] call. */
120
- export interface SaveResult {
121
- entities: Entity[];
122
- keyMappings: KeyMapping[];
123
- deletedKeys?: {
124
- entityTypeName: string;
125
- keyValues: any[];
126
- }[];
127
- httpResponse?: HttpResponse;
128
- }
129
- /** For use by breeze plugin authors only. The class is for use in building a [[IDataServiceAdapter]] implementation.
130
- @adapter (see [[IDataServiceAdapter]])
131
- @hidden
132
- */
133
- export interface SaveContext {
134
- entityManager: EntityManager;
135
- dataService: DataService;
136
- processSavedEntities: (saveResult: SaveResult) => Entity[];
137
- resourceName: string;
138
- adapter?: DataServiceAdapter;
139
- routePrefix?: string;
140
- }
141
- /** For use by breeze plugin authors only. The class is for use in building a [[IDataServiceAdapter]] implementation.
142
- @adapter (see [[IDataServiceAdapter]])
143
- @hidden
144
- */
145
- export interface SaveBundle {
146
- entities: Entity[];
147
- saveOptions: SaveOptions;
148
- }
149
- /** Configuration info to be passed to the [[EntityManager]] constructor */
150
- export interface EntityManagerConfig {
151
- /** The service name associated with this EntityManager. **/
152
- serviceName?: string;
153
- /** The DataService associated with this EntityManager. **/
154
- dataService?: DataService;
155
- /** The [[QueryOptions]] associated with this EntityManager. **/
156
- queryOptions?: QueryOptions;
157
- /** The [[SaveOptions]] associated with this EntityManager. **/
158
- saveOptions?: SaveOptions;
159
- /** The [[ValidationOptions]] associated with this EntityManager. **/
160
- validationOptions?: ValidationOptions;
161
- /** The [[KeyGenerator]] associated with this EntityManager. **/
162
- keyGenerator?: KeyGenerator;
163
- /** The [[KeyGenerator]] constructor associated with this EntityManager. **/
164
- keyGeneratorCtor?: {
165
- new (): KeyGenerator;
166
- };
167
- /** The [[MetadataStore]] associated with this EntityManager. **/
168
- metadataStore?: MetadataStore;
169
- }
170
- /** The shape returned by callbacks registered with [[EntityManager.entityChanged]] event */
171
- export interface EntityChangedEventArgs {
172
- entityAction: EntityAction;
173
- entity?: Entity;
174
- args?: PropertyChangedEventArgs;
175
- }
176
- export interface ValidationErrorsChangedEventArgs {
177
- entity: Entity;
178
- added: ValidationError[];
179
- removed: ValidationError[];
180
- }
181
- export interface HasChangesChangedEventArgs {
182
- entityManager: EntityManager;
183
- hasChanges: boolean;
184
- }
185
- /**
186
- Instances of the EntityManager contain and manage collections of entities, either retrieved from a backend datastore or created on the client.
187
- **/
188
- export declare class EntityManager {
189
- /** @hidden @internal */
190
- _$typeName: string;
191
- /** The service name associated with this EntityManager. __Read Only__ **/
192
- serviceName: string;
193
- /** The DataService associated with this EntityManager. __Read Only__ **/
194
- dataService: DataService;
195
- /** The [[QueryOptions]] associated with this EntityManager. __Read Only__ **/
196
- queryOptions: QueryOptions;
197
- /** The [[SaveOptions]] associated with this EntityManager. __Read Only__ **/
198
- saveOptions: SaveOptions;
199
- /** The [[ValidationOptions]] associated with this EntityManager. __Read Only__ **/
200
- validationOptions: ValidationOptions;
201
- /** The [[KeyGenerator]] associated with this EntityManager. __Read Only__ **/
202
- keyGenerator: KeyGenerator;
203
- /** The [[KeyGenerator]] constructor associated with this EntityManager. __Read Only__ **/
204
- keyGeneratorCtor: {
205
- new (): KeyGenerator;
206
- };
207
- /** The [[MetadataStore]] associated with this EntityManager. __Read Only__ **/
208
- metadataStore: MetadataStore;
209
- isLoading: boolean;
210
- isRejectingChanges: boolean;
211
- /**
212
- A [[BreezeEvent]] that fires whenever a change to any entity in this EntityManager occurs. __Read Only__
213
-
214
- @eventArgs -
215
- - entityAction - The [[EntityAction]] that occured.
216
- - entity - The entity that changed. If this is null, then all entities in the entityManager were affected.
217
- - args - Additional information about this event. This will differ based on the entityAction.
218
-
219
- > let em = new EntityManager( {serviceName: "breeze/NorthwindIBModel" });
220
- > em.entityChanged.subscribe(function(changeArgs) {
221
- > // This code will be executed any time any entity within the entityManager
222
- > // is added, modified, deleted or detached for any reason.
223
- > let action = changeArgs.entityAction;
224
- > let entity = changeArgs.entity;
225
- > // .. do something to this entity when it is changed.
226
- > });
227
- > });
228
- @event
229
- **/
230
- entityChanged: BreezeEvent<EntityChangedEventArgs>;
231
- /**
232
- An [[BreezeEvent]] that fires whenever validationErrors change for any entity in this EntityManager. __Read Only__
233
- @eventArgs -
234
- - entity - The entity on which the validation errors have been added or removed.
235
- - added - An array containing any newly added [[ValidationError]]s
236
- - removed - An array containing any newly removed [[ValidationError]]s. This is those errors that have been 'fixed'
237
-
238
- > let em = new EntityManager( {serviceName: "breeze/NorthwindIBModel" });
239
- > em.validationErrorsChanged.subscribe(function(changeArgs) {
240
- > // This code will be executed any time any entity within the entityManager experiences a change to its validationErrors collection.
241
- > function (validationChangeArgs) {
242
- > let entity == validationChangeArgs.entity;
243
- > let errorsAdded = validationChangeArgs.added;
244
- > let errorsCleared = validationChangeArgs.removed;
245
- > // ... do something interesting with the order.
246
- > });
247
- > });
248
- > });
249
- @event
250
- **/
251
- validationErrorsChanged: BreezeEvent<ValidationErrorsChangedEventArgs>;
252
- /**
253
- A [[BreezeEvent]] that fires whenever an EntityManager transitions to or from having changes. __Read Only__
254
- @eventArgs -
255
- - entityManager - The EntityManager whose 'hasChanges' status has changed.
256
- - hasChanges - Whether or not this EntityManager has changes.
257
-
258
- > let em = new EntityManager( {serviceName: "breeze/NorthwindIBModel" });
259
- > em.hasChangesChanged.subscribe(function(args) {
260
- > let hasChangesChanged = args.hasChanges;
261
- > let entityManager = args.entityManager;
262
- > });
263
- > });
264
- @event
265
- **/
266
- hasChangesChanged: BreezeEvent<HasChangesChangedEventArgs>;
267
- /** @hidden @internal */
268
- _pendingPubs?: any[];
269
- /** @hidden @internal */
270
- _hasChangesAction?: (() => boolean);
271
- /** @hidden @internal */
272
- _hasChanges: boolean;
273
- /** @hidden @internal */
274
- _entityGroupMap: {
275
- [index: string]: EntityGroup;
276
- };
277
- /** @hidden @internal */
278
- _unattachedChildrenMap: UnattachedChildrenMap;
279
- /** @hidden @internal */
280
- _inKeyFixup: boolean;
281
- helper: {
282
- unwrapInstance: typeof unwrapInstance;
283
- unwrapOriginalValues: typeof unwrapOriginalValues;
284
- unwrapChangedValues: typeof unwrapChangedValues;
285
- };
286
- /**
287
- EntityManager constructor.
288
-
289
- At its most basic an EntityManager can be constructed with just a service name
290
- > let entityManager = new EntityManager( "breeze/NorthwindIBModel");
291
-
292
- This is the same as calling it with the following configuration object
293
- > let entityManager = new EntityManager( {serviceName: "breeze/NorthwindIBModel" });
294
-
295
- Usually however, configuration objects will contain more than just the 'serviceName';
296
- > let metadataStore = new MetadataStore();
297
- > let entityManager = new EntityManager( {
298
- > serviceName: "breeze/NorthwindIBModel",
299
- > metadataStore: metadataStore
300
- > });
301
-
302
- or
303
- > return new QueryOptions({
304
- > mergeStrategy: obj,
305
- > fetchStrategy: this.fetchStrategy
306
- > });
307
- > let queryOptions = new QueryOptions({
308
- > mergeStrategy: MergeStrategy.OverwriteChanges,
309
- > fetchStrategy: FetchStrategy.FromServer
310
- > });
311
- > let validationOptions = new ValidationOptions({
312
- > validateOnAttach: true,
313
- > validateOnSave: true,
314
- > validateOnQuery: false
315
- > });
316
- > let entityManager = new EntityManager({
317
- > serviceName: "breeze/NorthwindIBModel",
318
- > queryOptions: queryOptions,
319
- > validationOptions: validationOptions
320
- > });
321
- @param emConfig - Configuration settings or a service name.
322
- **/
323
- constructor(emConfig?: EntityManagerConfig | string);
324
- /**
325
- General purpose property set method. Any of the properties in the [[EntityManagerConfig]]
326
- may be set.
327
- > // assume em1 is a previously created EntityManager
328
- > // where we want to change some of its settings.
329
- > em1.setProperties( {
330
- > serviceName: "breeze/foo"
331
- > });
332
- @param config - An object containing the selected properties and values to set.
333
- **/
334
- setProperties(config: EntityManagerConfig): void;
335
- /** @hidden @internal */
336
- static _updateWithConfig(em: EntityManager, config: EntityManagerConfig, isCtor: boolean): void;
337
- createEntity(typeName: string, initialValues?: Object, entityState?: EntityState, mergeStrategy?: MergeStrategy): Entity;
338
- createEntity(entityType: EntityType, initialValues?: Object, entityState?: EntityState, mergeStrategy?: MergeStrategy): Entity;
339
- static importEntities(exportedString: string, config?: ImportConfig): EntityManager;
340
- static importEntities(exportedData: Object, config?: ImportConfig): EntityManager;
341
- /**
342
- Calls [[EntityAspect.acceptChanges]] on every changed entity in this EntityManager.
343
- **/
344
- acceptChanges(): void;
345
- /**
346
- Exports selected entities, all entities of selected types, or an entire EntityManager cache.
347
-
348
- This method takes a snapshot of an EntityManager that can be stored offline or held in memory.
349
- Use the [[EntityManager.importEntities]] method to restore or merge the snapshot
350
- into another EntityManager at some later time.
351
- > // let em1 be an EntityManager containing a number of existing entities.
352
- > // export every entity in em1.
353
- > let bundle = em1.exportEntities();
354
- > // save to the browser's local storage
355
- > window.localStorage.setItem("myEntityManager", bundle);
356
- > // later retrieve the export
357
- > let bundleFromStorage = window.localStorage.getItem("myEntityManager");
358
- > // import the retrieved export bundle into another manager
359
- > let em2 = em1.createEmptyCopy();
360
- > em2.importEntities(bundleFromStorage);
361
- > // em2 now has a complete, faithful copy of the entities that were in em1
362
-
363
- You can also control exactly which entities are exported.
364
- > // get em1's unsaved changes (an array) and export them.
365
- > let changes = em1.getChanges();
366
- > let bundle = em1.exportEntities(changes);
367
- > // merge these entities into em2 which may contains some of the same entities.
368
- > // do NOT overwrite the entities in em2 if they themselves have unsaved changes.
369
- > em2.importEntities(bundle, { mergeStrategy: MergeStrategy.PreserveChanges} );
370
-
371
- Metadata are included in an export by default. You may want to exclude the metadata
372
- especially if you're exporting just a few entities for local storage.
373
- > let bundle = em1.exportEntities(arrayOfSelectedEntities, {includeMetadata: false});
374
- > window.localStorage.setItem("goodStuff", bundle);
375
-
376
- You may still express this option as a boolean value although this older syntax is deprecated.
377
- > // Exclude the metadata (deprecated syntax)
378
- > let bundle = em1.exportEntities(arrayOfSelectedEntities, false);
379
-
380
- You can export all entities of one or more specified EntityTypes.
381
- > // Export all Customer and Employee entities (and also exclude metadata)
382
- > let bundle = em1.exportEntities(['Customer', 'Employee'], {includeMetadata: false});
383
-
384
- All of the above examples return an export bundle as a string which is the default format.
385
- You can export the bundle as JSON if you prefer by setting the `asString` option to false.
386
- > // Export all Customer and Employee entities as JSON and exclude the metadata
387
- > let bundle = em1.exportEntities(['Customer', 'Employee'],
388
- > {asString: false, includeMetadata: false});
389
- > // store JSON bundle somewhere ... perhaps indexDb ... and later import as we do here.
390
- > em2.importEntities(bundle);
391
- @param entities - The entities to export or the EntityType(s) of the entities to export;
392
- all entities are exported if this parameter is omitted or null.
393
- @param exportConfig - Export configuration options or a boolean
394
- - asString - (boolean) - If true (default), return export bundle as a string.
395
- - includeMetadata - (boolean) - If true (default), include metadata in the export bundle.
396
- @return The export bundle either serialized as a string (default) or as a JSON object.
397
- The bundle contains the metadata (unless excluded) and the entity data grouped by type.
398
- The entity data include property values, change-state, and temporary key mappings (if any).
399
-
400
- The export bundle internals are deliberately undocumented. This Breeze-internal representation of entity data is
401
- suitable for export, storage, and import. The schema and contents of the bundle may change in future versions of Breeze.
402
- Manipulate it at your own risk with appropriate caution.
403
- **/
404
- exportEntities(entities?: Entity[] | EntityType[] | string[], exportConfig?: {
405
- asString?: boolean;
406
- includeMetadata?: boolean;
407
- } | boolean): string | Object;
408
- importEntities(exportedString: string, config?: ImportConfig): ImportResult;
409
- importEntities(exportedData: Object, config?: ImportConfig): ImportResult;
410
- /**
411
- Clears this EntityManager's cache but keeps all other settings. Note that this
412
- method is not as fast as creating a new EntityManager via 'new EntityManager'.
413
- This is because clear actually detaches all of the entities from the EntityManager.
414
- > // assume em1 is an EntityManager containing a number of existing entities.
415
- > em1.clear();
416
- > // em1 is will now contain no entities, but all other setting will be maintained.
417
- **/
418
- clear(): void;
419
- /**
420
- Creates an empty copy of this EntityManager but with the same DataService, MetadataStore, QueryOptions, SaveOptions, ValidationOptions, etc.
421
- > // assume em1 is an EntityManager containing a number of existing entities.
422
- > let em2 = em1.createEmptyCopy();
423
- > // em2 is a new EntityManager with all of em1's settings
424
- > // but no entities.
425
- @return A new EntityManager.
426
- **/
427
- createEmptyCopy(): EntityManager;
428
- /**
429
- Attaches an entity to this EntityManager with an [[EntityState]] of 'Added'.
430
- > // assume em1 is an EntityManager containing a number of existing entities.
431
- > let custType = em1.metadataStore.getEntityType("Customer");
432
- > let cust1 = custType.createEntity();
433
- > em1.addEntity(cust1);
434
-
435
- Note that this is the same as using 'attachEntity' with an [[EntityState]] of 'Added'.
436
-
437
- > // assume em1 is an EntityManager containing a number of existing entities.
438
- > let custType = em1.metadataStore.getEntityType("Customer");
439
- > let cust1 = custType.createEntity();
440
- > em1.attachEntity(cust1, EntityState.Added);
441
- @param entity - The entity to add.
442
- @return The added entity.
443
- **/
444
- addEntity(entity: Entity): Entity;
445
- /**
446
- Attaches an entity to this EntityManager with a specified [[EntityState]].
447
- > // assume em1 is an EntityManager containing a number of existing entities.
448
- > let custType = em1.metadataStore.getEntityType("Customer");
449
- > let cust1 = custType.createEntity();
450
- > em1.attachEntity(cust1, EntityState.Added);
451
- @param entity - The entity to add.
452
- @param entityState - (default=EntityState.Unchanged) The EntityState of the newly attached entity. If omitted this defaults to EntityState.Unchanged.
453
- @param mergeStrategy - (default = MergeStrategy.Disallowed) How the specified entity should be merged into the EntityManager if this EntityManager already contains an entity with the same key.
454
- @return The attached entity.
455
- **/
456
- attachEntity(entity: Entity, entityState?: EntityState, mergeStrategy?: MergeStrategy): Entity;
457
- /**
458
- Detaches an entity from this EntityManager.
459
- > // assume em1 is an EntityManager containing a number of existing entities.
460
- > // assume cust1 is a customer Entity previously attached to em1
461
- > em1.detachEntity(cust1);
462
- > // em1 will now no longer contain cust1 and cust1 will have an
463
- > // entityAspect.entityState of EntityState.Detached
464
- @param entity - The entity to detach.
465
- @return Whether the entity could be detached. This will return false if the entity is already detached or was never attached.
466
- **/
467
- detachEntity(entity: Entity): any;
468
- /**
469
- Fetches the metadata associated with the EntityManager's current 'serviceName'. This call
470
- occurs internally before the first query to any service if the metadata hasn't already been
471
- loaded. __Async__
472
-
473
- Usually you will not actually process the results of a fetchMetadata call directly, but will instead
474
- ask for the metadata from the EntityManager after the fetchMetadata call returns.
475
- > let em1 = new EntityManager( "breeze/NorthwindIBModel");
476
- > em1.fetchMetadata()
477
- > .then(function() {
478
- > let metadataStore = em1.metadataStore;
479
- > // do something with the metadata
480
- > }).catch(function(exception) {
481
- > // handle exception here
482
- > });
483
-
484
- @param callback - Function called on success.
485
- @param errorCallback - Function called on failure.
486
- @return {Promise}
487
- - schema {Object} The raw Schema object from metadata provider - Because this schema will differ depending on the metadata provider
488
- it is usually better to access metadata via the 'metadataStore' property of the EntityManager instead of using this 'raw' data.
489
- **/
490
- fetchMetadata(dataService?: DataService, callback?: Callback, errorCallback?: ErrorCallback): Promise<any>;
491
- executeQuery(query: string, callback?: QuerySuccessCallback, errorCallback?: QueryErrorCallback): Promise<QueryResult>;
492
- executeQuery(query: EntityQuery, callback?: QuerySuccessCallback, errorCallback?: QueryErrorCallback): Promise<QueryResult>;
493
- /**
494
- Executes the specified query against this EntityManager's local cache.
495
-
496
- Because this method is executed immediately there is no need for a promise or a callback
497
- > let em = new EntityManager(serviceName);
498
- > let query = new EntityQuery("Orders");
499
- > let orders = em.executeQueryLocally(query);
500
-
501
- Note that this can also be accomplished using the 'executeQuery' method with
502
- a FetchStrategy of FromLocalCache and making use of the Promise or callback
503
- > let em = new EntityManager(serviceName);
504
- > let query = new EntityQuery("Orders").using(FetchStrategy.FromLocalCache);
505
- > em.executeQuery(query).then( function(data) {
506
- > let orders = data.results;
507
- > ... query results processed here
508
- > }).catch( function(err) {
509
- > ... query failure processed here
510
- > });
511
- @param query - The [[EntityQuery]] to execute.
512
- @return {Array of Entity} Array of entities from cache that satisfy the query
513
- **/
514
- executeQueryLocally(query: EntityQuery): any[];
515
- /**
516
- Saves either a list of specified entities or all changed entities within this EntityManager. If there are no changes to any of the entities
517
- specified then there will be no server side call made but a valid 'empty' saveResult will still be returned. __Async__
518
-
519
- Often we will be saving all of the entities within an EntityManager that are either added, modified or deleted
520
- and we will let the 'saveChanges' call determine which entities these are.
521
- > // assume em1 is an EntityManager containing a number of preexisting entities.
522
- > // This could include added, modified and deleted entities.
523
- > em.saveChanges().then(function(saveResult) {
524
- > let savedEntities = saveResult.entities;
525
- > let keyMappings = saveResult.keyMappings;
526
- > }).catch(function (e) {
527
- > // e is any exception that was thrown.
528
- > });
529
-
530
- But we can also control exactly which entities to save and can specify specific SaveOptions
531
-
532
- > // assume entitiesToSave is an array of entities to save.
533
- > let saveOptions = new SaveOptions({ allowConcurrentSaves: true });
534
- > em.saveChanges(entitiesToSave, saveOptions).then(function(saveResult) {
535
- > let savedEntities = saveResult.entities;
536
- > let keyMappings = saveResult.keyMappings;
537
- > }).catch(function (e) {
538
- > // e is any exception that was thrown.
539
- > });
540
-
541
- Callback methods can also be used
542
- > em.saveChanges(entitiesToSave, null,
543
- > function(saveResult) {
544
- > let savedEntities = saveResult.entities;
545
- > let keyMappings = saveResult.keyMappings;
546
- > }, function (e) {
547
- > // e is any exception that was thrown.
548
- > }
549
- > );
550
-
551
- @param entities - The list of entities to save.
552
- Every entity in that list will be sent to the server, whether changed or unchanged,
553
- as long as it is attached to this EntityManager.
554
- If this parameter is omitted, null or empty (the usual case),
555
- every entity with pending changes in this EntityManager will be saved.
556
- @param saveOptions - [[SaveOptions]] for the save - will default to
557
- [[EntityManager.saveOptions]] if null.
558
- @param callback - Function called on success.
559
- @param errorCallback - Function called on failure.
560
- @return {Promise} Promise
561
- **/
562
- saveChanges(entities?: Entity[] | null, saveOptions?: SaveOptions, callback?: Function, errorCallback?: Function): Promise<SaveResult>;
563
- /**
564
- Run the "saveChanges" pre-save client validation logic.
565
-
566
- This is NOT a general purpose validation method.
567
- It is intended for utilities that must know if saveChanges
568
- would reject the save due to client validation errors.
569
-
570
- It only validates entities if the EntityManager's
571
- [[ValidationOptions]].validateOnSave is true.
572
-
573
- @param entitiesToSave {Array of Entity} The list of entities to save (to validate).
574
- @return {Error} Validation error or null if no error
575
- **/
576
- saveChangesValidateOnClient(entitiesToSave: Entity[]): Error;
577
- /** @hidden @internal */
578
- _findEntityGroup(entityType: EntityType): EntityGroup;
579
- /**
580
- > // assume em1 is an EntityManager containing a number of preexisting entities.
581
- > let employeeType = em1.metadataStore.getEntityType("Employee");
582
- > let employeeKey = new EntityKey(employeeType, 1);
583
- > let employee = em1.getEntityByKey(employeeKey);
584
- > // employee will either be an entity or null.
585
- **/
586
- getEntityByKey(entityKey: EntityKey): Entity | null;
587
- /**
588
- > // assume em1 is an EntityManager containing a number of preexisting entities.
589
- > let employee = em1.getEntityByKey("Employee", 1);
590
- > // employee will either be an entity or null.
591
- **/
592
- getEntityByKey(typeName: string, keyValues: any | any[]): Entity | null;
593
- /**
594
- > // assume em1 is an EntityManager containing a number of preexisting entities.
595
- > let employeeType = em1.metadataStore.getEntityType("Employee");
596
- > let employee = em1.getEntityByKey(employeeType, 1);
597
- > // employee will either be an entity or null.
598
- **/
599
- getEntityByKey(type: EntityType, keyValues: any | any[]): Entity | null;
600
- fetchEntityByKey(typeName: string, keyValues: any | any[], checkLocalCacheFirst?: boolean): Promise<IEntityByKeyResult>;
601
- fetchEntityByKey(entityType: EntityType, keyValues: any | any[], checkLocalCacheFirst?: boolean): Promise<IEntityByKeyResult>;
602
- fetchEntityByKey(entityKey: EntityKey, checkLocalCacheFirst?: boolean): Promise<IEntityByKeyResult>;
603
- /**
604
- [Deprecated] - Attempts to locate an entity within this EntityManager by its [[EntityKey]].
605
- > // assume em1 is an EntityManager containing a number of preexisting entities.
606
- > let employeeType = em1.metadataStore.getEntityType("Employee");
607
- > let employeeKey = new EntityKey(employeeType, 1);
608
- > let employee = em1.findEntityByKey(employeeKey);
609
- > // employee will either be an entity or null.
610
- @deprecated Use getEntityByKey instead
611
- @param entityKey - The [[EntityKey]] of the Entity to be located.
612
- @return An Entity or null;
613
- **/
614
- findEntityByKey(entityKey: EntityKey): Entity;
615
- /**
616
- Generates a temporary key for the specified entity. This is used to insure that newly
617
- created entities have unique keys and to register that these keys are temporary and
618
- need to be automatically replaced with 'real' key values once these entities are saved.
619
-
620
- The [[EntityManager.keyGeneratorCtor]] property is used internally by this method to actually generate
621
- the keys - See the KeyGenerator interface interface description to see
622
- how a custom key generator can be plugged in.
623
- > // assume em1 is an EntityManager containing a number of preexisting entities.
624
- > let custType = em1.metadataStore.getEntityType("Customer");
625
- > let customer = custType.createEntity();
626
- > let customerId = em.generateTempKeyValue(customer);
627
- > // The 'customer' entity 'CustomerID' property is now set to a newly generated unique id value
628
- > // This property will change again after a successful save of the 'customer' entity.
629
- >
630
- > em1.saveChanges().then( function( data) {
631
- > let sameCust1 = data.results[0];
632
- > // cust1 === sameCust1;
633
- > // but cust1.getProperty("CustomerId") != customerId
634
- > // because the server will have generated a new id
635
- > // and the client will have been updated with this
636
- > // new id.
637
- > })
638
- @param entity - The Entity to generate a key for.
639
- @return The new key value
640
- **/
641
- generateTempKeyValue(entity: Entity): any;
642
- hasChanges(): boolean;
643
- hasChanges(entityTypeNames: string | string[]): boolean;
644
- hasChanges(entityTypes: EntityType | EntityType[]): boolean;
645
- /** @hidden @internal */
646
- _hasChangesCore(entityTypes?: EntityType | EntityType[] | string | string[]): boolean;
647
- getChanges(): Entity[];
648
- getChanges(entityTypeNames: string | string[]): Entity[];
649
- getChanges(entityTypes: EntityType | EntityType[]): Entity[];
650
- /**
651
- Rejects (reverses the effects) all of the additions, modifications and deletes from this EntityManager.
652
- Calls [[EntityAspect.rejectChanges]] on every changed entity in this EntityManager.
653
- > // assume em1 is an EntityManager containing a number of preexisting entities.
654
- > let entities = em1.rejectChanges();
655
- @return The entities whose changes were rejected. These entities will all have EntityStates of
656
- either 'Unchanged' or 'Detached'
657
- **/
658
- rejectChanges(): Entity[];
659
- getEntities(entityTypeNames?: string | string[], entityStates?: EntityState | EntityState[]): Entity[];
660
- getEntities(entityTypes?: EntityType | EntityType[], entityStates?: EntityState | EntityState[]): Entity[];
661
- /** @hidden @internal */
662
- _notifyStateChange(entity: Entity, needsSave: boolean): void;
663
- /** @hidden @internal */
664
- _setHasChanges(hasChanges?: boolean): void;
665
- /** @hidden @internal */
666
- _linkRelatedEntities(entity: Entity): void;
667
- /** @hidden @internal */
668
- _attachEntityCore(entity: Entity, entityState: EntityState, mergeStrategy: MergeStrategy): Entity;
669
- /** @hidden @internal */
670
- _updateFkVal(fkProp: DataProperty, oldValue: any, newValue: any): void;
671
- }
672
- export interface IEntityByKeyResult {
673
- entity?: Entity;
674
- entityKey: EntityKey;
675
- fromCache: boolean;
676
- }
677
- declare function unwrapInstance(structObj: StructuralObject, transformFn?: (dp: DataProperty, val: any) => any): any;
678
- declare function unwrapOriginalValues(target: StructuralObject, metadataStore: MetadataStore, transformFn?: (dp: DataProperty, val: any) => any): Record<string, any>;
679
- declare function unwrapChangedValues(entity: Entity, metadataStore: MetadataStore, transformFn: (dp: DataProperty, val: any) => any): Record<string, any>;
680
- export {};