@klerick/json-api-nestjs-sdk 10.0.0-beta.2

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 (167) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/README.md +154 -0
  3. package/cjs/package.json +55 -0
  4. package/cjs/src/index.d.ts +5 -0
  5. package/cjs/src/index.js +14 -0
  6. package/cjs/src/index.js.map +1 -0
  7. package/cjs/src/lib/constants/index.d.ts +1 -0
  8. package/cjs/src/lib/constants/index.js +5 -0
  9. package/cjs/src/lib/constants/index.js.map +1 -0
  10. package/cjs/src/lib/json-api-angular.d.ts +21 -0
  11. package/cjs/src/lib/json-api-angular.js +40 -0
  12. package/cjs/src/lib/json-api-angular.js.map +1 -0
  13. package/cjs/src/lib/json-api-js.d.ts +15 -0
  14. package/cjs/src/lib/json-api-js.js +48 -0
  15. package/cjs/src/lib/json-api-js.js.map +1 -0
  16. package/cjs/src/lib/service/atomic-operations.service.d.ts +22 -0
  17. package/cjs/src/lib/service/atomic-operations.service.js +86 -0
  18. package/cjs/src/lib/service/atomic-operations.service.js.map +1 -0
  19. package/cjs/src/lib/service/fetch-inner-client.d.ts +20 -0
  20. package/cjs/src/lib/service/fetch-inner-client.js +48 -0
  21. package/cjs/src/lib/service/fetch-inner-client.js.map +1 -0
  22. package/cjs/src/lib/service/index.d.ts +3 -0
  23. package/cjs/src/lib/service/index.js +7 -0
  24. package/cjs/src/lib/service/index.js.map +1 -0
  25. package/cjs/src/lib/service/json-api-sdk.service.d.ts +21 -0
  26. package/cjs/src/lib/service/json-api-sdk.service.js +168 -0
  27. package/cjs/src/lib/service/json-api-sdk.service.js.map +1 -0
  28. package/cjs/src/lib/service/json-api-utils.service.d.ts +28 -0
  29. package/cjs/src/lib/service/json-api-utils.service.js +245 -0
  30. package/cjs/src/lib/service/json-api-utils.service.js.map +1 -0
  31. package/cjs/src/lib/token/index.d.ts +4 -0
  32. package/cjs/src/lib/token/index.js +7 -0
  33. package/cjs/src/lib/token/index.js.map +1 -0
  34. package/cjs/src/lib/types/atomic-operation.d.ts +33 -0
  35. package/cjs/src/lib/types/atomic-operation.js +3 -0
  36. package/cjs/src/lib/types/atomic-operation.js.map +1 -0
  37. package/cjs/src/lib/types/atomic-type.d.ts +23 -0
  38. package/cjs/src/lib/types/atomic-type.js +4 -0
  39. package/cjs/src/lib/types/atomic-type.js.map +1 -0
  40. package/cjs/src/lib/types/config.d.ts +14 -0
  41. package/cjs/src/lib/types/config.js +3 -0
  42. package/cjs/src/lib/types/config.js.map +1 -0
  43. package/cjs/src/lib/types/filter-operand.d.ts +10 -0
  44. package/cjs/src/lib/types/filter-operand.js +4 -0
  45. package/cjs/src/lib/types/filter-operand.js.map +1 -0
  46. package/cjs/src/lib/types/http-inner-client.d.ts +19 -0
  47. package/cjs/src/lib/types/http-inner-client.js +3 -0
  48. package/cjs/src/lib/types/http-inner-client.js.map +1 -0
  49. package/cjs/src/lib/types/http-request-params.d.ts +20 -0
  50. package/cjs/src/lib/types/http-request-params.js +3 -0
  51. package/cjs/src/lib/types/http-request-params.js.map +1 -0
  52. package/cjs/src/lib/types/index.d.ts +9 -0
  53. package/cjs/src/lib/types/index.js +13 -0
  54. package/cjs/src/lib/types/index.js.map +1 -0
  55. package/cjs/src/lib/types/promise-json-api-sdk.d.ts +16 -0
  56. package/cjs/src/lib/types/promise-json-api-sdk.js +3 -0
  57. package/cjs/src/lib/types/promise-json-api-sdk.js.map +1 -0
  58. package/cjs/src/lib/types/query-params.d.ts +47 -0
  59. package/cjs/src/lib/types/query-params.js +4 -0
  60. package/cjs/src/lib/types/query-params.js.map +1 -0
  61. package/cjs/src/lib/types/utils.d.ts +6 -0
  62. package/cjs/src/lib/types/utils.js +3 -0
  63. package/cjs/src/lib/types/utils.js.map +1 -0
  64. package/cjs/src/lib/utils/adapter-for-axios.d.ts +3 -0
  65. package/cjs/src/lib/utils/adapter-for-axios.js +56 -0
  66. package/cjs/src/lib/utils/adapter-for-axios.js.map +1 -0
  67. package/cjs/src/lib/utils/entity-array.d.ts +9 -0
  68. package/cjs/src/lib/utils/entity-array.js +28 -0
  69. package/cjs/src/lib/utils/entity-array.js.map +1 -0
  70. package/cjs/src/lib/utils/generate-atomic-body.d.ts +22 -0
  71. package/cjs/src/lib/utils/generate-atomic-body.js +75 -0
  72. package/cjs/src/lib/utils/generate-atomic-body.js.map +1 -0
  73. package/cjs/src/lib/utils/http-params.d.ts +154 -0
  74. package/cjs/src/lib/utils/http-params.js +303 -0
  75. package/cjs/src/lib/utils/http-params.js.map +1 -0
  76. package/cjs/src/lib/utils/index.d.ts +5 -0
  77. package/cjs/src/lib/utils/index.js +9 -0
  78. package/cjs/src/lib/utils/index.js.map +1 -0
  79. package/cjs/src/lib/utils/utils.d.ts +4 -0
  80. package/cjs/src/lib/utils/utils.js +24 -0
  81. package/cjs/src/lib/utils/utils.js.map +1 -0
  82. package/cjs/src/ngModule.d.ts +4 -0
  83. package/cjs/src/ngModule.js +14 -0
  84. package/cjs/src/ngModule.js.map +1 -0
  85. package/mjs/package.json +57 -0
  86. package/mjs/src/index.d.ts +5 -0
  87. package/mjs/src/index.js +5 -0
  88. package/mjs/src/index.js.map +1 -0
  89. package/mjs/src/lib/constants/index.d.ts +1 -0
  90. package/mjs/src/lib/constants/index.js +2 -0
  91. package/mjs/src/lib/constants/index.js.map +1 -0
  92. package/mjs/src/lib/json-api-angular.d.ts +21 -0
  93. package/mjs/src/lib/json-api-angular.js +33 -0
  94. package/mjs/src/lib/json-api-angular.js.map +1 -0
  95. package/mjs/src/lib/json-api-js.d.ts +15 -0
  96. package/mjs/src/lib/json-api-js.js +44 -0
  97. package/mjs/src/lib/json-api-js.js.map +1 -0
  98. package/mjs/src/lib/service/atomic-operations.service.d.ts +22 -0
  99. package/mjs/src/lib/service/atomic-operations.service.js +85 -0
  100. package/mjs/src/lib/service/atomic-operations.service.js.map +1 -0
  101. package/mjs/src/lib/service/fetch-inner-client.d.ts +20 -0
  102. package/mjs/src/lib/service/fetch-inner-client.js +50 -0
  103. package/mjs/src/lib/service/fetch-inner-client.js.map +1 -0
  104. package/mjs/src/lib/service/index.d.ts +3 -0
  105. package/mjs/src/lib/service/index.js +4 -0
  106. package/mjs/src/lib/service/index.js.map +1 -0
  107. package/mjs/src/lib/service/json-api-sdk.service.d.ts +21 -0
  108. package/mjs/src/lib/service/json-api-sdk.service.js +174 -0
  109. package/mjs/src/lib/service/json-api-sdk.service.js.map +1 -0
  110. package/mjs/src/lib/service/json-api-utils.service.d.ts +28 -0
  111. package/mjs/src/lib/service/json-api-utils.service.js +253 -0
  112. package/mjs/src/lib/service/json-api-utils.service.js.map +1 -0
  113. package/mjs/src/lib/token/index.d.ts +4 -0
  114. package/mjs/src/lib/token/index.js +4 -0
  115. package/mjs/src/lib/token/index.js.map +1 -0
  116. package/mjs/src/lib/types/atomic-operation.d.ts +33 -0
  117. package/mjs/src/lib/types/atomic-operation.js +2 -0
  118. package/mjs/src/lib/types/atomic-operation.js.map +1 -0
  119. package/mjs/src/lib/types/atomic-type.d.ts +23 -0
  120. package/mjs/src/lib/types/atomic-type.js +2 -0
  121. package/mjs/src/lib/types/atomic-type.js.map +1 -0
  122. package/mjs/src/lib/types/config.d.ts +14 -0
  123. package/mjs/src/lib/types/config.js +2 -0
  124. package/mjs/src/lib/types/config.js.map +1 -0
  125. package/mjs/src/lib/types/filter-operand.d.ts +10 -0
  126. package/mjs/src/lib/types/filter-operand.js +2 -0
  127. package/mjs/src/lib/types/filter-operand.js.map +1 -0
  128. package/mjs/src/lib/types/http-inner-client.d.ts +19 -0
  129. package/mjs/src/lib/types/http-inner-client.js +2 -0
  130. package/mjs/src/lib/types/http-inner-client.js.map +1 -0
  131. package/mjs/src/lib/types/http-request-params.d.ts +20 -0
  132. package/mjs/src/lib/types/http-request-params.js +2 -0
  133. package/mjs/src/lib/types/http-request-params.js.map +1 -0
  134. package/mjs/src/lib/types/index.d.ts +9 -0
  135. package/mjs/src/lib/types/index.js +10 -0
  136. package/mjs/src/lib/types/index.js.map +1 -0
  137. package/mjs/src/lib/types/promise-json-api-sdk.d.ts +16 -0
  138. package/mjs/src/lib/types/promise-json-api-sdk.js +2 -0
  139. package/mjs/src/lib/types/promise-json-api-sdk.js.map +1 -0
  140. package/mjs/src/lib/types/query-params.d.ts +47 -0
  141. package/mjs/src/lib/types/query-params.js +2 -0
  142. package/mjs/src/lib/types/query-params.js.map +1 -0
  143. package/mjs/src/lib/types/utils.d.ts +6 -0
  144. package/mjs/src/lib/types/utils.js +2 -0
  145. package/mjs/src/lib/types/utils.js.map +1 -0
  146. package/mjs/src/lib/utils/adapter-for-axios.d.ts +3 -0
  147. package/mjs/src/lib/utils/adapter-for-axios.js +54 -0
  148. package/mjs/src/lib/utils/adapter-for-axios.js.map +1 -0
  149. package/mjs/src/lib/utils/entity-array.d.ts +9 -0
  150. package/mjs/src/lib/utils/entity-array.js +25 -0
  151. package/mjs/src/lib/utils/entity-array.js.map +1 -0
  152. package/mjs/src/lib/utils/generate-atomic-body.d.ts +22 -0
  153. package/mjs/src/lib/utils/generate-atomic-body.js +83 -0
  154. package/mjs/src/lib/utils/generate-atomic-body.js.map +1 -0
  155. package/mjs/src/lib/utils/http-params.d.ts +154 -0
  156. package/mjs/src/lib/utils/http-params.js +300 -0
  157. package/mjs/src/lib/utils/http-params.js.map +1 -0
  158. package/mjs/src/lib/utils/index.d.ts +5 -0
  159. package/mjs/src/lib/utils/index.js +6 -0
  160. package/mjs/src/lib/utils/index.js.map +1 -0
  161. package/mjs/src/lib/utils/utils.d.ts +4 -0
  162. package/mjs/src/lib/utils/utils.js +24 -0
  163. package/mjs/src/lib/utils/utils.js.map +1 -0
  164. package/mjs/src/ngModule.d.ts +4 -0
  165. package/mjs/src/ngModule.js +4 -0
  166. package/mjs/src/ngModule.js.map +1 -0
  167. package/package.json +74 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,58 @@
1
+ ## 10.0.0-beta.0 (2025-05-21)
2
+
3
+ This was a version bump only for json-api-nestjs-sdk to align it with other projects, there were no code changes.
4
+
5
+ # 9.0.0 (2025-02-12)
6
+
7
+ This was a version bump only for json-api-nestjs-sdk to align it with other projects, there were no code changes.
8
+
9
+ # 8.0.0 (2024-12-18)
10
+
11
+ ### 🚀 Features
12
+
13
+ - **json-api-nestjs-sdk,nestjs-json-rpc-sdk:** Change export ([7953371](https://github.com/klerick/nestjs-json-api/commit/7953371))
14
+ - **nestjs-json-rpc-sdk:** Skip empty element in response ([28d3efc](https://github.com/klerick/nestjs-json-api/commit/28d3efc))
15
+
16
+ ### 🩹 Fixes
17
+
18
+ - **json-api-nestjs-sdk:** Fix check for relation and add type for meta data ([9bbe9fd](https://github.com/klerick/nestjs-json-api/commit/9bbe9fd))
19
+
20
+ ### ❤️ Thank You
21
+
22
+ - Alex H
23
+
24
+ ## 7.0.1 (2024-04-21)
25
+
26
+
27
+ ### 🩹 Fixes
28
+
29
+ - **json-api-nestjs:** Fix validate for patch method ([40b0303](https://github.com/klerick/nestjs-json-api/commit/40b0303))
30
+
31
+ - **json-api-nestjs:** Fix validate for patch method ([2caa2d8](https://github.com/klerick/nestjs-json-api/commit/2caa2d8))
32
+
33
+ - **json-api-nestjs:** Allow empty atributes for sdk ([c3cc4a5](https://github.com/klerick/nestjs-json-api/commit/c3cc4a5))
34
+
35
+ - **json-api-nestjs:** Allow empty atributes for sdk ([3101fca](https://github.com/klerick/nestjs-json-api/commit/3101fca))
36
+
37
+ - **json-api-nestjs-sdk:** Allow empty atrributes for sdk ([c4b2675](https://github.com/klerick/nestjs-json-api/commit/c4b2675))
38
+
39
+
40
+ ### ❤️ Thank You
41
+
42
+ - Alex H
43
+
44
+ # 7.0.0 (2024-03-08)
45
+
46
+
47
+ ### 🚀 Features
48
+
49
+ - ⚠️ **json-api-nestjs-sdk:** New version sdk for json api ([f65ca03](https://github.com/klerick/nestjs-json-api/commit/f65ca03))
50
+
51
+
52
+ #### ⚠️ Breaking Changes
53
+
54
+ - **json-api-nestjs-sdk:** - add support native js
55
+
56
+ ### ❤️ Thank You
57
+
58
+ - Alex H
package/README.md ADDED
@@ -0,0 +1,154 @@
1
+ <p align='center'>
2
+ <a href="https://www.npmjs.com/package/json-api-nestjs-sdk" target="_blank"><img src="https://img.shields.io/npm/v/json-api-nestjs-sdk.svg" alt="NPM Version" /></a>
3
+ <a href="https://www.npmjs.com/package/json-api-nestjs-sdk" target="_blank"><img src="https://img.shields.io/npm/l/json-api-nestjs-sdk.svg" alt="Package License" /></a>
4
+ <a href="https://www.npmjs.com/package/json-api-nestjs-sdk" target="_blank"><img src="https://img.shields.io/npm/dm/json-api-nestjs-sdk.svg" alt="NPM Downloads" /></a>
5
+ <a href="http://commitizen.github.io/cz-cli/" target="_blank"><img src="https://img.shields.io/badge/commitizen-friendly-brightgreen.svg" alt="Commitizen friendly" /></a>
6
+ <img src="https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/klerick/02a4c98cf7008fea2af70dc2d50f4cb7/raw/json-api-nestjs-sdk.json" alt="Coverage Badge" />
7
+ </p>
8
+
9
+ # json-api-nestjs-sdk
10
+
11
+ The plugin of client for help work with JSON API over [json-api-nestjs](https://www.npmjs.com/package/json-api-nestjs)
12
+
13
+
14
+ ## Installation
15
+
16
+ ```bash $
17
+ npm install @klerick/json-api-nestjs-sdk
18
+ ```
19
+
20
+ ## Example
21
+
22
+ Once the installation process is complete, we can import the **JsonApiJs**.
23
+
24
+ ```typescript
25
+ import {
26
+ adapterForAxios,
27
+ FilterOperand,
28
+ JsonApiJs,
29
+ JsonSdkPromise,
30
+ } from '@klerick/json-api-nestjs-sdk';
31
+ import { faker } from '@faker-js/faker';
32
+ import axios from 'axios';
33
+
34
+ import {Users} from 'database'
35
+
36
+ const axiosAdapter = adapterForAxios(axios);
37
+
38
+ const jsonConfig: JsonConfig = {
39
+ adapter: axiosAdapter,
40
+ apiHost: 'http://localhost:3000',
41
+ apiPrefix: 'api',
42
+ dateFields: ['createdAt', 'updatedAt'],
43
+ operationUrl: 'operation',
44
+ }
45
+
46
+ const jsonSdk = JsonApiJs(
47
+ jsonConfig,
48
+ true //by default all methods return Observable but you return promise
49
+ );
50
+
51
+ await jsonSdk.jonApiSdkService.getAll(Users, {
52
+ filter: {
53
+ target: {
54
+ id: { [FilterOperand.in]: usersId.map((i) => `${i}`) },
55
+ },
56
+ },
57
+ include: ['addresses', 'comments', 'roles', 'manager'],
58
+ });
59
+
60
+
61
+ // Atomic Operation
62
+
63
+ const address = new Addresses();
64
+
65
+ address.city = faker.string.alpha(50);
66
+ address.state = faker.string.alpha(50);
67
+ address.country = faker.string.alpha(50);
68
+ address.id = 10000;
69
+
70
+ const manager = getUser();
71
+ manager.id = 10001;
72
+ manager.addresses = address;
73
+
74
+ const roles = new Roles();
75
+ roles.id = 10002;
76
+ roles.name = faker.string.alpha(50);
77
+ roles.key = faker.string.alpha(50);
78
+
79
+ const user = getUser();
80
+ user.addresses = address;
81
+ user.manager = manager;
82
+ user.roles = [roles];
83
+
84
+ const [addressPost, managerPost, rolesPost, userPost] = await jsonSdk
85
+ .atomicFactory()
86
+ .postOne(address)
87
+ .postOne(manager)
88
+ .postOne(roles)
89
+ .postOne(user)
90
+ .run();
91
+
92
+
93
+ ```
94
+ or you can use Angular module:
95
+ ```typescript
96
+ import {
97
+ provideJsonApi,
98
+ AtomicFactory,
99
+ JsonApiSdkService
100
+ } from '@klerick/json-api-nestjs-sdk/ngModule';
101
+ import {
102
+ provideHttpClient,
103
+ withFetch,
104
+ } from '@angular/common/http';
105
+
106
+ @Component({
107
+ standalone: true,
108
+ selector: 'nestjs-json-api-root',
109
+ templateUrl: './app.component.html',
110
+ styleUrl: './app.component.css',
111
+ })
112
+ export class AppComponent {
113
+ private JsonApiSdkService = inject(JsonApiSdkService);
114
+ private atomicFactory = inject(AtomicFactory);
115
+ }
116
+
117
+ const angularConfig: JsonSdkConfig = {
118
+ apiHost: 'http://localhost:4200',
119
+ idKey: 'id',
120
+ apiPrefix: 'api',
121
+ operationUrl: 'operation',
122
+ }
123
+
124
+ bootstrapApplication(AppComponent, {
125
+ providers: [
126
+ provideHttpClient(withFetch()),
127
+ provideJsonApi(angularConfig)
128
+ ],
129
+ }).catch((err) =>
130
+ console.error(err)
131
+ );
132
+
133
+
134
+
135
+ ```
136
+
137
+ ## Configuration params
138
+
139
+ ```typescript
140
+ type JsonSdkConfig = {
141
+ apiHost: string; // url for api
142
+ apiPrefix?: string; // prefex for api - api/v1/....
143
+ idKey?: string; // name for id field
144
+ idIsNumber?: boolean; // use parseInt for id field
145
+ operationUrl?: string; // url for atomic operation
146
+ dateFields: string[] // array of dateField for create date object - ;
147
+ }
148
+
149
+ type JsonConfig = JsonSdkConfig & {
150
+ adapter?: HttpInnerClient; // by default use fetch for http request but you can change it
151
+ }
152
+ ```
153
+ * You can see interface of [HttpInnerClient](https://github.com/klerick/nestjs-json-api/blob/master/libs/json-api/json-api-nestjs-sdk/src/lib/types/http-inner-client.ts)
154
+ * More example you can see [here](https://github.com/klerick/nestjs-json-api/blob/master/apps/json-api-server-e2e/src/json-api/json-api-sdk) or [here](https://github.com/klerick/nestjs-json-api/blob/master/apps/json-api-front/src/app/app.component.ts)
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@klerick/json-api-nestjs-sdk",
3
+ "version": "10.0.0-beta.2",
4
+ "description": "Helper for client JsonAPi Plugin for NestJs",
5
+ "keywords": [
6
+ "nestjs",
7
+ "nest",
8
+ "jsonapi",
9
+ "json-api",
10
+ "typeorm",
11
+ "microorm",
12
+ "CRUD"
13
+ ],
14
+ "dependencies": {
15
+ "@angular/common": "^19.2.1",
16
+ "@angular/core": "^19.2.1",
17
+ "axios": "^1.6.0",
18
+ "change-case-commonjs": "^5.4.4",
19
+ "reflect-metadata": "^0.1.12 || ^0.2.0",
20
+ "rxjs": "^7.1.0",
21
+ "tslib": ">2.3.0"
22
+ },
23
+ "exports": {
24
+ "./package.json": "./package.json",
25
+ ".": {
26
+ "types": "./mjs/src/index.d.ts",
27
+ "node": "./cjs/src/index.js",
28
+ "require": "./cjs/src/index.js",
29
+ "module": "./mjs/src/index.js",
30
+ "default": "./mjs/src/index.js"
31
+ },
32
+ "./ngModule": {
33
+ "types": "./mjs/src/ngModule.d.ts",
34
+ "node": "./cjs/src/ngModule.js",
35
+ "require": "./cjs/src/ngModule.js",
36
+ "module": "./mjs/src/ngModule.js",
37
+ "default": "./mjs/src/ngModule.js"
38
+ }
39
+ },
40
+ "main": "./cjs/src/index.js",
41
+ "module": "./mjs/src/index.js",
42
+ "types": "./mjs/src/index.d.ts",
43
+ "typesVersions": {
44
+ "*": {
45
+ "ngModule": [
46
+ "./mjs/src/ngModule.d.ts"
47
+ ]
48
+ }
49
+ },
50
+ "peerDependencies": {
51
+ "@klerick/json-api-nestjs-shared": "1.0.0-beta.2",
52
+ "ts-toolbelt": "9.6.0"
53
+ },
54
+ "type": "commonjs"
55
+ }
@@ -0,0 +1,5 @@
1
+ export { FilterOperand, ResourceObject, QueryField, } from '@klerick/json-api-nestjs-shared';
2
+ export { JsonApiUtilsService, JsonApiSdkService } from './lib/service';
3
+ export * from './lib/json-api-js';
4
+ export { adapterForAxios } from './lib/utils';
5
+ export { AtomicOperations, Operands, QueryParams } from './lib/types';
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.adapterForAxios = exports.JsonApiSdkService = exports.JsonApiUtilsService = exports.QueryField = exports.FilterOperand = void 0;
4
+ const tslib_1 = require("tslib");
5
+ var json_api_nestjs_shared_1 = require("@klerick/json-api-nestjs-shared");
6
+ Object.defineProperty(exports, "FilterOperand", { enumerable: true, get: function () { return json_api_nestjs_shared_1.FilterOperand; } });
7
+ Object.defineProperty(exports, "QueryField", { enumerable: true, get: function () { return json_api_nestjs_shared_1.QueryField; } });
8
+ var service_1 = require("./lib/service");
9
+ Object.defineProperty(exports, "JsonApiUtilsService", { enumerable: true, get: function () { return service_1.JsonApiUtilsService; } });
10
+ Object.defineProperty(exports, "JsonApiSdkService", { enumerable: true, get: function () { return service_1.JsonApiSdkService; } });
11
+ tslib_1.__exportStar(require("./lib/json-api-js"), exports);
12
+ var utils_1 = require("./lib/utils");
13
+ Object.defineProperty(exports, "adapterForAxios", { enumerable: true, get: function () { return utils_1.adapterForAxios; } });
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/json-api/json-api-nestjs-sdk/src/index.ts"],"names":[],"mappings":";;;;AAAA,0EAIyC;AAHvC,uHAAA,aAAa,OAAA;AAEb,oHAAA,UAAU,OAAA;AAGZ,yCAAuE;AAA9D,8GAAA,mBAAmB,OAAA;AAAE,4GAAA,iBAAiB,OAAA;AAC/C,4DAAkC;AAClC,qCAA8C;AAArC,wGAAA,eAAe,OAAA"}
@@ -0,0 +1 @@
1
+ export declare const ID_KEY = "id";
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ID_KEY = void 0;
4
+ exports.ID_KEY = 'id';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-sdk/src/lib/constants/index.ts"],"names":[],"mappings":";;;AAAa,QAAA,MAAM,GAAG,IAAI,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { JsonSdkConfig } from './types';
2
+ import { JsonApiUtilsService, JsonApiSdkService, AtomicOperationsService } from './service';
3
+ export declare const getProviders: (config: JsonSdkConfig) => ({
4
+ provide: import("@angular/core").InjectionToken<import("./types").JsonApiSdkConfig>;
5
+ useValue: import("./types").JsonApiSdkConfig;
6
+ useFactory?: undefined;
7
+ } | {
8
+ provide: typeof JsonApiUtilsService;
9
+ useFactory: () => JsonApiUtilsService;
10
+ useValue?: undefined;
11
+ } | {
12
+ provide: typeof JsonApiSdkService;
13
+ useFactory: () => JsonApiSdkService;
14
+ useValue?: undefined;
15
+ } | {
16
+ provide: import("@angular/core").InjectionToken<import("./types").AtomicFactory>;
17
+ useFactory: () => () => AtomicOperationsService<unknown[]>;
18
+ useValue?: undefined;
19
+ })[];
20
+ export declare const provideJsonApi: (config: JsonSdkConfig) => import("@angular/core").EnvironmentProviders;
21
+ export { AtomicFactory, JSON_API_SDK_CONFIG } from './token';
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JSON_API_SDK_CONFIG = exports.AtomicFactory = exports.provideJsonApi = exports.getProviders = void 0;
4
+ const core_1 = require("@angular/core");
5
+ const http_1 = require("@angular/common/http");
6
+ const token_1 = require("./token");
7
+ const utils_1 = require("./utils");
8
+ const service_1 = require("./service");
9
+ const getProviders = (config) => [
10
+ {
11
+ provide: token_1.JSON_API_SDK_CONFIG,
12
+ useValue: (0, utils_1.resultConfig)(config),
13
+ },
14
+ {
15
+ provide: service_1.JsonApiUtilsService,
16
+ useFactory: () => new service_1.JsonApiUtilsService((0, core_1.inject)(token_1.JSON_API_SDK_CONFIG)),
17
+ },
18
+ {
19
+ provide: service_1.JsonApiSdkService,
20
+ useFactory: () => new service_1.JsonApiSdkService((0, core_1.inject)(http_1.HttpClient), (0, core_1.inject)(service_1.JsonApiUtilsService), (0, core_1.inject)(token_1.JSON_API_SDK_CONFIG)),
21
+ },
22
+ {
23
+ provide: token_1.AtomicFactory,
24
+ useFactory: () => {
25
+ const jsonApiUtilsService = (0, core_1.inject)(service_1.JsonApiUtilsService);
26
+ const config = (0, core_1.inject)(token_1.JSON_API_SDK_CONFIG);
27
+ const httpClient = (0, core_1.inject)(http_1.HttpClient);
28
+ return () => {
29
+ return new service_1.AtomicOperationsService(jsonApiUtilsService, config, httpClient);
30
+ };
31
+ },
32
+ },
33
+ ];
34
+ exports.getProviders = getProviders;
35
+ const provideJsonApi = (config) => (0, core_1.makeEnvironmentProviders)((0, exports.getProviders)(config));
36
+ exports.provideJsonApi = provideJsonApi;
37
+ var token_2 = require("./token");
38
+ Object.defineProperty(exports, "AtomicFactory", { enumerable: true, get: function () { return token_2.AtomicFactory; } });
39
+ Object.defineProperty(exports, "JSON_API_SDK_CONFIG", { enumerable: true, get: function () { return token_2.JSON_API_SDK_CONFIG; } });
40
+ //# sourceMappingURL=json-api-angular.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-api-angular.js","sourceRoot":"","sources":["../../../../../../../libs/json-api/json-api-nestjs-sdk/src/lib/json-api-angular.ts"],"names":[],"mappings":";;;AAAA,wCAAiE;AACjE,+CAAkD;AAElD,mCAA6D;AAC7D,mCAAuC;AACvC,uCAImB;AAEZ,MAAM,YAAY,GAAG,CAAC,MAAqB,EAAE,EAAE,CAAC;IACrD;QACE,OAAO,EAAE,2BAAmB;QAC5B,QAAQ,EAAE,IAAA,oBAAY,EAAC,MAAM,CAAC;KAC/B;IACD;QACE,OAAO,EAAE,6BAAmB;QAC5B,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,6BAAmB,CAAC,IAAA,aAAM,EAAC,2BAAmB,CAAC,CAAC;KACvE;IACD;QACE,OAAO,EAAE,2BAAiB;QAC1B,UAAU,EAAE,GAAG,EAAE,CACf,IAAI,2BAAiB,CACnB,IAAA,aAAM,EAAkB,iBAAiB,CAAC,EAC1C,IAAA,aAAM,EAAC,6BAAmB,CAAC,EAC3B,IAAA,aAAM,EAAC,2BAAmB,CAAC,CAC5B;KACJ;IACD;QACE,OAAO,EAAE,qBAAa;QACtB,UAAU,EAAE,GAAG,EAAE;YACf,MAAM,mBAAmB,GAAG,IAAA,aAAM,EAAC,6BAAmB,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,IAAA,aAAM,EAAC,2BAAmB,CAAC,CAAC;YAC3C,MAAM,UAAU,GAAG,IAAA,aAAM,EAAkB,iBAAiB,CAAC,CAAC;YAE9D,OAAO,GAAG,EAAE;gBACV,OAAO,IAAI,iCAAuB,CAChC,mBAAmB,EACnB,MAAM,EACN,UAAU,CACX,CAAC;YACJ,CAAC,CAAC;QACJ,CAAC;KACF;CACF,CAAC;AAlCW,QAAA,YAAY,gBAkCvB;AAEK,MAAM,cAAc,GAAG,CAAC,MAAqB,EAAE,EAAE,CACtD,IAAA,+BAAwB,EAAC,IAAA,oBAAY,EAAC,MAAM,CAAC,CAAC,CAAC;AADpC,QAAA,cAAc,kBACsB;AAEjD,iCAA6D;AAApD,sGAAA,aAAa,OAAA;AAAE,4GAAA,mBAAmB,OAAA"}
@@ -0,0 +1,15 @@
1
+ import { AtomicFactory, AtomicFactoryPromise, JsonConfig, PromiseJsonApiSdkService } from './types';
2
+ import { JsonApiSdkService, JsonApiUtilsService } from './service';
3
+ export type JsonSdkPromise = {
4
+ jsonApiUtilsService: JsonApiUtilsService;
5
+ jonApiSdkService: PromiseJsonApiSdkService;
6
+ atomicFactory: AtomicFactoryPromise;
7
+ };
8
+ export type JsonSdkGeneral = {
9
+ jsonApiUtilsService: JsonApiUtilsService;
10
+ jonApiSdkService: JsonApiSdkService;
11
+ atomicFactory: AtomicFactory;
12
+ };
13
+ type JsonSdk<P extends boolean | undefined> = P extends true ? JsonSdkPromise : JsonSdkGeneral;
14
+ export declare function JsonApiJs<P extends true | boolean>(config: JsonConfig, returnPromise?: P): JsonSdk<P>;
15
+ export {};
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JsonApiJs = JsonApiJs;
4
+ const tslib_1 = require("tslib");
5
+ const utils_1 = require("./utils");
6
+ const service_1 = require("./service");
7
+ const fetch_inner_client_1 = require("./service/fetch-inner-client");
8
+ const rxjs_1 = require("rxjs");
9
+ const jsonSdk = {};
10
+ function JsonApiJs(config, returnPromise) {
11
+ if (Object.keys(jsonSdk).length > 0)
12
+ return jsonSdk;
13
+ const { adapter } = config, jsonSdkConfig = tslib_1.__rest(config, ["adapter"]);
14
+ const resultJsonConfig = (0, utils_1.resultConfig)(jsonSdkConfig);
15
+ const jsonApiUtilsService = new service_1.JsonApiUtilsService(resultJsonConfig);
16
+ const httpInnerClient = adapter ? adapter : new fetch_inner_client_1.FetchInnerClient();
17
+ const jonApiSdkService = new service_1.JsonApiSdkService(httpInnerClient, jsonApiUtilsService, resultJsonConfig);
18
+ jsonSdk['jsonApiUtilsService'] = jsonApiUtilsService;
19
+ jsonSdk['jonApiSdkService'] = jonApiSdkService;
20
+ jsonSdk['atomicFactory'] = () => new service_1.AtomicOperationsService(jsonApiUtilsService, resultJsonConfig, httpInnerClient);
21
+ if (returnPromise) {
22
+ jsonSdk['jonApiSdkService'] = new Proxy(jonApiSdkService, {
23
+ get(target, p) {
24
+ return (...arg) => (0, rxjs_1.lastValueFrom)(target[p].apply(target, arg));
25
+ },
26
+ });
27
+ jsonSdk['atomicFactory'] = () => {
28
+ const proxy = new Proxy(new service_1.AtomicOperationsService(jsonApiUtilsService, resultJsonConfig, httpInnerClient), {
29
+ get(target, p) {
30
+ if (p === 'run') {
31
+ return () => (0, rxjs_1.lastValueFrom)(target.run());
32
+ }
33
+ if (typeof target[p] === 'function') {
34
+ return (...arg) => {
35
+ // @ts-ignore
36
+ target[p](...arg);
37
+ return proxy;
38
+ };
39
+ }
40
+ return target[p];
41
+ },
42
+ });
43
+ return proxy;
44
+ };
45
+ }
46
+ return jsonSdk;
47
+ }
48
+ //# sourceMappingURL=json-api-js.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-api-js.js","sourceRoot":"","sources":["../../../../../../../libs/json-api/json-api-nestjs-sdk/src/lib/json-api-js.ts"],"names":[],"mappings":";;AAmCA,8BAsEC;;AAjGD,mCAAuC;AACvC,uCAImB;AACnB,qEAAgE;AAChE,+BAAqC;AAkBrC,MAAM,OAAO,GAAG,EAAS,CAAC;AAE1B,SAAgB,SAAS,CACvB,MAAkB,EAClB,aAAiB;IAEjB,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IACpD,MAAM,EAAE,OAAO,KAAuB,MAAM,EAAxB,aAAa,kBAAK,MAAM,EAAtC,WAA6B,CAAS,CAAC;IAC7C,MAAM,gBAAgB,GAAG,IAAA,oBAAY,EAAC,aAAa,CAAC,CAAC;IAErD,MAAM,mBAAmB,GAAG,IAAI,6BAAmB,CAAC,gBAAgB,CAAC,CAAC;IACtE,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,qCAAgB,EAAE,CAAC;IACnE,MAAM,gBAAgB,GAAG,IAAI,2BAAiB,CAC5C,eAAe,EACf,mBAAmB,EACnB,gBAAgB,CACjB,CAAC;IACF,OAAO,CAAC,qBAAqB,CAAC,GAAG,mBAAmB,CAAC;IACrD,OAAO,CAAC,kBAAkB,CAAC,GAAG,gBAAgB,CAAC;IAC/C,OAAO,CAAC,eAAe,CAAC,GAAG,GAAG,EAAE,CAC9B,IAAI,iCAAuB,CACzB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,CAChB,CAAC;IAEJ,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI,KAAK,CAAC,gBAAgB,EAAE;YACxD,GAAG,CAID,MAAS,EAAE,CAAI;gBACf,OAAO,CAAC,GAAG,GAAQ,EAAO,EAAE,CAC1B,IAAA,oBAAa,EAAE,MAAM,CAAC,CAAC,CAAO,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;YACvD,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,CAAC,eAAe,CAAC,GAAG,GAAG,EAAE;YAC9B,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,IAAI,iCAAuB,CACzB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,CAChB,EACD;gBACE,GAAG,CAID,MAAS,EAAE,CAAI;oBACf,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;wBAChB,OAAO,GAAG,EAAE,CAAC,IAAA,oBAAa,EAAC,MAAM,CAAC,GAAG,EAAE,CAAQ,CAAC;oBAClD,CAAC;oBAED,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;wBACpC,OAAO,CAAC,GAAG,GAAQ,EAAE,EAAE;4BACrB,aAAa;4BACb,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;4BAClB,OAAO,KAAK,CAAC;wBACf,CAAC,CAAC;oBACJ,CAAC;oBACD,OAAO,MAAM,CAAC,CAAC,CAAQ,CAAC;gBAC1B,CAAC;aACF,CACF,CAAC;YAEF,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { Observable } from 'rxjs';
2
+ import { RelationKeys } from '@klerick/json-api-nestjs-shared';
3
+ import { JsonApiUtilsService } from './json-api-utils.service';
4
+ import { AtomicOperations, HttpInnerClient, JsonApiSdkConfig, ReturnIfArray } from '../types';
5
+ export declare class AtomicOperationsService<T extends unknown[]> implements AtomicOperations<T> {
6
+ private jsonApiUtilsService;
7
+ private jsonApiSdkConfig;
8
+ private httpInnerClient;
9
+ private generateAtomicBody;
10
+ constructor(jsonApiUtilsService: JsonApiUtilsService, jsonApiSdkConfig: JsonApiSdkConfig, httpInnerClient: HttpInnerClient);
11
+ private addBody;
12
+ run(): Observable<T>;
13
+ deleteOne<Entity extends object>(entity: Entity): AtomicOperations<[...T]>;
14
+ deleteOne<Entity extends object>(entity: Entity, skipEmpty: true): AtomicOperations<[...T]>;
15
+ deleteOne<Entity extends object>(entity: Entity, skipEmpty: false): AtomicOperations<[...T, 'EMPTY']>;
16
+ patchOne<Entity extends object>(entity: Entity): AtomicOperations<[...T, Entity]>;
17
+ postOne<Entity extends object>(entity: Entity): AtomicOperations<[...T, Entity]>;
18
+ deleteRelationships<Entity extends object, Rel extends RelationKeys<Entity>>(entity: Entity, relationType: Rel): AtomicOperations<T>;
19
+ patchRelationships<Entity extends object, Rel extends RelationKeys<Entity>>(entity: Entity, relationType: Rel): AtomicOperations<[...T, ReturnIfArray<Entity[Rel], string>]>;
20
+ postRelationships<Entity extends object, Rel extends RelationKeys<Entity>>(entity: Entity, relationType: Rel): AtomicOperations<[...T, ReturnIfArray<Entity[Rel], string>]>;
21
+ private setToBody;
22
+ }
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AtomicOperationsService = void 0;
4
+ const json_api_nestjs_shared_1 = require("@klerick/json-api-nestjs-shared");
5
+ const operators_1 = require("rxjs/operators");
6
+ const utils_1 = require("../utils");
7
+ class AtomicOperationsService {
8
+ constructor(jsonApiUtilsService, jsonApiSdkConfig, httpInnerClient) {
9
+ this.jsonApiUtilsService = jsonApiUtilsService;
10
+ this.jsonApiSdkConfig = jsonApiSdkConfig;
11
+ this.httpInnerClient = httpInnerClient;
12
+ this.generateAtomicBody = [];
13
+ }
14
+ addBody(item) {
15
+ this.generateAtomicBody.push(item);
16
+ }
17
+ run() {
18
+ if (!this.jsonApiSdkConfig.operationUrl) {
19
+ throw new Error('Should be set operation url');
20
+ }
21
+ const atomicBody = this.generateAtomicBody.map((i) => i.getBody());
22
+ const body = {
23
+ [json_api_nestjs_shared_1.KEY_MAIN_INPUT_SCHEMA]: atomicBody,
24
+ };
25
+ const bodyWithoutDelete = atomicBody.filter((i) => i.op !== 'remove');
26
+ const operationUrl = this.jsonApiUtilsService.getUrlForResource(this.jsonApiSdkConfig.operationUrl);
27
+ const indexDeleteIfNotSkipEmpty = atomicBody
28
+ .reduce((acum, item, index) => {
29
+ if (item.op === 'remove' &&
30
+ !this.generateAtomicBody[index].isSkipEmpty) {
31
+ acum.push(index);
32
+ }
33
+ return acum;
34
+ }, [])
35
+ .sort((a, b) => a - b);
36
+ return this.httpInnerClient.post(operationUrl, body).pipe((0, operators_1.map)((r) => r[json_api_nestjs_shared_1.KEY_MAIN_OUTPUT_SCHEMA]), (0, operators_1.map)((r) => r.map((item, index) => bodyWithoutDelete[index].ref.relationship
37
+ ? this.jsonApiUtilsService.getResultForRelation(item)
38
+ : this.jsonApiUtilsService.convertResponseData(item))), (0, operators_1.map)((r) => indexDeleteIfNotSkipEmpty.reduce((acc, index, currentIndex) => {
39
+ acc.splice(index + currentIndex, 0, 'EMPTY');
40
+ return acc;
41
+ }, [...r])));
42
+ }
43
+ deleteOne(entity, skipEmpty) {
44
+ return this.setToBody('deleteOne', entity, skipEmpty === undefined ? true : skipEmpty);
45
+ }
46
+ patchOne(entity) {
47
+ return this.setToBody('patchOne', entity);
48
+ }
49
+ postOne(entity) {
50
+ return this.setToBody('postOne', entity);
51
+ }
52
+ deleteRelationships(entity, relationType) {
53
+ return this.setToBody('deleteRelationships', entity, relationType);
54
+ }
55
+ patchRelationships(entity, relationType) {
56
+ return this.setToBody('patchRelationships', entity, relationType);
57
+ }
58
+ postRelationships(entity, relationType) {
59
+ return this.setToBody('postRelationships', entity, relationType);
60
+ }
61
+ setToBody(operationType, entity, relationType) {
62
+ const atomicBody = new utils_1.GenerateAtomicBody(this.jsonApiUtilsService, this.jsonApiSdkConfig);
63
+ if (typeof relationType === 'boolean') {
64
+ if (operationType === 'deleteOne') {
65
+ atomicBody[operationType](entity, relationType);
66
+ }
67
+ }
68
+ else {
69
+ switch (operationType) {
70
+ case 'postRelationships':
71
+ case 'patchRelationships':
72
+ case 'deleteRelationships':
73
+ if (relationType)
74
+ atomicBody[operationType](entity, relationType);
75
+ break;
76
+ default:
77
+ atomicBody[operationType](entity, true);
78
+ break;
79
+ }
80
+ }
81
+ this.addBody(atomicBody);
82
+ return this;
83
+ }
84
+ }
85
+ exports.AtomicOperationsService = AtomicOperationsService;
86
+ //# sourceMappingURL=atomic-operations.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atomic-operations.service.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-sdk/src/lib/service/atomic-operations.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { Observable } from 'rxjs';
2
+ import { ResourceObject, RelationKeys, ResourceObjectRelationships } from '@klerick/json-api-nestjs-shared';
3
+ import { ParamObject } from '../utils';
4
+ import { HttpInnerClient, PatchData, PostData, RelationBodyData, AtomicBody, AtomicResponse } from '../types';
5
+ export declare class FetchInnerClient implements HttpInnerClient {
6
+ delete(url: string, body?: RelationBodyData | RelationBodyData[]): Observable<void>;
7
+ get<T extends object, R extends 'object' | 'array' = 'object', IdKey extends string = string>(url: string, params?: {
8
+ params: ParamObject;
9
+ }): Observable<ResourceObject<T, R, null, IdKey>>;
10
+ get<T extends object, IdKey extends string, Rel extends RelationKeys<T, IdKey>>(url: string, params?: {
11
+ params: ParamObject;
12
+ }): Observable<ResourceObjectRelationships<T, IdKey, Rel>>;
13
+ patch<T extends object>(url: string, body: PatchData<T>): Observable<ResourceObject<T, 'object'>>;
14
+ patch<T extends object, IdKey extends string, Rel extends RelationKeys<T, IdKey>>(url: string, body: RelationBodyData | RelationBodyData[]): Observable<ResourceObjectRelationships<T, IdKey, Rel>>;
15
+ post<T extends object>(url: string, body: PostData<T>): Observable<ResourceObject<T>>;
16
+ post<T extends object[]>(url: string, body: AtomicBody): Observable<AtomicResponse<T>>;
17
+ post<T extends object, IdKey extends string, Rel extends RelationKeys<T, IdKey>>(url: string, body: RelationBodyData | RelationBodyData[]): Observable<ResourceObjectRelationships<T, IdKey, Rel>>;
18
+ private request;
19
+ private getResultUrl;
20
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FetchInnerClient = void 0;
4
+ const fetch_1 = require("rxjs/fetch");
5
+ const utils_1 = require("../utils");
6
+ class FetchInnerClient {
7
+ delete(url, body) {
8
+ let requestInit = {
9
+ method: 'delete',
10
+ };
11
+ if (body) {
12
+ requestInit = Object.assign(Object.assign({}, requestInit), { body: JSON.stringify(body) });
13
+ }
14
+ return this.request(url, requestInit);
15
+ }
16
+ get(url, params) {
17
+ let filterParams = {};
18
+ if (params) {
19
+ ({ params: filterParams } = params);
20
+ }
21
+ return this.request(this.getResultUrl(url, filterParams), {
22
+ method: 'get',
23
+ });
24
+ }
25
+ patch(url, body) {
26
+ return this.request(url, {
27
+ method: 'patch',
28
+ body: JSON.stringify(body),
29
+ });
30
+ }
31
+ post(url, body) {
32
+ return this.request(url, {
33
+ method: 'post',
34
+ body: JSON.stringify(body),
35
+ });
36
+ }
37
+ request(url, initData) {
38
+ return (0, fetch_1.fromFetch)(url, Object.assign(Object.assign({}, initData), { selector: (r) => r.json() }));
39
+ }
40
+ getResultUrl(url, params) {
41
+ const paramsStr = new utils_1.HttpParams({ fromObject: params }).toString();
42
+ if (paramsStr.length === 0)
43
+ return url;
44
+ return new URL('?' + new utils_1.HttpParams({ fromObject: params }).toString(), url).toString();
45
+ }
46
+ }
47
+ exports.FetchInnerClient = FetchInnerClient;
48
+ //# sourceMappingURL=fetch-inner-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-inner-client.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-sdk/src/lib/service/fetch-inner-client.ts"],"names":[],"mappings":";;;AACA,sCAAuC;AAMvC,oCAAmD;AAWnD,MAAa,gBAAgB;IAC3B,MAAM,CACJ,GAAW,EACX,IAA4C;QAE5C,IAAI,WAAW,GAAgB;YAC7B,MAAM,EAAE,QAAQ;SACjB,CAAC;QACF,IAAI,IAAI,EAAE,CAAC;YACT,WAAW,mCACN,WAAW,KACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAC3B,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAO,GAAG,EAAE,WAAW,CAAC,CAAC;IAC9C,CAAC;IAkBD,GAAG,CAMD,GAAW,EACX,MAAgC;QAKhC,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,MAAM,EAAE,CAAC;YACX,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAGjB,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE;YACtC,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;IACL,CAAC;IAcD,KAAK,CAKH,GAAW,EACX,IAA0D;QAI1D,OAAO,IAAI,CAAC,OAAO,CAEjB,GAAG,EAAE;YACL,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAkBD,IAAI,CAKF,GAAW,EACX,IAAsE;QAMtE,OAAO,IAAI,CAAC,OAAO,CAOjB,GAAG,EAAE;YACL,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAEO,OAAO,CAAI,GAAW,EAAE,QAAqB;QACnD,OAAO,IAAA,iBAAS,EAAI,GAAG,kCAClB,QAAQ,KACX,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IACzB,CAAC;IACL,CAAC;IAEO,YAAY,CAAC,GAAW,EAAE,MAAmB;QACnD,MAAM,SAAS,GAAG,IAAI,kBAAU,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QACpE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC;QACvC,OAAO,IAAI,GAAG,CACZ,GAAG,GAAG,IAAI,kBAAU,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,EACvD,GAAG,CACJ,CAAC,QAAQ,EAAE,CAAC;IACf,CAAC;CACF;AA/ID,4CA+IC"}
@@ -0,0 +1,3 @@
1
+ export * from './json-api-utils.service';
2
+ export * from './atomic-operations.service';
3
+ export * from './json-api-sdk.service';