@klerick/json-api-nestjs-sdk 10.0.0-beta.6 → 10.0.0-beta.7
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 +10 -0
- package/cjs/src/index.js +13 -4
- package/cjs/src/index.js.map +1 -1
- package/cjs/src/lib/constants/index.js +4 -1
- package/cjs/src/lib/constants/index.js.map +1 -1
- package/cjs/src/lib/json-api-angular.js +26 -19
- package/cjs/src/lib/json-api-angular.js.map +1 -1
- package/cjs/src/lib/json-api-js.js +16 -13
- package/cjs/src/lib/json-api-js.js.map +1 -1
- package/cjs/src/lib/service/atomic-operations.service.js +12 -8
- package/cjs/src/lib/service/atomic-operations.service.js.map +1 -1
- package/cjs/src/lib/service/fetch-inner-client.js +10 -6
- package/cjs/src/lib/service/fetch-inner-client.js.map +1 -1
- package/cjs/src/lib/service/index.js +6 -3
- package/cjs/src/lib/service/index.js.map +1 -1
- package/cjs/src/lib/service/json-api-sdk.service.js +33 -29
- package/cjs/src/lib/service/json-api-sdk.service.js.map +1 -1
- package/cjs/src/lib/service/json-api-utils.service.js +31 -27
- package/cjs/src/lib/service/json-api-utils.service.js.map +1 -1
- package/cjs/src/lib/token/index.js +6 -3
- package/cjs/src/lib/token/index.js.map +1 -1
- package/cjs/src/lib/types/atomic-operation.js +2 -0
- package/cjs/src/lib/types/atomic-type.js +3 -1
- package/cjs/src/lib/types/atomic-type.js.map +1 -1
- package/cjs/src/lib/types/config.js +2 -0
- package/cjs/src/lib/types/filter-operand.js +3 -1
- package/cjs/src/lib/types/filter-operand.js.map +1 -1
- package/cjs/src/lib/types/http-inner-client.js +2 -0
- package/cjs/src/lib/types/http-request-params.js +2 -0
- package/cjs/src/lib/types/index.js +12 -9
- package/cjs/src/lib/types/index.js.map +1 -1
- package/cjs/src/lib/types/promise-json-api-sdk.js +2 -0
- package/cjs/src/lib/types/query-params.js +3 -1
- package/cjs/src/lib/types/query-params.js.map +1 -1
- package/cjs/src/lib/types/utils.js +2 -0
- package/cjs/src/lib/utils/adapter-for-axios.js +8 -5
- package/cjs/src/lib/utils/adapter-for-axios.js.map +1 -1
- package/cjs/src/lib/utils/entity-array.js +5 -1
- package/cjs/src/lib/utils/entity-array.js.map +1 -1
- package/cjs/src/lib/utils/generate-atomic-body.js +15 -11
- package/cjs/src/lib/utils/generate-atomic-body.js.map +1 -1
- package/cjs/src/lib/utils/http-params.js +7 -2
- package/cjs/src/lib/utils/http-params.js.map +1 -1
- package/cjs/src/lib/utils/index.js +8 -5
- package/cjs/src/lib/utils/index.js.map +1 -1
- package/cjs/src/lib/utils/utils.js +13 -8
- package/cjs/src/lib/utils/utils.js.map +1 -1
- package/cjs/src/ngModule.js +13 -3
- package/cjs/src/ngModule.js.map +1 -1
- package/package.json +2 -1
- package/cjs/src/index.d.ts +0 -5
- package/cjs/src/lib/constants/index.d.ts +0 -1
- package/cjs/src/lib/json-api-angular.d.ts +0 -21
- package/cjs/src/lib/json-api-js.d.ts +0 -15
- package/cjs/src/lib/service/atomic-operations.service.d.ts +0 -22
- package/cjs/src/lib/service/fetch-inner-client.d.ts +0 -20
- package/cjs/src/lib/service/index.d.ts +0 -3
- package/cjs/src/lib/service/json-api-sdk.service.d.ts +0 -21
- package/cjs/src/lib/service/json-api-utils.service.d.ts +0 -28
- package/cjs/src/lib/token/index.d.ts +0 -4
- package/cjs/src/lib/types/atomic-operation.d.ts +0 -33
- package/cjs/src/lib/types/atomic-type.d.ts +0 -23
- package/cjs/src/lib/types/config.d.ts +0 -14
- package/cjs/src/lib/types/filter-operand.d.ts +0 -10
- package/cjs/src/lib/types/http-inner-client.d.ts +0 -19
- package/cjs/src/lib/types/http-request-params.d.ts +0 -20
- package/cjs/src/lib/types/index.d.ts +0 -9
- package/cjs/src/lib/types/promise-json-api-sdk.d.ts +0 -16
- package/cjs/src/lib/types/query-params.d.ts +0 -47
- package/cjs/src/lib/types/utils.d.ts +0 -6
- package/cjs/src/lib/utils/adapter-for-axios.d.ts +0 -3
- package/cjs/src/lib/utils/entity-array.d.ts +0 -9
- package/cjs/src/lib/utils/generate-atomic-body.d.ts +0 -22
- package/cjs/src/lib/utils/http-params.d.ts +0 -154
- package/cjs/src/lib/utils/index.d.ts +0 -5
- package/cjs/src/lib/utils/utils.d.ts +0 -4
- package/cjs/src/ngModule.d.ts +0 -4
|
@@ -1,20 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isRelation = isRelation;
|
|
4
|
+
exports.getTypeForReq = getTypeForReq;
|
|
5
|
+
exports.resultConfig = resultConfig;
|
|
6
|
+
const change_case_commonjs_1 = require("change-case-commonjs");
|
|
7
|
+
const constants_1 = require("../constants");
|
|
8
|
+
function isRelation(val) {
|
|
4
9
|
const result = !(val === null ||
|
|
5
10
|
!val ||
|
|
6
11
|
['String', 'Boolean', 'Number', 'Date'].includes(val.constructor.name));
|
|
7
12
|
if (!result)
|
|
8
13
|
return result;
|
|
9
|
-
return ID_KEY in val;
|
|
14
|
+
return constants_1.ID_KEY in val;
|
|
10
15
|
}
|
|
11
|
-
|
|
12
|
-
return kebabCase(str).toLowerCase();
|
|
16
|
+
function getTypeForReq(str) {
|
|
17
|
+
return (0, change_case_commonjs_1.kebabCase)(str).toLowerCase();
|
|
13
18
|
}
|
|
14
|
-
|
|
19
|
+
function resultConfig(partialConfig) {
|
|
15
20
|
return {
|
|
16
21
|
...partialConfig,
|
|
17
|
-
idKey: partialConfig.idKey ? partialConfig.idKey : ID_KEY,
|
|
22
|
+
idKey: partialConfig.idKey ? partialConfig.idKey : constants_1.ID_KEY,
|
|
18
23
|
idIsNumber: partialConfig.idIsNumber === undefined
|
|
19
24
|
? true
|
|
20
25
|
: !!partialConfig.idIsNumber,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-sdk/src/lib/utils/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-sdk/src/lib/utils/utils.ts"],"names":[],"mappings":";;AAKA,gCASC;AAED,sCAEC;AAED,oCAUC;AA9BD,+DAAiD;AAEjD,4CAAsC;AAGtC,SAAgB,UAAU,CAAC,GAAQ;IACjC,MAAM,MAAM,GAAG,CAAC,CACd,GAAG,KAAK,IAAI;QACZ,CAAC,GAAG;QACJ,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CACvE,CAAC;IAEF,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;IAC3B,OAAO,kBAAM,IAAI,GAAG,CAAC;AACvB,CAAC;AAED,SAAgB,aAAa,CAAC,GAAW;IACvC,OAAO,IAAA,gCAAS,EAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AACtC,CAAC;AAED,SAAgB,YAAY,CAAC,aAA4B;IACvD,OAAO;QACL,GAAG,aAAa;QAChB,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAM;QACzD,UAAU,EACR,aAAa,CAAC,UAAU,KAAK,SAAS;YACpC,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU;QAChC,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;KACrE,CAAC;AACJ,CAAC"}
|
package/cjs/src/ngModule.js
CHANGED
|
@@ -1,4 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsonApiSdkService = exports.JsonApiUtilsService = exports.getProviders = exports.JSON_API_SDK_CONFIG = exports.provideJsonApi = exports.AtomicFactory = exports.FilterOperand = void 0;
|
|
4
|
+
var json_api_nestjs_shared_1 = require("@klerick/json-api-nestjs-shared");
|
|
5
|
+
Object.defineProperty(exports, "FilterOperand", { enumerable: true, get: function () { return json_api_nestjs_shared_1.FilterOperand; } });
|
|
6
|
+
var json_api_angular_1 = require("./lib/json-api-angular");
|
|
7
|
+
Object.defineProperty(exports, "AtomicFactory", { enumerable: true, get: function () { return json_api_angular_1.AtomicFactory; } });
|
|
8
|
+
Object.defineProperty(exports, "provideJsonApi", { enumerable: true, get: function () { return json_api_angular_1.provideJsonApi; } });
|
|
9
|
+
Object.defineProperty(exports, "JSON_API_SDK_CONFIG", { enumerable: true, get: function () { return json_api_angular_1.JSON_API_SDK_CONFIG; } });
|
|
10
|
+
Object.defineProperty(exports, "getProviders", { enumerable: true, get: function () { return json_api_angular_1.getProviders; } });
|
|
11
|
+
var service_1 = require("./lib/service");
|
|
12
|
+
Object.defineProperty(exports, "JsonApiUtilsService", { enumerable: true, get: function () { return service_1.JsonApiUtilsService; } });
|
|
13
|
+
Object.defineProperty(exports, "JsonApiSdkService", { enumerable: true, get: function () { return service_1.JsonApiSdkService; } });
|
|
4
14
|
//# sourceMappingURL=ngModule.js.map
|
package/cjs/src/ngModule.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngModule.js","sourceRoot":"","sources":["../../../../../../libs/json-api/json-api-nestjs-sdk/src/ngModule.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"ngModule.js","sourceRoot":"","sources":["../../../../../../libs/json-api/json-api-nestjs-sdk/src/ngModule.ts"],"names":[],"mappings":";;;AAAA,0EAAgF;AAAvE,uHAAA,aAAa,OAAA;AAEtB,2DAKgC;AAJ9B,iHAAA,aAAa,OAAA;AACb,kHAAA,cAAc,OAAA;AACd,uHAAA,mBAAmB,OAAA;AACnB,gHAAA,YAAY,OAAA;AAEd,yCAAuE;AAA9D,8GAAA,mBAAmB,OAAA;AAAE,4GAAA,iBAAiB,OAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@klerick/json-api-nestjs-sdk",
|
|
3
|
-
"version": "10.0.0-beta.
|
|
3
|
+
"version": "10.0.0-beta.7",
|
|
4
4
|
"description": "Helper for client JsonAPi Plugin for NestJs",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"nestjs",
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
"axios": "^1.6.0",
|
|
19
19
|
"@angular/common": "^19.0.0 || ^20.0.0 || ^21.0.0",
|
|
20
20
|
"@angular/core": "^19.0.0 || ^20.0.0 || ^21.0.0",
|
|
21
|
+
"rxjs": "^7.0.0",
|
|
21
22
|
"tslib": ">2.3.0"
|
|
22
23
|
},
|
|
23
24
|
"exports": {
|
package/cjs/src/index.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
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';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const ID_KEY = "id";
|
|
@@ -1,21 +0,0 @@
|
|
|
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';
|
|
@@ -1,15 +0,0 @@
|
|
|
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 {};
|
|
@@ -1,22 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { RelationKeys, EntityClass } from '@klerick/json-api-nestjs-shared';
|
|
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';
|
|
6
|
-
export declare class JsonApiSdkService {
|
|
7
|
-
private http;
|
|
8
|
-
private jsonApiUtilsService;
|
|
9
|
-
private jsonApiSdkConfig;
|
|
10
|
-
constructor(http: HttpInnerClient, jsonApiUtilsService: JsonApiUtilsService, jsonApiSdkConfig: JsonApiSdkConfig);
|
|
11
|
-
getList<Entity extends object, IdKey extends string = 'id'>(entity: EntityClass<Entity>, params?: QueryParams<Entity>): Observable<EntityArray<Entity>>;
|
|
12
|
-
getAll<Entity extends object>(entity: EntityClass<Entity>, params?: QueryParams<Entity>, push?: boolean): Observable<EntityArray<Entity>>;
|
|
13
|
-
getOne<Entity extends object>(entity: EntityClass<Entity>, id: string | number, params?: QueryParamsForOneItem<Entity>): Observable<Entity>;
|
|
14
|
-
postOne<Entity extends object>(entity: Entity): Observable<Entity>;
|
|
15
|
-
patchOne<Entity extends object>(entity: Entity): Observable<Entity>;
|
|
16
|
-
deleteOne<Entity extends object>(entity: Entity): Observable<void>;
|
|
17
|
-
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>;
|
|
21
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { RelationKeys, MainData, ResourceObject, ResourceObjectRelationships } from '@klerick/json-api-nestjs-shared';
|
|
2
|
-
import { JsonApiSdkConfig, QueryParams, Relationships, ReturnIfArray } from '../types';
|
|
3
|
-
import { HttpParams } from '../utils';
|
|
4
|
-
type RelationData = MainData;
|
|
5
|
-
export declare class JsonApiUtilsService {
|
|
6
|
-
private jsonApiSdkConfig;
|
|
7
|
-
constructor(jsonApiSdkConfig: JsonApiSdkConfig);
|
|
8
|
-
getUrlForResource(resource: string): string;
|
|
9
|
-
getQueryStringParams<Entity>(params?: QueryParams<Entity>): HttpParams;
|
|
10
|
-
private getIncludeParam;
|
|
11
|
-
private getSortParam;
|
|
12
|
-
private getPageParam;
|
|
13
|
-
private getFieldParam;
|
|
14
|
-
private getFilterParam;
|
|
15
|
-
convertResponseData<E extends object>(body: ResourceObject<E>, includeEntity?: QueryParams<E>['include']): E;
|
|
16
|
-
convertResponseData<E extends object, IdKey extends string>(body: ResourceObject<E, 'array', null, IdKey>, includeEntity?: QueryParams<E>['include']): E[];
|
|
17
|
-
convertResponseData<E extends object, IdKey extends string>(body: ResourceObject<E, 'object', null, IdKey>, includeEntity?: QueryParams<E>['include']): E;
|
|
18
|
-
convertResponseData<E extends object, IdKey extends string>(body: ResourceObject<E, 'array', null, IdKey>, includeEntity?: QueryParams<E>['include']): E[];
|
|
19
|
-
createEntityInstance<E>(name: string): E;
|
|
20
|
-
private findIncludeEntity;
|
|
21
|
-
generateBody<E extends object>(entity: E): {
|
|
22
|
-
attributes: {} | undefined;
|
|
23
|
-
relationships: Relationships<E>;
|
|
24
|
-
};
|
|
25
|
-
getResultForRelation<Entity extends object, IdKey extends string, Rel extends RelationKeys<Entity, IdKey>>(body: ResourceObjectRelationships<Entity, IdKey, Rel>): ReturnIfArray<Entity[Rel], string>;
|
|
26
|
-
generateRelationshipsBody<RelationshipEntity extends object>(relationshipEntity: RelationshipEntity | RelationshipEntity[]): RelationData | RelationData[];
|
|
27
|
-
}
|
|
28
|
-
export {};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
import { JsonApiSdkConfig, AtomicFactory as TypeAtomicFactory } from '../types';
|
|
3
|
-
export declare const JSON_API_SDK_CONFIG: InjectionToken<JsonApiSdkConfig>;
|
|
4
|
-
export declare const AtomicFactory: InjectionToken<TypeAtomicFactory>;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { RelationKeys } from '@klerick/json-api-nestjs-shared';
|
|
2
|
-
import { Observable } from 'rxjs';
|
|
3
|
-
import { ReturnIfArray } from './utils';
|
|
4
|
-
export interface AtomicRunGeneral<T extends unknown[]> {
|
|
5
|
-
run(): Observable<T>;
|
|
6
|
-
}
|
|
7
|
-
export interface AtomicRunPromise<T extends unknown[]> {
|
|
8
|
-
run(): Promise<T>;
|
|
9
|
-
}
|
|
10
|
-
export interface AtomicMainOperations<T extends unknown[]> {
|
|
11
|
-
postOne<Entity extends object>(entity: Entity): AtomicOperations<[...T, Entity]>;
|
|
12
|
-
patchOne<Entity extends object>(entity: Entity): AtomicOperations<[...T, Entity]>;
|
|
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
|
-
patchRelationships<Entity extends object, Rel extends RelationKeys<Entity>>(entity: Entity, relationType: Rel): AtomicOperations<[...T, ReturnIfArray<Entity[Rel], string>]>;
|
|
17
|
-
postRelationships<Entity extends object, Rel extends RelationKeys<Entity>>(entity: Entity, relationType: Rel): AtomicOperations<[...T, ReturnIfArray<Entity[Rel], string>]>;
|
|
18
|
-
deleteRelationships<Entity extends object, Rel extends RelationKeys<Entity>>(entity: Entity, relationType: Rel): AtomicOperations<[...T]>;
|
|
19
|
-
}
|
|
20
|
-
export interface AtomicMainOperationsPromise<T extends unknown[]> {
|
|
21
|
-
postOne<Entity extends object>(entity: Entity): AtomicOperationsPromise<[...T, Entity]>;
|
|
22
|
-
patchOne<Entity extends object>(entity: Entity): AtomicOperationsPromise<[...T, Entity]>;
|
|
23
|
-
deleteOne<Entity extends object>(entity: Entity): AtomicOperationsPromise<[...T]>;
|
|
24
|
-
patchRelationships<Entity extends object, Rel extends RelationKeys<Entity>>(entity: Entity, relationType: Rel): AtomicOperationsPromise<[...T, ReturnIfArray<Entity[Rel], string>]>;
|
|
25
|
-
postRelationships<Entity extends object, Rel extends RelationKeys<Entity>>(entity: Entity, relationType: Rel): AtomicOperationsPromise<[...T, ReturnIfArray<Entity[Rel], string>]>;
|
|
26
|
-
deleteRelationships<Entity extends object, Rel extends RelationKeys<Entity>>(entity: Entity, relationType: Rel): AtomicOperationsPromise<[...T]>;
|
|
27
|
-
}
|
|
28
|
-
export interface AtomicOperations<T extends unknown[]> extends AtomicMainOperations<T>, AtomicRunGeneral<T> {
|
|
29
|
-
}
|
|
30
|
-
export interface AtomicOperationsPromise<T extends unknown[]> extends AtomicMainOperationsPromise<T>, AtomicRunPromise<T> {
|
|
31
|
-
}
|
|
32
|
-
export type AtomicFactory = () => AtomicOperations<[]>;
|
|
33
|
-
export type AtomicFactoryPromise = () => AtomicOperationsPromise<[]>;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { KEY_MAIN_INPUT_SCHEMA, KEY_MAIN_OUTPUT_SCHEMA, Operation, ResourceObject } from '@klerick/json-api-nestjs-shared';
|
|
2
|
-
import { AtomicMainOperations } from './atomic-operation';
|
|
3
|
-
export type BodyType = {
|
|
4
|
-
op: Operation;
|
|
5
|
-
ref: {
|
|
6
|
-
type: string;
|
|
7
|
-
id?: string;
|
|
8
|
-
relationship?: string;
|
|
9
|
-
tmpId?: string;
|
|
10
|
-
};
|
|
11
|
-
data?: any;
|
|
12
|
-
};
|
|
13
|
-
export type AtomicBody = {
|
|
14
|
-
[KEY_MAIN_INPUT_SCHEMA]: BodyType[];
|
|
15
|
-
};
|
|
16
|
-
export type AtomicResponse<R extends unknown[]> = {
|
|
17
|
-
[KEY_MAIN_OUTPUT_SCHEMA]: {
|
|
18
|
-
[K in keyof R]: R[K] extends object ? ResourceObject<R[K]> : never;
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
export type AtomicVoidOperation = {
|
|
22
|
-
[K in keyof AtomicMainOperations<[]>]: (...arg: any) => void;
|
|
23
|
-
};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { PartialByKeys } from './utils';
|
|
2
|
-
import { HttpInnerClient } from './http-inner-client';
|
|
3
|
-
export type JsonApiSdkConfig = {
|
|
4
|
-
apiHost: string;
|
|
5
|
-
apiPrefix?: string;
|
|
6
|
-
idKey: string;
|
|
7
|
-
idIsNumber?: boolean;
|
|
8
|
-
operationUrl?: string;
|
|
9
|
-
dateFields: string[];
|
|
10
|
-
};
|
|
11
|
-
export type JsonSdkConfig = PartialByKeys<JsonApiSdkConfig, 'idKey' | 'apiPrefix' | 'idIsNumber' | 'dateFields' | 'operationUrl'>;
|
|
12
|
-
export type JsonConfig = JsonSdkConfig & {
|
|
13
|
-
adapter?: HttpInnerClient;
|
|
14
|
-
};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { FilterOperand } from '@klerick/json-api-nestjs-shared';
|
|
2
|
-
export type FilterOperandForString = Exclude<FilterOperand, FilterOperand.in | FilterOperand.nin | FilterOperand.some>;
|
|
3
|
-
export type Operands = {
|
|
4
|
-
[P in FilterOperand]?: P extends FilterOperandForString ? string : string[];
|
|
5
|
-
};
|
|
6
|
-
export type OperandsRelation = {
|
|
7
|
-
[FilterOperand.eq]: null;
|
|
8
|
-
} | {
|
|
9
|
-
[FilterOperand.ne]: null;
|
|
10
|
-
};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Observable } from 'rxjs';
|
|
2
|
-
import { RelationKeys, ResourceObject, ResourceObjectRelationships } from '@klerick/json-api-nestjs-shared';
|
|
3
|
-
import { ParamObject } from '../utils';
|
|
4
|
-
import { PostData, PatchData, RelationBodyData } from './http-request-params';
|
|
5
|
-
import { AtomicBody, AtomicResponse } from './atomic-type';
|
|
6
|
-
export interface HttpInnerClient {
|
|
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
|
-
post<T extends object>(url: string, body: PostData<T>): Observable<ResourceObject<T>>;
|
|
14
|
-
post<T extends unknown[]>(url: string, body: AtomicBody): Observable<AtomicResponse<T>>;
|
|
15
|
-
post<T extends object, IdKey extends string, Rel extends RelationKeys<T, IdKey>>(url: string, body: RelationBodyData | RelationBodyData[]): Observable<ResourceObjectRelationships<T, IdKey, Rel>>;
|
|
16
|
-
patch<T extends object>(url: string, body: PatchData<T>): Observable<ResourceObject<T>>;
|
|
17
|
-
patch<T extends object, IdKey extends string, Rel extends RelationKeys<T, IdKey>>(url: string, body: RelationBodyData | RelationBodyData[]): Observable<ResourceObjectRelationships<T, IdKey, Rel>>;
|
|
18
|
-
delete(url: string, body?: RelationBodyData | RelationBodyData[]): Observable<void>;
|
|
19
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { MainData, BaseAttribute, RelationKeys, BaseMainData } from '@klerick/json-api-nestjs-shared';
|
|
2
|
-
export type Relationships<Entity extends object, IdKey extends string = 'id'> = {
|
|
3
|
-
[P in RelationKeys<Entity, IdKey>]?: BaseMainData<Entity, IdKey, P>;
|
|
4
|
-
};
|
|
5
|
-
export type BaseRelationships<Entity extends object, IdKey extends string = 'id'> = {
|
|
6
|
-
relationships?: Relationships<Entity, IdKey>;
|
|
7
|
-
};
|
|
8
|
-
type PostMainData<T = string> = Omit<MainData<T>, 'id'> & {
|
|
9
|
-
id?: string;
|
|
10
|
-
};
|
|
11
|
-
export type PostData<T extends object, IdKey extends string = 'id'> = {
|
|
12
|
-
data: PostMainData & BaseAttribute<T, IdKey> & BaseRelationships<T, IdKey>;
|
|
13
|
-
};
|
|
14
|
-
export type PatchData<T extends object, IdKey extends string = 'id'> = {
|
|
15
|
-
data: MainData & BaseAttribute<T, IdKey> & BaseRelationships<T, IdKey>;
|
|
16
|
-
};
|
|
17
|
-
export type RelationBodyData = {
|
|
18
|
-
data: MainData | MainData[];
|
|
19
|
-
};
|
|
20
|
-
export {};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export * from './http-inner-client';
|
|
2
|
-
export * from './http-request-params';
|
|
3
|
-
export * from './atomic-type';
|
|
4
|
-
export * from './atomic-operation';
|
|
5
|
-
export * from './utils';
|
|
6
|
-
export * from './config';
|
|
7
|
-
export * from './query-params';
|
|
8
|
-
export * from './promise-json-api-sdk';
|
|
9
|
-
export * from './filter-operand';
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { EntityClass, RelationKeys } from '@klerick/json-api-nestjs-shared';
|
|
2
|
-
import { QueryParams, QueryParamsForOneItem } from './query-params';
|
|
3
|
-
import { EntityArray } from '../utils';
|
|
4
|
-
import { ReturnIfArray } from './utils';
|
|
5
|
-
export interface PromiseJsonApiSdkService {
|
|
6
|
-
getList<Entity extends object>(entity: EntityClass<Entity>, params?: QueryParams<Entity>): Promise<EntityArray<Entity>>;
|
|
7
|
-
getAll<Entity extends object>(entity: EntityClass<Entity>, params?: QueryParams<Entity>): Promise<EntityArray<Entity>>;
|
|
8
|
-
getOne<Entity extends object>(entity: EntityClass<Entity>, id: string | number, params?: QueryParamsForOneItem<Entity>): Promise<Entity>;
|
|
9
|
-
postOne<Entity extends object>(entity: Entity): Promise<Entity>;
|
|
10
|
-
patchOne<Entity extends object>(entity: Entity): Promise<Entity>;
|
|
11
|
-
deleteOne<Entity extends object>(entity: Entity): Promise<void>;
|
|
12
|
-
getRelationships<Entity extends object, IdKey extends string = 'id', Rel extends RelationKeys<Entity, IdKey> = RelationKeys<Entity, IdKey>>(entity: Entity, relationType: Rel): Promise<ReturnIfArray<Entity[Rel], string>>;
|
|
13
|
-
patchRelationships<Entity extends object, IdKey extends string = 'id', Rel extends RelationKeys<Entity, IdKey> = RelationKeys<Entity, IdKey>>(entity: Entity, relationType: Rel): Promise<ReturnIfArray<Entity[Rel], string>>;
|
|
14
|
-
postRelationships<Entity extends object, IdKey extends string = 'id', Rel extends RelationKeys<Entity, IdKey> = RelationKeys<Entity, IdKey>>(entity: Entity, relationType: Rel): Promise<ReturnIfArray<Entity[Rel], string>>;
|
|
15
|
-
deleteRelationships<Entity extends object, IdKey extends string = 'id', Rel extends RelationKeys<Entity, IdKey> = RelationKeys<Entity, IdKey>>(entity: Entity, relationType: Rel): Promise<void>;
|
|
16
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { QueryField, RelationKeys, PropertyKeys, TypeOfArray } from '@klerick/json-api-nestjs-shared';
|
|
2
|
-
import { Operands, OperandsRelation } from './filter-operand';
|
|
3
|
-
export type SortType = 'ASC' | 'DESC';
|
|
4
|
-
export type Includes<T> = RelationKeys<T>[];
|
|
5
|
-
type TargetField<E> = {
|
|
6
|
-
target?: PropertyKeys<E>[];
|
|
7
|
-
};
|
|
8
|
-
type RelationField<E> = {
|
|
9
|
-
[K in RelationKeys<E>]?: PropertyKeys<TypeOfArray<E[K]>>[];
|
|
10
|
-
};
|
|
11
|
-
type SortForEntity<E> = {
|
|
12
|
-
[K in PropertyKeys<E>]?: SortType;
|
|
13
|
-
};
|
|
14
|
-
type TargetSort<E> = {
|
|
15
|
-
target?: SortForEntity<E>;
|
|
16
|
-
};
|
|
17
|
-
type RelationSort<E> = {
|
|
18
|
-
[K in RelationKeys<E>]?: SortForEntity<TypeOfArray<E[K]>>;
|
|
19
|
-
};
|
|
20
|
-
export type Sort<E> = TargetSort<E> & RelationSort<E>;
|
|
21
|
-
export type Fields<E> = TargetField<E> & RelationField<E>;
|
|
22
|
-
export type Pagination = {
|
|
23
|
-
number: number;
|
|
24
|
-
size: number;
|
|
25
|
-
};
|
|
26
|
-
type TargetRelationFilter<E> = {
|
|
27
|
-
[P in RelationKeys<E>]?: OperandsRelation;
|
|
28
|
-
};
|
|
29
|
-
type EntityFilter<E> = {
|
|
30
|
-
[K in PropertyKeys<E>]?: Operands;
|
|
31
|
-
};
|
|
32
|
-
type TargetFilter<E> = {
|
|
33
|
-
target?: EntityFilter<E> & TargetRelationFilter<E>;
|
|
34
|
-
};
|
|
35
|
-
type RelationFilter<E> = {
|
|
36
|
-
[K in RelationKeys<E>]?: EntityFilter<TypeOfArray<E[K]>>;
|
|
37
|
-
};
|
|
38
|
-
export type Filter<T> = TargetFilter<T> & RelationFilter<T>;
|
|
39
|
-
export type QueryParams<E> = {
|
|
40
|
-
[QueryField.filter]?: Filter<E>;
|
|
41
|
-
[QueryField.include]?: Includes<E>;
|
|
42
|
-
[QueryField.sort]?: Sort<E>;
|
|
43
|
-
[QueryField.page]?: Pagination;
|
|
44
|
-
[QueryField.fields]?: Fields<E>;
|
|
45
|
-
};
|
|
46
|
-
export type QueryParamsForOneItem<T> = Pick<QueryParams<T>, QueryField.include | QueryField.filter | QueryField.fields>;
|
|
47
|
-
export {};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export type ReturnIfArray<I, O> = I extends unknown[] ? O[] : O;
|
|
2
|
-
export type PartialByKeys<E, K extends keyof E> = Omit<E, K> & Partial<Pick<E, K>>;
|
|
3
|
-
export type FunctionProperty<T, K extends keyof T> = T[K] extends (...args: any) => any ? T[K] : never;
|
|
4
|
-
export type FunctionPropertyNames<T> = {
|
|
5
|
-
[K in keyof T]: T[K] extends (...args: any) => any ? K : never;
|
|
6
|
-
}[keyof T];
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { PageProps } from '@klerick/json-api-nestjs-shared';
|
|
2
|
-
export declare class EntityArray<T> extends Array<T> {
|
|
3
|
-
private pageProps;
|
|
4
|
-
constructor(items: T[], pageProps: PageProps);
|
|
5
|
-
static get [Symbol.species](): ArrayConstructor;
|
|
6
|
-
get totalItems(): number;
|
|
7
|
-
get pageSize(): number;
|
|
8
|
-
get pageNumber(): number;
|
|
9
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { RelationKeys } from '@klerick/json-api-nestjs-shared';
|
|
2
|
-
import { AtomicMainOperations, JsonApiSdkConfig, BodyType } from '../types';
|
|
3
|
-
import { JsonApiUtilsService } from '../service';
|
|
4
|
-
export type AtomicVoidOperation = {
|
|
5
|
-
[K in keyof AtomicMainOperations<[]>]: (...arg: any) => void;
|
|
6
|
-
};
|
|
7
|
-
export declare class GenerateAtomicBody<Entity extends object = any, Rel extends RelationKeys<Entity> = any> implements AtomicVoidOperation {
|
|
8
|
-
private jsonApiUtilsService;
|
|
9
|
-
private jsonApiSdkConfig;
|
|
10
|
-
constructor(jsonApiUtilsService: JsonApiUtilsService, jsonApiSdkConfig: JsonApiSdkConfig);
|
|
11
|
-
private bodyData;
|
|
12
|
-
private skipEmpty;
|
|
13
|
-
get isSkipEmpty(): boolean;
|
|
14
|
-
private setToBody;
|
|
15
|
-
getBody(): BodyType;
|
|
16
|
-
postOne(entity: Entity): void;
|
|
17
|
-
patchOne(entity: Entity): void;
|
|
18
|
-
deleteOne(entity: Entity, skipEmpty: boolean): void;
|
|
19
|
-
patchRelationships(entity: Entity, relationType: Rel): void;
|
|
20
|
-
postRelationships(entity: Entity, relationType: Rel): void;
|
|
21
|
-
deleteRelationships(entity: Entity, relationType: Rel): void;
|
|
22
|
-
}
|