angular-odata 0.128.0 → 0.131.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 (246) hide show
  1. package/README.md +27 -244
  2. package/fesm2022/angular-odata.mjs +2320 -1118
  3. package/fesm2022/angular-odata.mjs.map +1 -1
  4. package/lib/api.d.ts +10 -11
  5. package/lib/cache/cache.d.ts +2 -2
  6. package/lib/cache/memory.d.ts +2 -2
  7. package/lib/cache/storage.d.ts +2 -2
  8. package/lib/index.d.ts +1 -0
  9. package/lib/loaders.d.ts +8 -8
  10. package/lib/metadata/csdl/csdl-annotation.d.ts +62 -26
  11. package/lib/metadata/csdl/csdl-entity-container.d.ts +8 -3
  12. package/lib/metadata/csdl/csdl-entity-set.d.ts +7 -2
  13. package/lib/metadata/csdl/csdl-enum-type.d.ts +11 -3
  14. package/lib/metadata/csdl/csdl-function-action.d.ts +54 -11
  15. package/lib/metadata/csdl/csdl-navigation-property-binding.d.ts +4 -0
  16. package/lib/metadata/csdl/csdl-reference.d.ts +26 -3
  17. package/lib/metadata/csdl/csdl-schema.d.ts +5 -2
  18. package/lib/metadata/csdl/csdl-singleton.d.ts +5 -0
  19. package/lib/metadata/csdl/csdl-structural-property.d.ts +19 -3
  20. package/lib/metadata/csdl/csdl-structured-type.d.ts +28 -7
  21. package/lib/metadata/csdl/csdl-type-definition.d.ts +3 -0
  22. package/lib/metadata/metadata.d.ts +16 -3
  23. package/lib/models/collection.d.ts +2 -1
  24. package/lib/models/model.d.ts +6 -5
  25. package/lib/models/options.d.ts +11 -4
  26. package/lib/module.d.ts +3 -3
  27. package/lib/options.d.ts +3 -3
  28. package/lib/resources/path/segments.d.ts +3 -3
  29. package/lib/resources/query/builder.d.ts +3 -2
  30. package/lib/resources/query/expressions/apply.d.ts +1 -1
  31. package/lib/resources/query/expressions/compute.d.ts +1 -1
  32. package/lib/resources/query/expressions/count.d.ts +1 -1
  33. package/lib/resources/query/expressions/expand.d.ts +5 -2
  34. package/lib/resources/query/expressions/filter.d.ts +2 -1
  35. package/lib/resources/query/expressions/orderby.d.ts +2 -1
  36. package/lib/resources/query/expressions/search.d.ts +2 -1
  37. package/lib/resources/query/expressions/select.d.ts +2 -1
  38. package/lib/resources/query/expressions/syntax.d.ts +2 -2
  39. package/lib/resources/query/handlers.d.ts +17 -5
  40. package/lib/resources/query/options.d.ts +3 -3
  41. package/lib/resources/resource.d.ts +36 -8
  42. package/lib/resources/types/action.d.ts +4 -4
  43. package/lib/resources/types/entity-set.d.ts +15 -8
  44. package/lib/resources/types/entity.d.ts +5 -1
  45. package/lib/resources/types/function.d.ts +4 -4
  46. package/lib/resources/types/navigation-property.d.ts +12 -3
  47. package/lib/resources/types/property.d.ts +14 -3
  48. package/lib/resources/types/singleton.d.ts +5 -1
  49. package/lib/schema/annotation.d.ts +3 -3
  50. package/lib/schema/callable.d.ts +3 -3
  51. package/lib/schema/element.d.ts +3 -3
  52. package/lib/schema/entity-container.d.ts +2 -2
  53. package/lib/schema/entity-set.d.ts +2 -2
  54. package/lib/schema/enum-type.d.ts +10 -10
  55. package/lib/schema/parsers/callable.d.ts +4 -4
  56. package/lib/schema/parsers/enum-type.d.ts +15 -15
  57. package/lib/schema/parsers/structured-type.d.ts +8 -5
  58. package/lib/schema/schema.d.ts +3 -3
  59. package/lib/schema/singleton.d.ts +2 -2
  60. package/lib/schema/structured-type.d.ts +7 -4
  61. package/lib/services/entity-set.d.ts +9 -6
  62. package/lib/services/entity.d.ts +1 -1
  63. package/lib/services/singleton.d.ts +1 -1
  64. package/lib/settings.d.ts +2 -2
  65. package/lib/types.d.ts +82 -69
  66. package/lib/utils/enums.d.ts +12 -12
  67. package/lib/utils/http.d.ts +1 -1
  68. package/lib/utils/objects.d.ts +1 -1
  69. package/lib/utils/odata.d.ts +2 -2
  70. package/lib/utils/strings.d.ts +2 -2
  71. package/package.json +3 -5
  72. package/schematics/apigen/angular/api-config.js +7 -1
  73. package/schematics/apigen/angular/api-config.js.map +1 -1
  74. package/schematics/apigen/angular/base.d.ts +22 -2
  75. package/schematics/apigen/angular/base.js +82 -42
  76. package/schematics/apigen/angular/base.js.map +1 -1
  77. package/schematics/apigen/angular/entity.js +7 -1
  78. package/schematics/apigen/angular/entity.js.map +1 -1
  79. package/schematics/apigen/angular/enum.js +1 -0
  80. package/schematics/apigen/angular/enum.js.map +1 -1
  81. package/schematics/apigen/angular/module.js.map +1 -1
  82. package/schematics/apigen/angular/service.js +3 -2
  83. package/schematics/apigen/angular/service.js.map +1 -1
  84. package/schematics/apigen/files/api-config/__fileName__.ts +8 -6
  85. package/schematics/apigen/files/entity/__fileName__.ts +2 -2
  86. package/schematics/apigen/files/entitycontainer-service/__fileName__.ts +1 -1
  87. package/schematics/apigen/files/entityset-service/__fileName__.ts +1 -1
  88. package/schematics/apigen/files/enum/__fileName__.ts +1 -1
  89. package/schematics/apigen/files/metadata/metadata.json +1 -0
  90. package/schematics/apigen/files/singleton-service/__fileName__.ts +1 -1
  91. package/schematics/apigen/index.js +56 -12
  92. package/schematics/apigen/index.js.map +1 -1
  93. package/schematics/apigen/metadata/csdl/csdl-annotation.d.ts +56 -23
  94. package/schematics/apigen/metadata/csdl/csdl-annotation.js +143 -13
  95. package/schematics/apigen/metadata/csdl/csdl-annotation.js.map +1 -1
  96. package/schematics/apigen/metadata/csdl/csdl-entity-container.d.ts +3 -0
  97. package/schematics/apigen/metadata/csdl/csdl-entity-container.js +19 -0
  98. package/schematics/apigen/metadata/csdl/csdl-entity-container.js.map +1 -1
  99. package/schematics/apigen/metadata/csdl/csdl-entity-set.d.ts +3 -0
  100. package/schematics/apigen/metadata/csdl/csdl-entity-set.js +11 -0
  101. package/schematics/apigen/metadata/csdl/csdl-entity-set.js.map +1 -1
  102. package/schematics/apigen/metadata/csdl/csdl-enum-type.d.ts +6 -0
  103. package/schematics/apigen/metadata/csdl/csdl-enum-type.js +17 -0
  104. package/schematics/apigen/metadata/csdl/csdl-enum-type.js.map +1 -1
  105. package/schematics/apigen/metadata/csdl/csdl-function-action.d.ts +37 -0
  106. package/schematics/apigen/metadata/csdl/csdl-function-action.js +52 -0
  107. package/schematics/apigen/metadata/csdl/csdl-function-action.js.map +1 -1
  108. package/schematics/apigen/metadata/csdl/csdl-navigation-property-binding.d.ts +4 -0
  109. package/schematics/apigen/metadata/csdl/csdl-navigation-property-binding.js +6 -0
  110. package/schematics/apigen/metadata/csdl/csdl-navigation-property-binding.js.map +1 -1
  111. package/schematics/apigen/metadata/csdl/csdl-reference.d.ts +15 -3
  112. package/schematics/apigen/metadata/csdl/csdl-reference.js +26 -2
  113. package/schematics/apigen/metadata/csdl/csdl-reference.js.map +1 -1
  114. package/schematics/apigen/metadata/csdl/csdl-schema.d.ts +3 -0
  115. package/schematics/apigen/metadata/csdl/csdl-schema.js +37 -0
  116. package/schematics/apigen/metadata/csdl/csdl-schema.js.map +1 -1
  117. package/schematics/apigen/metadata/csdl/csdl-singleton.d.ts +3 -0
  118. package/schematics/apigen/metadata/csdl/csdl-singleton.js +8 -0
  119. package/schematics/apigen/metadata/csdl/csdl-singleton.js.map +1 -1
  120. package/schematics/apigen/metadata/csdl/csdl-structural-property.d.ts +16 -0
  121. package/schematics/apigen/metadata/csdl/csdl-structural-property.js +53 -0
  122. package/schematics/apigen/metadata/csdl/csdl-structural-property.js.map +1 -1
  123. package/schematics/apigen/metadata/csdl/csdl-structured-type.d.ts +22 -3
  124. package/schematics/apigen/metadata/csdl/csdl-structured-type.js +47 -2
  125. package/schematics/apigen/metadata/csdl/csdl-structured-type.js.map +1 -1
  126. package/schematics/apigen/metadata/csdl/csdl-type-definition.d.ts +3 -0
  127. package/schematics/apigen/metadata/csdl/csdl-type-definition.js +19 -0
  128. package/schematics/apigen/metadata/csdl/csdl-type-definition.js.map +1 -1
  129. package/schematics/apigen/metadata/metadata.d.ts +10 -0
  130. package/schematics/apigen/metadata/metadata.js +12 -6
  131. package/schematics/apigen/metadata/metadata.js.map +1 -1
  132. package/schematics/apigen/metadata/parser.js.map +1 -1
  133. package/schematics/apigen/schema.d.ts +2 -1
  134. package/schematics/apigen/schema.json +15 -14
  135. package/schematics/apigen/utils.d.ts +1 -0
  136. package/schematics/apigen/utils.js +25 -1
  137. package/schematics/apigen/utils.js.map +1 -1
  138. package/schematics/ng-add/index.js +1 -2
  139. package/schematics/ng-add/index.js.map +1 -1
  140. package/esm2022/angular-odata.mjs +0 -5
  141. package/esm2022/lib/annotations.mjs +0 -140
  142. package/esm2022/lib/api.mjs +0 -419
  143. package/esm2022/lib/cache/cache.mjs +0 -175
  144. package/esm2022/lib/cache/index.mjs +0 -4
  145. package/esm2022/lib/cache/memory.mjs +0 -30
  146. package/esm2022/lib/cache/storage.mjs +0 -55
  147. package/esm2022/lib/client.mjs +0 -212
  148. package/esm2022/lib/constants.mjs +0 -95
  149. package/esm2022/lib/helper.mjs +0 -280
  150. package/esm2022/lib/index.mjs +0 -21
  151. package/esm2022/lib/loaders.mjs +0 -39
  152. package/esm2022/lib/metadata/csdl/csdl-annotation.mjs +0 -95
  153. package/esm2022/lib/metadata/csdl/csdl-entity-container.mjs +0 -27
  154. package/esm2022/lib/metadata/csdl/csdl-entity-set.mjs +0 -24
  155. package/esm2022/lib/metadata/csdl/csdl-enum-type.mjs +0 -37
  156. package/esm2022/lib/metadata/csdl/csdl-function-action.mjs +0 -94
  157. package/esm2022/lib/metadata/csdl/csdl-navigation-property-binding.mjs +0 -7
  158. package/esm2022/lib/metadata/csdl/csdl-reference.mjs +0 -23
  159. package/esm2022/lib/metadata/csdl/csdl-schema.mjs +0 -39
  160. package/esm2022/lib/metadata/csdl/csdl-singleton.mjs +0 -15
  161. package/esm2022/lib/metadata/csdl/csdl-structural-property.mjs +0 -70
  162. package/esm2022/lib/metadata/csdl/csdl-structured-type.mjs +0 -92
  163. package/esm2022/lib/metadata/csdl/csdl-type-definition.mjs +0 -15
  164. package/esm2022/lib/metadata/index.mjs +0 -3
  165. package/esm2022/lib/metadata/metadata.mjs +0 -14
  166. package/esm2022/lib/metadata/parser.mjs +0 -563
  167. package/esm2022/lib/models/collection.mjs +0 -814
  168. package/esm2022/lib/models/index.mjs +0 -4
  169. package/esm2022/lib/models/model.mjs +0 -553
  170. package/esm2022/lib/models/options.mjs +0 -1179
  171. package/esm2022/lib/module.mjs +0 -55
  172. package/esm2022/lib/options.mjs +0 -36
  173. package/esm2022/lib/resources/index.mjs +0 -7
  174. package/esm2022/lib/resources/options.mjs +0 -56
  175. package/esm2022/lib/resources/path/handlers.mjs +0 -79
  176. package/esm2022/lib/resources/path/index.mjs +0 -3
  177. package/esm2022/lib/resources/path/segments.mjs +0 -148
  178. package/esm2022/lib/resources/query/builder.mjs +0 -636
  179. package/esm2022/lib/resources/query/expressions/apply.mjs +0 -236
  180. package/esm2022/lib/resources/query/expressions/base.mjs +0 -25
  181. package/esm2022/lib/resources/query/expressions/compute.mjs +0 -54
  182. package/esm2022/lib/resources/query/expressions/count.mjs +0 -116
  183. package/esm2022/lib/resources/query/expressions/expand.mjs +0 -147
  184. package/esm2022/lib/resources/query/expressions/filter.mjs +0 -178
  185. package/esm2022/lib/resources/query/expressions/index.mjs +0 -10
  186. package/esm2022/lib/resources/query/expressions/orderby.mjs +0 -79
  187. package/esm2022/lib/resources/query/expressions/search.mjs +0 -141
  188. package/esm2022/lib/resources/query/expressions/select.mjs +0 -47
  189. package/esm2022/lib/resources/query/expressions/syntax.mjs +0 -751
  190. package/esm2022/lib/resources/query/handlers.mjs +0 -420
  191. package/esm2022/lib/resources/query/index.mjs +0 -5
  192. package/esm2022/lib/resources/query/options.mjs +0 -139
  193. package/esm2022/lib/resources/request.mjs +0 -196
  194. package/esm2022/lib/resources/resource.mjs +0 -311
  195. package/esm2022/lib/resources/response.mjs +0 -174
  196. package/esm2022/lib/resources/types/action.mjs +0 -116
  197. package/esm2022/lib/resources/types/batch.mjs +0 -428
  198. package/esm2022/lib/resources/types/count.mjs +0 -33
  199. package/esm2022/lib/resources/types/entity-set.mjs +0 -131
  200. package/esm2022/lib/resources/types/entity.mjs +0 -112
  201. package/esm2022/lib/resources/types/function.mjs +0 -146
  202. package/esm2022/lib/resources/types/index.mjs +0 -15
  203. package/esm2022/lib/resources/types/media.mjs +0 -44
  204. package/esm2022/lib/resources/types/metadata.mjs +0 -35
  205. package/esm2022/lib/resources/types/navigation-property.mjs +0 -256
  206. package/esm2022/lib/resources/types/options.mjs +0 -2
  207. package/esm2022/lib/resources/types/property.mjs +0 -197
  208. package/esm2022/lib/resources/types/reference.mjs +0 -87
  209. package/esm2022/lib/resources/types/singleton.mjs +0 -130
  210. package/esm2022/lib/resources/types/value.mjs +0 -48
  211. package/esm2022/lib/schema/annotation.mjs +0 -37
  212. package/esm2022/lib/schema/callable.mjs +0 -66
  213. package/esm2022/lib/schema/element.mjs +0 -67
  214. package/esm2022/lib/schema/entity-container.mjs +0 -11
  215. package/esm2022/lib/schema/entity-set.mjs +0 -9
  216. package/esm2022/lib/schema/enum-type.mjs +0 -68
  217. package/esm2022/lib/schema/index.mjs +0 -9
  218. package/esm2022/lib/schema/parsers/callable.mjs +0 -110
  219. package/esm2022/lib/schema/parsers/edm.mjs +0 -101
  220. package/esm2022/lib/schema/parsers/enum-type.mjs +0 -130
  221. package/esm2022/lib/schema/parsers/index.mjs +0 -5
  222. package/esm2022/lib/schema/parsers/structured-type.mjs +0 -514
  223. package/esm2022/lib/schema/schema.mjs +0 -45
  224. package/esm2022/lib/schema/singleton.mjs +0 -9
  225. package/esm2022/lib/schema/structured-type.mjs +0 -213
  226. package/esm2022/lib/services/base.mjs +0 -29
  227. package/esm2022/lib/services/entity-set.mjs +0 -155
  228. package/esm2022/lib/services/entity.mjs +0 -12
  229. package/esm2022/lib/services/factory.mjs +0 -44
  230. package/esm2022/lib/services/index.mjs +0 -5
  231. package/esm2022/lib/services/singleton.mjs +0 -54
  232. package/esm2022/lib/settings.mjs +0 -112
  233. package/esm2022/lib/types.mjs +0 -118
  234. package/esm2022/lib/utils/arraybuffers.mjs +0 -46
  235. package/esm2022/lib/utils/arrays.mjs +0 -10
  236. package/esm2022/lib/utils/dates.mjs +0 -18
  237. package/esm2022/lib/utils/durations.mjs +0 -40
  238. package/esm2022/lib/utils/enums.mjs +0 -61
  239. package/esm2022/lib/utils/http.mjs +0 -95
  240. package/esm2022/lib/utils/index.mjs +0 -10
  241. package/esm2022/lib/utils/objects.mjs +0 -204
  242. package/esm2022/lib/utils/odata.mjs +0 -22
  243. package/esm2022/lib/utils/strings.mjs +0 -20
  244. package/esm2022/lib/utils/types.mjs +0 -136
  245. package/esm2022/lib/utils/urls.mjs +0 -24
  246. package/esm2022/public-api.mjs +0 -5
package/README.md CHANGED
@@ -1,28 +1,30 @@
1
- # Angular OData
2
-
3
- [![build](https://github.com/diegomvh/angular-odata/workflows/Node.js%20CI/badge.svg)](https://github.com/diegomvh/angular-odata/actions?query=workflow%3A%22Node.js+CI%22)
4
- [![npm version](https://badge.fury.io/js/angular-odata.svg)](http://badge.fury.io/js/angular-odata)
5
-
6
- A fluent API for querying, creating, updating and deleting OData resources in Angular.
7
- OData service for Angular.
8
-
9
- Please check also my other related project, [OData Angular Generator](https://github.com/diegomvh/ODataApiGen)
10
-
11
- ## Demo:
12
-
13
- Full examples of the library:
14
-
15
- - [AngularODataEntity](https://github.com/diegomvh/AngularODataEntity)
16
-
17
- ## Table of contents
18
-
19
- - [Installation](#installation)
20
- - [Without Schema](#without-schema)
21
- - [With Schema](#with-schema)
22
- - [Usage](#usage)
23
- - [OData Version](#odata-version)
24
- - [Query Builder](#query-builder)
25
- - [Documentation](#documentation)
1
+ <h1 align="center">Angular OData</h1>
2
+
3
+ <p align="center">
4
+ <em>A fluent API for querying, creating, updating and deleting OData resources in Angular.</em>
5
+ <br>
6
+ </p>
7
+
8
+ <p align="center">
9
+ <a href="CONTRIBUTING.md">Contributing</a>
10
+ ·
11
+ <a href="./docs/README.md">Documentation</a>
12
+ ·
13
+ <a href="https://github.com/diegomvh/AngularODataEntity">Demo</a>
14
+ <br>
15
+ <br>
16
+ </p>
17
+
18
+ <p align="center">
19
+ <a href="https://github.com/diegomvh/angular-odata/actions?query=workflow%3A%22Node.js+CI%22">
20
+ <img src="https://github.com/diegomvh/angular-odata/workflows/Node.js%20CI/badge.svg" alt="CI status" />
21
+ </a>&nbsp;
22
+ <a href="http://badge.fury.io/js/angular-odata">
23
+ <img src="https://badge.fury.io/js/angular-odata.svg" alt="Angular OData on npm" />
24
+ </a>
25
+ </p>
26
+
27
+ <hr>
26
28
 
27
29
  ## Installation
28
30
 
@@ -32,225 +34,6 @@ Install from npm:
32
34
  npm i angular-odata
33
35
  ```
34
36
 
35
- ## Without Schema
36
-
37
- Import ODataModule into your application module definition and setup the module for the `serviceRootUrl`.
38
-
39
- ```typescript
40
- import { NgModule } from '@angular/core';
41
- import { ODataModule } from 'angular-odata';
42
-
43
- @NgModule({
44
- imports: [
45
- ...
46
- ODataModule.forRoot({
47
- config: {
48
- serviceRootUrl: 'https://services.odata.org/V4/(S(4m0tuxtnhcfctl4gzem3gr10))/TripPinServiceRW/'
49
- }
50
- })
51
- ...
52
- ]
53
- })
54
- export class AppModule {}
55
- ```
56
-
57
- ## With Schema
58
-
59
- Use [OData Angular Generator](https://github.com/diegomvh/ODataApiGen) for generate the \<Api\>Config and the \<Api\>Module definition.
60
-
61
- Import ODataModule, \<Api\>Config and \<Api\>Module into your application module.
62
- Setup ODataModule with \<Api\>Config and import it along with \<Api\>Module.
63
-
64
- ```typescript
65
- import { NgModule } from '@angular/core';
66
-
67
- import { ODataModule } from 'angular-odata';
68
- import { TripPinConfig, TripPinModule } from './trippin';
69
-
70
- @NgModule({
71
- imports: [
72
- ...
73
- ODataModule.forRoot({ config: TripPinConfig }),
74
- TripPinModule
75
- ]
76
- ...
77
- })
78
- export class AppModule {}
79
- ```
80
-
81
- ## Usage
82
-
83
- Inject and use the ODataServiceFactory
84
-
85
- ```typescript
86
- import { Component } from "@angular/core";
87
- import { ODataClient, ODATA_ETAG } from "angular-odata";
88
-
89
- @Component({
90
- selector: "app-root",
91
- templateUrl: "./app.component.html",
92
- styleUrls: ["./app.component.css"],
93
- })
94
- export class AppComponent {
95
- title = "TripPin";
96
- constructor(private factory: ODataServiceFactory) {
97
- this.queries();
98
- }
99
-
100
- queries() {
101
- // Use OData Service Factory
102
- let airportsService = this.factory.entitySet<Airport>(
103
- "Airports",
104
- "Microsoft.OData.SampleService.Models.TripPin.Airport"
105
- );
106
- let airports = airportsService.entities();
107
-
108
- // Fetch airports
109
- airports.fetch().subscribe(({ entities }) => {
110
- console.log("Airports: ", entities);
111
- });
112
-
113
- // Fetch airports with count
114
- airports
115
- .fetch({ withCount: true })
116
- .subscribe(({ entities, annots }) =>
117
- console.log("Airports: ", entities, "Annotations: ", annots)
118
- );
119
-
120
- // Fetch all airports
121
- airports
122
- .fetchAll()
123
- .subscribe((airports) => console.log("All Airports: ", airports));
124
-
125
- // Fetch airport with key and fetch again from cache
126
- airports
127
- .entity("CYYZ")
128
- .fetch()
129
- .pipe(
130
- switchMap(() =>
131
- // From Cache!
132
- airports.entity("CYYZ").fetch({ fetchPolicy: "cache-first" })
133
- )
134
- )
135
- .subscribe(({ entity, annots }) =>
136
- console.log("Airport: ", entity, "Annotations: ", annots)
137
- );
138
-
139
- // Clone airports resource and filter new resource
140
- airports
141
- .clone()
142
- .query((q) =>
143
- q.filter({ Location: { City: { CountryRegion: "United States" } } })
144
- )
145
- .fetch()
146
- .subscribe(({ entities, annots }) =>
147
- console.log(
148
- "Airports of United States: ",
149
- entities,
150
- "Annotations: ",
151
- annots
152
- )
153
- );
154
-
155
- // Change query definition of airports resource and fetch again
156
- airports.query((q) =>
157
- q.filter().push({ Location: { City: { Region: "California" } } })
158
- );
159
- airports
160
- .fetch()
161
- .subscribe(({ entities, annots }) =>
162
- console.log(
163
- "Airports in California: ",
164
- entities,
165
- "Annotations: ",
166
- annots
167
- )
168
- );
169
-
170
- // Store airports resource
171
- var json = airports.toJson();
172
- // Load airports resource
173
- airports = this.odata.fromJson(json) as ODataEntitySetResource<Airport>;
174
-
175
- // Change query definition of airports resource and fetch again
176
- airports.query((q) => q.filter().clear());
177
- airports
178
- .fetch()
179
- .subscribe(({ entities, annots }) =>
180
- console.log("Airports: ", entities, "Annotations: ", annots)
181
- );
182
-
183
- let peopleService = this.factory.entitySet<Person>(
184
- "People",
185
- "Microsoft.OData.SampleService.Models.TripPin.Person"
186
- );
187
- let people = peopleService.entities();
188
-
189
- // Clone people resource and expand and fetch
190
- people
191
- .clone()
192
- .query((q) =>
193
- q.expand({
194
- Friends: {
195
- expand: { Friends: { select: ["AddressInfo"] } },
196
- },
197
- Trips: { select: ["Name", "Tags"] },
198
- })
199
- )
200
- .fetch({ withCount: true })
201
- .subscribe(({ entities, annots }) =>
202
- console.log(
203
- "People with Friends and Trips: ",
204
- entities,
205
- "Annotations: ",
206
- annots
207
- )
208
- );
209
-
210
- // Clone people resource and filter with expressions
211
- people
212
- .clone()
213
- .query((q) =>
214
- q.filter(({ e }) =>
215
- e().eq("Emails", "john@example.com").or(e().eq("UserName", "john"))
216
- )
217
- )
218
- .fetch()
219
- .subscribe(({ entities, annots }) =>
220
- console.log(
221
- "People with Friends and Trips: ",
222
- entities,
223
- "Annotations: ",
224
- annots
225
- )
226
- );
227
-
228
- this.odata
229
- .batch("TripPin")
230
- .exec(() =>
231
- forkJoin({
232
- airports: airports.fetch(),
233
- people: people.fetch({ withCount: true }),
234
- })
235
- )
236
- .subscribe();
237
- }
238
- }
239
- ```
240
-
241
37
  ## OData Version
242
38
 
243
39
  The library works mainly with OData Version 4, however, it incorporates basic support for versions 3 and 2.
244
-
245
- ## Query Builder
246
-
247
- For a deep query customizations the library use `odata-query` and `odata-filter-builder` as a builders.
248
-
249
- - [OData v4 query builder](https://github.com/techniq/odata-query)
250
- - [OData Filter Builder](https://github.com/bodia-uz/odata-filter-builder)
251
-
252
- ## Documentation
253
-
254
- The api documentation is generated using compodoc and can be viewed here: https://diegomvh.github.io/angular-odata/docs/
255
-
256
- Library documentation can be viewed on the wiki here: https://github.com/diegomvh/angular-odata/wiki