@klerick/json-api-nestjs-sdk 10.0.0-beta.8 → 10.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +121 -0
- package/README.md +498 -45
- package/cjs/src/index.js +9 -7
- package/cjs/src/index.js.map +1 -1
- package/cjs/src/lib/json-api-angular.js +22 -18
- package/cjs/src/lib/json-api-angular.js.map +1 -1
- package/cjs/src/lib/json-api-js.js +31 -11
- package/cjs/src/lib/json-api-js.js.map +1 -1
- package/cjs/src/lib/service/atomic-operations.service.js +22 -16
- package/cjs/src/lib/service/atomic-operations.service.js.map +1 -1
- package/cjs/src/lib/service/fetch-inner-client.js +3 -3
- package/cjs/src/lib/service/fetch-inner-client.js.map +1 -1
- package/cjs/src/lib/service/index.js +3 -3
- package/cjs/src/lib/service/index.js.map +1 -1
- package/cjs/src/lib/service/json-api-sdk.service.js +55 -22
- package/cjs/src/lib/service/json-api-sdk.service.js.map +1 -1
- package/cjs/src/lib/service/json-api-utils.service.js +138 -59
- package/cjs/src/lib/service/json-api-utils.service.js.map +1 -1
- package/cjs/src/lib/types/entity-chain.js +3 -0
- package/cjs/src/lib/types/entity-chain.js.map +1 -0
- package/cjs/src/lib/types/index.js +10 -9
- package/cjs/src/lib/types/index.js.map +1 -1
- package/cjs/src/lib/utils/generate-atomic-body.js +21 -20
- package/cjs/src/lib/utils/generate-atomic-body.js.map +1 -1
- package/cjs/src/lib/utils/index.js +5 -5
- package/cjs/src/lib/utils/index.js.map +1 -1
- package/cjs/src/lib/utils/utils.js +42 -3
- package/cjs/src/lib/utils/utils.js.map +1 -1
- package/cjs/src/ngModule.js +8 -8
- package/cjs/src/ngModule.js.map +1 -1
- package/mjs/package.json +1 -0
- package/mjs/src/index.d.ts +4 -4
- package/mjs/src/index.js +3 -3
- package/mjs/src/index.js.map +1 -1
- package/mjs/src/lib/json-api-angular.d.ts +10 -12
- package/mjs/src/lib/json-api-angular.js +11 -7
- package/mjs/src/lib/json-api-angular.js.map +1 -1
- package/mjs/src/lib/json-api-js.d.ts +4 -4
- package/mjs/src/lib/json-api-js.js +26 -6
- package/mjs/src/lib/json-api-js.js.map +1 -1
- package/mjs/src/lib/service/atomic-operations.service.d.ts +7 -7
- package/mjs/src/lib/service/atomic-operations.service.js +21 -15
- package/mjs/src/lib/service/atomic-operations.service.js.map +1 -1
- package/mjs/src/lib/service/fetch-inner-client.d.ts +2 -2
- package/mjs/src/lib/service/fetch-inner-client.js +1 -1
- package/mjs/src/lib/service/fetch-inner-client.js.map +1 -1
- package/mjs/src/lib/service/index.d.ts +3 -3
- package/mjs/src/lib/service/index.js +3 -3
- package/mjs/src/lib/service/index.js.map +1 -1
- package/mjs/src/lib/service/json-api-sdk.service.d.ts +13 -8
- package/mjs/src/lib/service/json-api-sdk.service.js +51 -18
- package/mjs/src/lib/service/json-api-sdk.service.js.map +1 -1
- package/mjs/src/lib/service/json-api-utils.service.d.ts +6 -5
- package/mjs/src/lib/service/json-api-utils.service.js +132 -53
- package/mjs/src/lib/service/json-api-utils.service.js.map +1 -1
- package/mjs/src/lib/token/index.d.ts +1 -1
- package/mjs/src/lib/types/atomic-operation.d.ts +11 -11
- package/mjs/src/lib/types/atomic-type.d.ts +2 -2
- package/mjs/src/lib/types/config.d.ts +2 -2
- package/mjs/src/lib/types/entity-chain.d.ts +32 -0
- package/mjs/src/lib/types/entity-chain.js +1 -0
- package/mjs/src/lib/types/entity-chain.js.map +1 -0
- package/mjs/src/lib/types/http-inner-client.d.ts +3 -3
- package/mjs/src/lib/types/http-request-params.d.ts +3 -0
- package/mjs/src/lib/types/index.d.ts +10 -9
- package/mjs/src/lib/types/index.js +10 -9
- package/mjs/src/lib/types/index.js.map +1 -1
- package/mjs/src/lib/types/promise-json-api-sdk.d.ts +20 -9
- package/mjs/src/lib/types/query-params.d.ts +1 -1
- package/mjs/src/lib/utils/adapter-for-axios.d.ts +1 -1
- package/mjs/src/lib/utils/generate-atomic-body.d.ts +7 -7
- package/mjs/src/lib/utils/generate-atomic-body.js +19 -18
- package/mjs/src/lib/utils/generate-atomic-body.js.map +1 -1
- package/mjs/src/lib/utils/index.d.ts +5 -5
- package/mjs/src/lib/utils/index.js +5 -5
- package/mjs/src/lib/utils/index.js.map +1 -1
- package/mjs/src/lib/utils/utils.d.ts +20 -1
- package/mjs/src/lib/utils/utils.js +36 -1
- package/mjs/src/lib/utils/utils.js.map +1 -1
- package/mjs/src/ngModule.d.ts +3 -3
- package/mjs/src/ngModule.js +2 -2
- package/mjs/src/ngModule.js.map +1 -1
- package/package.json +5 -5
package/mjs/package.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type": "module"}
|
package/mjs/src/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
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, JsonConfig, Filter, Includes, Sort, Pagination, Fields } from './lib/types';
|
|
2
|
+
export { JsonApiUtilsService, JsonApiSdkService } from './lib/service/index.js';
|
|
3
|
+
export * from './lib/json-api-js.js';
|
|
4
|
+
export { adapterForAxios, nullRef, emptyArrayRef } from './lib/utils/index.js';
|
|
5
|
+
export { AtomicOperations, Operands, QueryParams, JsonConfig, Filter, Includes, Sort, Pagination, Fields, EntityChain, PromiseEntityChain } from './lib/types/index.js';
|
package/mjs/src/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { FilterOperand, 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';
|
|
2
|
+
export { JsonApiUtilsService, JsonApiSdkService } from './lib/service/index.js';
|
|
3
|
+
export * from './lib/json-api-js.js';
|
|
4
|
+
export { adapterForAxios, nullRef, emptyArrayRef } from './lib/utils/index.js';
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
package/mjs/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/json-api/json-api-nestjs-sdk/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAEb,UAAU,GACX,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/json-api/json-api-nestjs-sdk/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAEb,UAAU,GACX,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChF,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -1,21 +1,19 @@
|
|
|
1
|
-
import { JsonSdkConfig } from './types';
|
|
2
|
-
import { JsonApiUtilsService, JsonApiSdkService, AtomicOperationsService } from './service';
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { JsonSdkConfig } from './types/index.js';
|
|
2
|
+
import { JsonApiUtilsService, JsonApiSdkService, AtomicOperationsService } from './service/index.js';
|
|
3
|
+
export type JsonSdkConfigFactory = () => JsonSdkConfig;
|
|
4
|
+
export type JsonSdkConfigOrFactory = JsonSdkConfig | JsonSdkConfigFactory;
|
|
5
|
+
export declare const getProviders: (configOrFactory: JsonSdkConfigOrFactory) => ({
|
|
6
|
+
provide: import("@angular/core").InjectionToken<import("./types/config.js").JsonApiSdkConfig>;
|
|
7
|
+
useFactory: () => import("./types/config.js").JsonApiSdkConfig;
|
|
7
8
|
} | {
|
|
8
9
|
provide: typeof JsonApiUtilsService;
|
|
9
10
|
useFactory: () => JsonApiUtilsService;
|
|
10
|
-
useValue?: undefined;
|
|
11
11
|
} | {
|
|
12
12
|
provide: typeof JsonApiSdkService;
|
|
13
13
|
useFactory: () => JsonApiSdkService;
|
|
14
|
-
useValue?: undefined;
|
|
15
14
|
} | {
|
|
16
|
-
provide: import("@angular/core").InjectionToken<import("./types").AtomicFactory>;
|
|
15
|
+
provide: import("@angular/core").InjectionToken<import("./types/atomic-operation.js").AtomicFactory>;
|
|
17
16
|
useFactory: () => () => AtomicOperationsService<unknown[]>;
|
|
18
|
-
useValue?: undefined;
|
|
19
17
|
})[];
|
|
20
|
-
export declare const provideJsonApi: (
|
|
21
|
-
export { AtomicFactory, JSON_API_SDK_CONFIG } from './token';
|
|
18
|
+
export declare const provideJsonApi: (configOrFactory: JsonSdkConfigOrFactory) => import("@angular/core").EnvironmentProviders;
|
|
19
|
+
export { AtomicFactory, JSON_API_SDK_CONFIG } from './token/index.js';
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { inject, makeEnvironmentProviders } from '@angular/core';
|
|
2
2
|
import { HttpClient } from '@angular/common/http';
|
|
3
|
-
import { AtomicFactory, JSON_API_SDK_CONFIG } from './token';
|
|
4
|
-
import { resultConfig } from './utils';
|
|
5
|
-
import { JsonApiUtilsService, JsonApiSdkService, AtomicOperationsService, } from './service';
|
|
6
|
-
|
|
3
|
+
import { AtomicFactory, JSON_API_SDK_CONFIG } from './token/index.js';
|
|
4
|
+
import { resultConfig } from './utils/index.js';
|
|
5
|
+
import { JsonApiUtilsService, JsonApiSdkService, AtomicOperationsService, } from './service/index.js';
|
|
6
|
+
const isFactory = (config) => typeof config === 'function';
|
|
7
|
+
export const getProviders = (configOrFactory) => [
|
|
7
8
|
{
|
|
8
9
|
provide: JSON_API_SDK_CONFIG,
|
|
9
|
-
|
|
10
|
+
useFactory: () => {
|
|
11
|
+
const config = isFactory(configOrFactory) ? configOrFactory() : configOrFactory;
|
|
12
|
+
return resultConfig(config);
|
|
13
|
+
},
|
|
10
14
|
},
|
|
11
15
|
{
|
|
12
16
|
provide: JsonApiUtilsService,
|
|
@@ -28,6 +32,6 @@ export const getProviders = (config) => [
|
|
|
28
32
|
},
|
|
29
33
|
},
|
|
30
34
|
];
|
|
31
|
-
export const provideJsonApi = (
|
|
32
|
-
export { AtomicFactory, JSON_API_SDK_CONFIG } from './token';
|
|
35
|
+
export const provideJsonApi = (configOrFactory) => makeEnvironmentProviders(getProviders(configOrFactory));
|
|
36
|
+
export { AtomicFactory, JSON_API_SDK_CONFIG } from './token/index.js';
|
|
33
37
|
//# sourceMappingURL=json-api-angular.js.map
|
|
@@ -1 +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,OAAO,EAAE,MAAM,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,
|
|
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,OAAO,EAAE,MAAM,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAK5B,MAAM,SAAS,GAAG,CAAC,MAA8B,EAAkC,EAAE,CACnF,OAAO,MAAM,KAAK,UAAU,CAAC;AAE/B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,eAAuC,EAAE,EAAE,CAAC;IACvE;QACE,OAAO,EAAE,mBAAmB;QAC5B,UAAU,EAAE,GAAG,EAAE;YACf,MAAM,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;YAChF,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;KACF;IACD;QACE,OAAO,EAAE,mBAAmB;QAC5B,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,mBAAmB,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;KACvE;IACD;QACE,OAAO,EAAE,iBAAiB;QAC1B,UAAU,EAAE,GAAG,EAAE,CACf,IAAI,iBAAiB,CACnB,MAAM,CAAkB,UAAiB,CAAC,EAC1C,MAAM,CAAC,mBAAmB,CAAC,EAC3B,MAAM,CAAC,mBAAmB,CAAC,CAC5B;KACJ;IACD;QACE,OAAO,EAAE,aAAa;QACtB,UAAU,EAAE,GAAG,EAAE;YACf,MAAM,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAC3C,MAAM,UAAU,GAAG,MAAM,CAAkB,UAAiB,CAAC,CAAC;YAE9D,OAAO,GAAG,EAAE;gBACV,OAAO,IAAI,uBAAuB,CAChC,mBAAmB,EACnB,MAAM,EACN,UAAU,CACX,CAAC;YACJ,CAAC,CAAC;QACJ,CAAC;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,eAAuC,EAAE,EAAE,CACxE,wBAAwB,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { AtomicFactory, AtomicFactoryPromise, JsonConfig, PromiseJsonApiSdkService } from './types';
|
|
2
|
-
import { JsonApiSdkService, JsonApiUtilsService } from './service';
|
|
1
|
+
import { AtomicFactory, AtomicFactoryPromise, JsonConfig, PromiseJsonApiSdkService } from './types/index.js';
|
|
2
|
+
import { JsonApiSdkService, JsonApiUtilsService } from './service/index.js';
|
|
3
3
|
export type JsonSdkPromise = {
|
|
4
4
|
jsonApiUtilsService: JsonApiUtilsService;
|
|
5
|
-
|
|
5
|
+
jsonApiSdkService: PromiseJsonApiSdkService;
|
|
6
6
|
atomicFactory: AtomicFactoryPromise;
|
|
7
7
|
};
|
|
8
8
|
export type JsonSdkGeneral = {
|
|
9
9
|
jsonApiUtilsService: JsonApiUtilsService;
|
|
10
|
-
|
|
10
|
+
jsonApiSdkService: JsonApiSdkService;
|
|
11
11
|
atomicFactory: AtomicFactory;
|
|
12
12
|
};
|
|
13
13
|
type JsonSdk<P extends boolean | undefined> = P extends true ? JsonSdkPromise : JsonSdkGeneral;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { resultConfig } from './utils';
|
|
2
|
-
import { AtomicOperationsService, JsonApiSdkService, JsonApiUtilsService, } from './service';
|
|
3
|
-
import { FetchInnerClient } from './service/fetch-inner-client';
|
|
1
|
+
import { resultConfig } from './utils/index.js';
|
|
2
|
+
import { AtomicOperationsService, JsonApiSdkService, JsonApiUtilsService, } from './service/index.js';
|
|
3
|
+
import { FetchInnerClient } from './service/fetch-inner-client.js';
|
|
4
4
|
import { lastValueFrom } from 'rxjs';
|
|
5
5
|
const jsonSdk = {};
|
|
6
6
|
export function JsonApiJs(config, returnPromise) {
|
|
@@ -10,13 +10,33 @@ export function JsonApiJs(config, returnPromise) {
|
|
|
10
10
|
const resultJsonConfig = resultConfig(jsonSdkConfig);
|
|
11
11
|
const jsonApiUtilsService = new JsonApiUtilsService(resultJsonConfig);
|
|
12
12
|
const httpInnerClient = adapter ? adapter : new FetchInnerClient();
|
|
13
|
-
const
|
|
13
|
+
const jsonApiSdkService = new JsonApiSdkService(httpInnerClient, jsonApiUtilsService, resultJsonConfig);
|
|
14
14
|
jsonSdk['jsonApiUtilsService'] = jsonApiUtilsService;
|
|
15
|
-
jsonSdk['
|
|
15
|
+
jsonSdk['jsonApiSdkService'] = jsonApiSdkService;
|
|
16
16
|
jsonSdk['atomicFactory'] = () => new AtomicOperationsService(jsonApiUtilsService, resultJsonConfig, httpInnerClient);
|
|
17
17
|
if (returnPromise) {
|
|
18
|
-
jsonSdk['
|
|
18
|
+
jsonSdk['jsonApiSdkService'] = new Proxy(jsonApiSdkService, {
|
|
19
19
|
get(target, p) {
|
|
20
|
+
// Special handling for entity() method - it returns EntityChain, not Observable
|
|
21
|
+
if (p === 'entity') {
|
|
22
|
+
return ((...args) => {
|
|
23
|
+
const result = target.entity(...args);
|
|
24
|
+
// If raw mode (third arg is true), return entity as-is
|
|
25
|
+
if (args[2] === true) {
|
|
26
|
+
return result;
|
|
27
|
+
}
|
|
28
|
+
// Chain mode - wrap chain methods to return Promise instead of Observable
|
|
29
|
+
return new Proxy(result, {
|
|
30
|
+
get(chainTarget, chainMethod) {
|
|
31
|
+
const fn = chainTarget[chainMethod];
|
|
32
|
+
if (typeof fn === 'function') {
|
|
33
|
+
return (...chainArgs) => lastValueFrom(fn.call(chainTarget, ...chainArgs));
|
|
34
|
+
}
|
|
35
|
+
return fn;
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
}
|
|
20
40
|
return (...arg) => lastValueFrom(target[p].apply(target, arg));
|
|
21
41
|
},
|
|
22
42
|
});
|
|
@@ -1 +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":"AAQA,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
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":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
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';
|
|
3
|
+
import { JsonApiUtilsService } from './json-api-utils.service.js';
|
|
4
|
+
import { AtomicOperations, HttpInnerClient, JsonApiSdkConfig, ReturnIfArray } from '../types/index.js';
|
|
5
5
|
export declare class AtomicOperationsService<T extends unknown[]> implements AtomicOperations<T> {
|
|
6
6
|
private jsonApiUtilsService;
|
|
7
7
|
private jsonApiSdkConfig;
|
|
@@ -13,10 +13,10 @@ export declare class AtomicOperationsService<T extends unknown[]> implements Ato
|
|
|
13
13
|
deleteOne<Entity extends object>(entity: Entity): AtomicOperations<[...T]>;
|
|
14
14
|
deleteOne<Entity extends object>(entity: Entity, skipEmpty: true): AtomicOperations<[...T]>;
|
|
15
15
|
deleteOne<Entity extends object>(entity: Entity, skipEmpty: false): AtomicOperations<[...T, 'EMPTY']>;
|
|
16
|
-
patchOne<Entity extends object>(entity: Entity): AtomicOperations<[...T,
|
|
17
|
-
postOne<Entity extends object>(entity: Entity): AtomicOperations<[...T,
|
|
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>]>;
|
|
16
|
+
patchOne<Entity extends object, OutputEntity extends Entity = Entity>(entity: Entity, meta?: Record<string, unknown>): AtomicOperations<[...T, OutputEntity]>;
|
|
17
|
+
postOne<Entity extends object, OutputEntity extends Entity = Entity>(entity: Entity, meta?: Record<string, unknown>): AtomicOperations<[...T, OutputEntity]>;
|
|
18
|
+
deleteRelationships<Entity extends object, Rel extends RelationKeys<Entity>>(entity: Entity, relationType: Rel, meta?: Record<string, unknown>): AtomicOperations<T>;
|
|
19
|
+
patchRelationships<Entity extends object, Rel extends RelationKeys<Entity>>(entity: Entity, relationType: Rel, meta?: Record<string, unknown>): AtomicOperations<[...T, ReturnIfArray<Entity[Rel], string>]>;
|
|
20
|
+
postRelationships<Entity extends object, Rel extends RelationKeys<Entity>>(entity: Entity, relationType: Rel, meta?: Record<string, unknown>): AtomicOperations<[...T, ReturnIfArray<Entity[Rel], string>]>;
|
|
21
21
|
private setToBody;
|
|
22
22
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { KEY_MAIN_INPUT_SCHEMA, KEY_MAIN_OUTPUT_SCHEMA, } from '@klerick/json-api-nestjs-shared';
|
|
2
2
|
import { map } from 'rxjs/operators';
|
|
3
|
-
import { GenerateAtomicBody } from '../utils';
|
|
3
|
+
import { GenerateAtomicBody } from '../utils/index.js';
|
|
4
4
|
export class AtomicOperationsService {
|
|
5
5
|
jsonApiUtilsService;
|
|
6
6
|
jsonApiSdkConfig;
|
|
@@ -43,22 +43,22 @@ export class AtomicOperationsService {
|
|
|
43
43
|
deleteOne(entity, skipEmpty) {
|
|
44
44
|
return this.setToBody('deleteOne', entity, skipEmpty === undefined ? true : skipEmpty);
|
|
45
45
|
}
|
|
46
|
-
patchOne(entity) {
|
|
47
|
-
return this.setToBody('patchOne', entity);
|
|
46
|
+
patchOne(entity, meta) {
|
|
47
|
+
return this.setToBody('patchOne', entity, meta);
|
|
48
48
|
}
|
|
49
|
-
postOne(entity) {
|
|
50
|
-
return this.setToBody('postOne', entity);
|
|
49
|
+
postOne(entity, meta) {
|
|
50
|
+
return this.setToBody('postOne', entity, meta);
|
|
51
51
|
}
|
|
52
|
-
deleteRelationships(entity, relationType) {
|
|
53
|
-
return this.setToBody('deleteRelationships', entity, relationType);
|
|
52
|
+
deleteRelationships(entity, relationType, meta) {
|
|
53
|
+
return this.setToBody('deleteRelationships', entity, relationType, meta);
|
|
54
54
|
}
|
|
55
|
-
patchRelationships(entity, relationType) {
|
|
56
|
-
return this.setToBody('patchRelationships', entity, relationType);
|
|
55
|
+
patchRelationships(entity, relationType, meta) {
|
|
56
|
+
return this.setToBody('patchRelationships', entity, relationType, meta);
|
|
57
57
|
}
|
|
58
|
-
postRelationships(entity, relationType) {
|
|
59
|
-
return this.setToBody('postRelationships', entity, relationType);
|
|
58
|
+
postRelationships(entity, relationType, meta) {
|
|
59
|
+
return this.setToBody('postRelationships', entity, relationType, meta);
|
|
60
60
|
}
|
|
61
|
-
setToBody(operationType, entity, relationType) {
|
|
61
|
+
setToBody(operationType, entity, relationType, meta) {
|
|
62
62
|
const atomicBody = new GenerateAtomicBody(this.jsonApiUtilsService, this.jsonApiSdkConfig);
|
|
63
63
|
if (typeof relationType === 'boolean') {
|
|
64
64
|
if (operationType === 'deleteOne') {
|
|
@@ -71,11 +71,17 @@ export class AtomicOperationsService {
|
|
|
71
71
|
case 'patchRelationships':
|
|
72
72
|
case 'deleteRelationships':
|
|
73
73
|
if (relationType)
|
|
74
|
-
atomicBody[operationType](entity, relationType);
|
|
74
|
+
atomicBody[operationType](entity, relationType, meta);
|
|
75
75
|
break;
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
case 'postOne':
|
|
77
|
+
case 'patchOne': {
|
|
78
|
+
// For postOne/patchOne, relationType parameter contains meta (3rd param)
|
|
79
|
+
const metaForEntity = typeof relationType === 'object' && relationType !== null && !Array.isArray(relationType)
|
|
80
|
+
? relationType
|
|
81
|
+
: meta;
|
|
82
|
+
atomicBody[operationType](entity, metaForEntity);
|
|
78
83
|
break;
|
|
84
|
+
}
|
|
79
85
|
}
|
|
80
86
|
}
|
|
81
87
|
this.addBody(atomicBody);
|
|
@@ -1 +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":"AACA,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GAEvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAErC,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
|
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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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
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';
|
|
3
|
+
import { ParamObject } from '../utils/index.js';
|
|
4
|
+
import { HttpInnerClient, PatchData, PostData, RelationBodyData, AtomicBody, AtomicResponse } from '../types/index.js';
|
|
5
5
|
export declare class FetchInnerClient implements HttpInnerClient {
|
|
6
6
|
delete(url: string, body?: RelationBodyData | RelationBodyData[]): Observable<void>;
|
|
7
7
|
get<T extends object, R extends 'object' | 'array' = 'object', IdKey extends string = string>(url: string, params?: {
|
|
@@ -1 +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,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAMvC,OAAO,EAAe,UAAU,EAAE,MAAM,
|
|
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,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAMvC,OAAO,EAAe,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAW5D,MAAM,OAAO,gBAAgB;IAC3B,MAAM,CACJ,GAAW,EACX,IAA4C;QAE5C,IAAI,WAAW,GAAgB;YAC7B,MAAM,EAAE,QAAQ;SACjB,CAAC;QACF,IAAI,IAAI,EAAE,CAAC;YACT,WAAW,GAAG;gBACZ,GAAG,WAAW;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC3B,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,SAAS,CAAI,GAAG,EAAE;YACvB,GAAG,QAAQ;YACX,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;SAC1B,CAAC,CAAC;IACL,CAAC;IAEO,YAAY,CAAC,GAAW,EAAE,MAAmB;QACnD,MAAM,SAAS,GAAG,IAAI,UAAU,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,UAAU,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,EACvD,GAAG,CACJ,CAAC,QAAQ,EAAE,CAAC;IACf,CAAC;CACF"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './json-api-utils.service';
|
|
2
|
-
export * from './atomic-operations.service';
|
|
3
|
-
export * from './json-api-sdk.service';
|
|
1
|
+
export * from './json-api-utils.service.js';
|
|
2
|
+
export * from './atomic-operations.service.js';
|
|
3
|
+
export * from './json-api-sdk.service.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './json-api-utils.service';
|
|
2
|
-
export * from './atomic-operations.service';
|
|
3
|
-
export * from './json-api-sdk.service';
|
|
1
|
+
export * from './json-api-utils.service.js';
|
|
2
|
+
export * from './atomic-operations.service.js';
|
|
3
|
+
export * from './json-api-sdk.service.js';
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-sdk/src/lib/service/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-sdk/src/lib/service/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC"}
|
|
@@ -1,21 +1,26 @@
|
|
|
1
1
|
import { RelationKeys, EntityClass } from '@klerick/json-api-nestjs-shared';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
|
-
import { HttpInnerClient, JsonApiSdkConfig, QueryParams, QueryParamsForOneItem, ReturnIfArray } from '../types';
|
|
4
|
-
import { EntityArray } from '../utils';
|
|
5
|
-
import { JsonApiUtilsService } from './json-api-utils.service';
|
|
3
|
+
import { HttpInnerClient, JsonApiSdkConfig, QueryParams, QueryParamsForOneItem, ReturnIfArray, EntityChain } from '../types/index.js';
|
|
4
|
+
import { EntityArray } from '../utils/index.js';
|
|
5
|
+
import { JsonApiUtilsService } from './json-api-utils.service.js';
|
|
6
6
|
export declare class JsonApiSdkService {
|
|
7
7
|
private http;
|
|
8
8
|
private jsonApiUtilsService;
|
|
9
9
|
private jsonApiSdkConfig;
|
|
10
10
|
constructor(http: HttpInnerClient, jsonApiUtilsService: JsonApiUtilsService, jsonApiSdkConfig: JsonApiSdkConfig);
|
|
11
|
+
entity<E extends object, OutputE extends E = E>(typeName: string, data: E): EntityChain<E, OutputE>;
|
|
12
|
+
entity<E extends object>(typeName: string, data: E, raw: true): E;
|
|
11
13
|
getList<Entity extends object, IdKey extends string = 'id'>(entity: EntityClass<Entity>, params?: QueryParams<Entity>): Observable<EntityArray<Entity>>;
|
|
14
|
+
getList<Entity extends object, IdKey extends string = 'id'>(typeName: string, params?: QueryParams<Entity>): Observable<EntityArray<Entity>>;
|
|
12
15
|
getAll<Entity extends object>(entity: EntityClass<Entity>, params?: QueryParams<Entity>, push?: boolean): Observable<EntityArray<Entity>>;
|
|
16
|
+
getAll<Entity extends object>(typeName: string, params?: QueryParams<Entity>, push?: boolean): Observable<EntityArray<Entity>>;
|
|
13
17
|
getOne<Entity extends object>(entity: EntityClass<Entity>, id: string | number, params?: QueryParamsForOneItem<Entity>): Observable<Entity>;
|
|
14
|
-
|
|
15
|
-
|
|
18
|
+
getOne<Entity extends object>(typeName: string, id: string | number, params?: QueryParamsForOneItem<Entity>): Observable<Entity>;
|
|
19
|
+
postOne<Entity extends object, OutputEntity extends Entity = Entity>(entity: Entity, meta?: Record<string, unknown>): Observable<OutputEntity>;
|
|
20
|
+
patchOne<Entity extends object, OutputEntity extends Entity = Entity>(entity: Entity, meta?: Record<string, unknown>): Observable<OutputEntity>;
|
|
16
21
|
deleteOne<Entity extends object>(entity: Entity): Observable<void>;
|
|
17
22
|
getRelationships<Entity extends object, IdKey extends string = 'id', Rel extends RelationKeys<Entity, IdKey> = RelationKeys<Entity, IdKey>>(entity: Entity, relationType: Rel): Observable<ReturnIfArray<Entity[Rel], string>>;
|
|
18
|
-
patchRelationships<Entity extends object, IdKey extends string, Rel extends RelationKeys<Entity, IdKey>>(entity: Entity, relationType: Rel): Observable<ReturnIfArray<Entity[Rel], string>>;
|
|
19
|
-
postRelationships<Entity extends object, IdKey extends string, Rel extends RelationKeys<Entity, IdKey>>(entity: Entity, relationType: Rel): Observable<ReturnIfArray<Entity[Rel], string>>;
|
|
20
|
-
deleteRelationships<Entity extends object, IdKey extends string, Rel extends RelationKeys<Entity, IdKey>>(entity: Entity, relationType: Rel): Observable<void>;
|
|
23
|
+
patchRelationships<Entity extends object, IdKey extends string, Rel extends RelationKeys<Entity, IdKey>>(entity: Entity, relationType: Rel, meta?: Record<string, unknown>): Observable<ReturnIfArray<Entity[Rel], string>>;
|
|
24
|
+
postRelationships<Entity extends object, IdKey extends string, Rel extends RelationKeys<Entity, IdKey>>(entity: Entity, relationType: Rel, meta?: Record<string, unknown>): Observable<ReturnIfArray<Entity[Rel], string>>;
|
|
25
|
+
deleteRelationships<Entity extends object, IdKey extends string, Rel extends RelationKeys<Entity, IdKey>>(entity: Entity, relationType: Rel, meta?: Record<string, unknown>): Observable<void>;
|
|
21
26
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { EMPTY, expand, reduce, throwError } from 'rxjs';
|
|
2
2
|
import { map } from 'rxjs/operators';
|
|
3
|
-
import { EntityArray, getTypeForReq } from '../utils';
|
|
3
|
+
import { EntityArray, getTypeForReq } from '../utils/index.js';
|
|
4
|
+
const AS_PLAIN_RESULT = Symbol('asPlainResult');
|
|
4
5
|
export class JsonApiSdkService {
|
|
5
6
|
http;
|
|
6
7
|
jsonApiUtilsService;
|
|
@@ -10,16 +11,35 @@ export class JsonApiSdkService {
|
|
|
10
11
|
this.jsonApiUtilsService = jsonApiUtilsService;
|
|
11
12
|
this.jsonApiSdkConfig = jsonApiSdkConfig;
|
|
12
13
|
}
|
|
13
|
-
|
|
14
|
+
entity(typeName, data, raw) {
|
|
15
|
+
const instance = this.jsonApiUtilsService.createEntityInstance(typeName);
|
|
16
|
+
const entityObj = Object.assign(instance, data);
|
|
17
|
+
if (raw)
|
|
18
|
+
return entityObj;
|
|
19
|
+
// Mark for plain result when used via chain
|
|
20
|
+
Reflect.set(entityObj, AS_PLAIN_RESULT, true);
|
|
21
|
+
return new Proxy(this, {
|
|
22
|
+
get: (target, method) => {
|
|
23
|
+
const fn = target[method];
|
|
24
|
+
if (typeof fn === 'function') {
|
|
25
|
+
return (...args) => fn.call(target, entityObj, ...args);
|
|
26
|
+
}
|
|
27
|
+
return fn;
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
getList(entityOrTypeName, params) {
|
|
32
|
+
const asPlain = typeof entityOrTypeName === 'string';
|
|
33
|
+
const name = asPlain ? entityOrTypeName : entityOrTypeName.name;
|
|
14
34
|
const query = this.jsonApiUtilsService.getQueryStringParams(params);
|
|
15
35
|
return this.http
|
|
16
|
-
.get(this.jsonApiUtilsService.getUrlForResource(
|
|
36
|
+
.get(this.jsonApiUtilsService.getUrlForResource(name), {
|
|
17
37
|
params: query.toObject(),
|
|
18
38
|
})
|
|
19
39
|
.pipe(map((result) => {
|
|
20
40
|
const resource = params
|
|
21
|
-
? this.jsonApiUtilsService.convertResponseData(result, params.include)
|
|
22
|
-
: this.jsonApiUtilsService.convertResponseData(result);
|
|
41
|
+
? this.jsonApiUtilsService.convertResponseData(result, params.include, asPlain)
|
|
42
|
+
: this.jsonApiUtilsService.convertResponseData(result, undefined, asPlain);
|
|
23
43
|
const { totalItems, pageSize, pageNumber } = Object.assign({
|
|
24
44
|
totalItems: 0,
|
|
25
45
|
pageNumber: 0,
|
|
@@ -32,8 +52,8 @@ export class JsonApiSdkService {
|
|
|
32
52
|
});
|
|
33
53
|
}));
|
|
34
54
|
}
|
|
35
|
-
getAll(
|
|
36
|
-
const request = this.getList(
|
|
55
|
+
getAll(entityOrTypeName, params, push = true) {
|
|
56
|
+
const request = this.getList(entityOrTypeName, params).pipe(expand((r) => {
|
|
37
57
|
if (r.pageNumber * r.pageSize >= r.totalItems) {
|
|
38
58
|
return EMPTY;
|
|
39
59
|
}
|
|
@@ -46,7 +66,7 @@ export class JsonApiSdkService {
|
|
|
46
66
|
},
|
|
47
67
|
},
|
|
48
68
|
};
|
|
49
|
-
return this.getList(
|
|
69
|
+
return this.getList(entityOrTypeName, newParams);
|
|
50
70
|
}));
|
|
51
71
|
if (!push) {
|
|
52
72
|
return request.pipe(reduce((acum, item) => {
|
|
@@ -63,18 +83,21 @@ export class JsonApiSdkService {
|
|
|
63
83
|
}
|
|
64
84
|
return request;
|
|
65
85
|
}
|
|
66
|
-
getOne(
|
|
86
|
+
getOne(entityOrTypeName, id, params) {
|
|
67
87
|
if (!id) {
|
|
68
88
|
return throwError(() => new Error('Id for resource is required'));
|
|
69
89
|
}
|
|
90
|
+
const asPlain = typeof entityOrTypeName === 'string';
|
|
91
|
+
const name = asPlain ? entityOrTypeName : entityOrTypeName.name;
|
|
70
92
|
const query = this.jsonApiUtilsService.getQueryStringParams(params);
|
|
71
93
|
return this.http
|
|
72
|
-
.get(`${this.jsonApiUtilsService.getUrlForResource(
|
|
94
|
+
.get(`${this.jsonApiUtilsService.getUrlForResource(name)}/${id}`, {
|
|
73
95
|
params: query.toObject(),
|
|
74
96
|
})
|
|
75
|
-
.pipe(map((result) => this.jsonApiUtilsService.convertResponseData(result, params?.include)));
|
|
97
|
+
.pipe(map((result) => this.jsonApiUtilsService.convertResponseData(result, params?.include, asPlain)));
|
|
76
98
|
}
|
|
77
|
-
postOne(entity) {
|
|
99
|
+
postOne(entity, meta) {
|
|
100
|
+
const asPlain = Reflect.has(entity, AS_PLAIN_RESULT);
|
|
78
101
|
const { attributes, relationships } = this.jsonApiUtilsService.generateBody(entity);
|
|
79
102
|
const body = {
|
|
80
103
|
data: {
|
|
@@ -82,22 +105,29 @@ export class JsonApiSdkService {
|
|
|
82
105
|
attributes,
|
|
83
106
|
...(Object.keys(relationships).length > 0 ? { relationships } : {}),
|
|
84
107
|
},
|
|
108
|
+
...(meta ? { meta } : {}),
|
|
85
109
|
};
|
|
110
|
+
const id = Reflect.get(entity, this.jsonApiSdkConfig.idKey);
|
|
111
|
+
if (id) {
|
|
112
|
+
Reflect.set(body.data, 'id', String(id));
|
|
113
|
+
}
|
|
86
114
|
return this.http
|
|
87
115
|
.post(this.jsonApiUtilsService.getUrlForResource(entity.constructor.name), body)
|
|
88
|
-
.pipe(map((r) => this.jsonApiUtilsService.convertResponseData(r)));
|
|
116
|
+
.pipe(map((r) => this.jsonApiUtilsService.convertResponseData(r, (Object.keys(relationships).length > 0 ? Object.keys(relationships) : undefined), asPlain)));
|
|
89
117
|
}
|
|
90
|
-
patchOne(entity) {
|
|
118
|
+
patchOne(entity, meta) {
|
|
91
119
|
const id = Reflect.get(entity, this.jsonApiSdkConfig.idKey);
|
|
92
120
|
if (!id) {
|
|
93
121
|
return throwError(() => new Error('Resource params should be instance of resource with id params'));
|
|
94
122
|
}
|
|
123
|
+
const asPlain = Reflect.has(entity, AS_PLAIN_RESULT);
|
|
95
124
|
const { attributes, relationships } = this.jsonApiUtilsService.generateBody(entity);
|
|
96
125
|
const body = {
|
|
97
126
|
data: {
|
|
98
127
|
id: String(id),
|
|
99
128
|
type: getTypeForReq(entity.constructor.name),
|
|
100
129
|
},
|
|
130
|
+
...(meta ? { meta } : {}),
|
|
101
131
|
};
|
|
102
132
|
if (Object.keys(relationships).length > 0) {
|
|
103
133
|
Reflect.set(body.data, 'relationships', relationships);
|
|
@@ -107,7 +137,7 @@ export class JsonApiSdkService {
|
|
|
107
137
|
}
|
|
108
138
|
return this.http
|
|
109
139
|
.patch(`${this.jsonApiUtilsService.getUrlForResource(entity.constructor.name)}/${id}`, body)
|
|
110
|
-
.pipe(map((r) => this.jsonApiUtilsService.convertResponseData(r)));
|
|
140
|
+
.pipe(map((r) => this.jsonApiUtilsService.convertResponseData(r, (Object.keys(relationships).length > 0 ? Object.keys(relationships) : undefined), asPlain)));
|
|
111
141
|
}
|
|
112
142
|
deleteOne(entity) {
|
|
113
143
|
const id = Reflect.get(entity, this.jsonApiSdkConfig.idKey);
|
|
@@ -125,7 +155,7 @@ export class JsonApiSdkService {
|
|
|
125
155
|
.get(`${this.jsonApiUtilsService.getUrlForResource(entity.constructor.name)}/${id}/relationships/${String(relationType)}`)
|
|
126
156
|
.pipe(map((result) => this.jsonApiUtilsService.getResultForRelation(result)));
|
|
127
157
|
}
|
|
128
|
-
patchRelationships(entity, relationType) {
|
|
158
|
+
patchRelationships(entity, relationType, meta) {
|
|
129
159
|
const id = Reflect.get(entity, this.jsonApiSdkConfig.idKey);
|
|
130
160
|
if (!id) {
|
|
131
161
|
return throwError(() => new Error('Resource params should be instance of resource with id params'));
|
|
@@ -135,12 +165,13 @@ export class JsonApiSdkService {
|
|
|
135
165
|
}
|
|
136
166
|
const body = {
|
|
137
167
|
data: this.jsonApiUtilsService.generateRelationshipsBody(entity[relationType]),
|
|
168
|
+
...(meta ? { meta } : {}),
|
|
138
169
|
};
|
|
139
170
|
return this.http
|
|
140
171
|
.patch(`${this.jsonApiUtilsService.getUrlForResource(entity.constructor.name)}/${id}/relationships/${String(relationType)}`, body)
|
|
141
172
|
.pipe(map((result) => this.jsonApiUtilsService.getResultForRelation(result)));
|
|
142
173
|
}
|
|
143
|
-
postRelationships(entity, relationType) {
|
|
174
|
+
postRelationships(entity, relationType, meta) {
|
|
144
175
|
const id = Reflect.get(entity, this.jsonApiSdkConfig.idKey);
|
|
145
176
|
if (!id) {
|
|
146
177
|
return throwError(() => new Error('Resource params should be instance of resource with id params'));
|
|
@@ -150,12 +181,13 @@ export class JsonApiSdkService {
|
|
|
150
181
|
}
|
|
151
182
|
const body = {
|
|
152
183
|
data: this.jsonApiUtilsService.generateRelationshipsBody(entity[relationType]),
|
|
184
|
+
...(meta ? { meta } : {}),
|
|
153
185
|
};
|
|
154
186
|
return this.http
|
|
155
187
|
.post(`${this.jsonApiUtilsService.getUrlForResource(entity.constructor.name)}/${id}/relationships/${String(relationType)}`, body)
|
|
156
188
|
.pipe(map((result) => this.jsonApiUtilsService.getResultForRelation(result)));
|
|
157
189
|
}
|
|
158
|
-
deleteRelationships(entity, relationType) {
|
|
190
|
+
deleteRelationships(entity, relationType, meta) {
|
|
159
191
|
const id = Reflect.get(entity, this.jsonApiSdkConfig.idKey);
|
|
160
192
|
if (!id) {
|
|
161
193
|
return throwError(() => new Error('Resource params should be instance of resource with id params'));
|
|
@@ -165,6 +197,7 @@ export class JsonApiSdkService {
|
|
|
165
197
|
}
|
|
166
198
|
const body = {
|
|
167
199
|
data: this.jsonApiUtilsService.generateRelationshipsBody(entity[relationType]),
|
|
200
|
+
...(meta ? { meta } : {}),
|
|
168
201
|
};
|
|
169
202
|
return this.http
|
|
170
203
|
.delete(`${this.jsonApiUtilsService.getUrlForResource(entity.constructor.name)}/${id}/relationships/${String(relationType)}`, body)
|