@decaf-ts/for-http 0.3.30 → 0.3.32
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/README.md +1 -1
- package/dist/for-http.cjs +1 -1
- package/dist/for-http.cjs.map +1 -1
- package/dist/for-http.js +1 -1
- package/dist/for-http.js.map +1 -1
- package/lib/RestRepository.cjs +15 -4
- package/lib/RestRepository.js.map +1 -1
- package/lib/adapter.cjs +38 -32
- package/lib/adapter.d.ts +4 -4
- package/lib/adapter.js.map +1 -1
- package/lib/axios/axios.cjs +46 -23
- package/lib/axios/axios.d.ts +2 -2
- package/lib/axios/axios.js.map +1 -1
- package/lib/axios/constants.cjs +18 -1
- package/lib/axios/constants.d.ts +2 -0
- package/lib/axios/constants.js.map +1 -1
- package/lib/esm/RestRepository.js +15 -4
- package/lib/esm/RestRepository.js.map +1 -1
- package/lib/esm/adapter.d.ts +4 -4
- package/lib/esm/adapter.js +17 -11
- package/lib/esm/adapter.js.map +1 -1
- package/lib/esm/axios/axios.d.ts +2 -2
- package/lib/esm/axios/axios.js +47 -24
- package/lib/esm/axios/axios.js.map +1 -1
- package/lib/esm/axios/constants.d.ts +2 -0
- package/lib/esm/axios/constants.js +16 -0
- package/lib/esm/axios/constants.js.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/types.d.ts +3 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/types.d.ts +3 -1
- package/package.json +1 -1
package/lib/axios/axios.cjs
CHANGED
|
@@ -108,9 +108,12 @@ class AxiosHttpAdapter extends adapter_1.HttpAdapter {
|
|
|
108
108
|
catch (e) {
|
|
109
109
|
// do nothing
|
|
110
110
|
}
|
|
111
|
-
|
|
111
|
+
const response = await this.client.request(Object.assign({}, details, overrides));
|
|
112
|
+
return response;
|
|
112
113
|
}
|
|
113
114
|
parseResponse(clazz, method, res) {
|
|
115
|
+
if (!res.status && method !== core_1.PersistenceKeys.STATEMENT)
|
|
116
|
+
throw new db_decorators_1.InternalError("this should be impossible");
|
|
114
117
|
if (res.status >= 400)
|
|
115
118
|
throw this.parseError(res.error || res.status);
|
|
116
119
|
switch (method) {
|
|
@@ -118,20 +121,19 @@ class AxiosHttpAdapter extends adapter_1.HttpAdapter {
|
|
|
118
121
|
case db_decorators_1.BulkCrudOperationKeys.READ_ALL:
|
|
119
122
|
case db_decorators_1.BulkCrudOperationKeys.UPDATE_ALL:
|
|
120
123
|
case db_decorators_1.BulkCrudOperationKeys.DELETE_ALL:
|
|
121
|
-
case core_1.PreparedStatementKeys.FIND_BY:
|
|
122
|
-
case core_1.PreparedStatementKeys.LIST_BY:
|
|
123
|
-
case core_1.PreparedStatementKeys.PAGE_BY:
|
|
124
|
-
return res.body;
|
|
125
124
|
case db_decorators_1.OperationKeys.CREATE:
|
|
126
125
|
case db_decorators_1.OperationKeys.READ:
|
|
127
126
|
case db_decorators_1.OperationKeys.UPDATE:
|
|
128
127
|
case db_decorators_1.OperationKeys.DELETE:
|
|
129
128
|
return res.body;
|
|
129
|
+
case core_1.PreparedStatementKeys.FIND_BY:
|
|
130
|
+
case core_1.PreparedStatementKeys.LIST_BY:
|
|
131
|
+
case core_1.PreparedStatementKeys.PAGE_BY:
|
|
130
132
|
case core_1.PreparedStatementKeys.FIND_ONE_BY:
|
|
131
|
-
case
|
|
133
|
+
case core_1.PersistenceKeys.STATEMENT:
|
|
132
134
|
return super.parseResponse(clazz, method, res.body);
|
|
133
135
|
default:
|
|
134
|
-
return res
|
|
136
|
+
return res;
|
|
135
137
|
}
|
|
136
138
|
}
|
|
137
139
|
/**
|
|
@@ -149,9 +151,15 @@ class AxiosHttpAdapter extends adapter_1.HttpAdapter {
|
|
|
149
151
|
const url = this.url(tableName, this.extractIdArgs(tableName, id));
|
|
150
152
|
const cfg = this.toRequest(ctx);
|
|
151
153
|
log.debug(`POSTing to ${url} with ${JSON.stringify(model)} and cfg ${JSON.stringify(cfg)}`);
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
154
|
+
const result = await this.request({
|
|
155
|
+
url,
|
|
156
|
+
method: "POST",
|
|
157
|
+
data: JSON.stringify(Object.assign({}, model, {
|
|
158
|
+
[decorator_validation_1.ModelKeys.ANCHOR]: tableName.name,
|
|
159
|
+
})),
|
|
160
|
+
...cfg,
|
|
161
|
+
}, ctx);
|
|
162
|
+
return result;
|
|
155
163
|
}
|
|
156
164
|
catch (e) {
|
|
157
165
|
throw this.parseError(e);
|
|
@@ -163,9 +171,14 @@ class AxiosHttpAdapter extends adapter_1.HttpAdapter {
|
|
|
163
171
|
const url = this.url(clazz, ["bulk"]);
|
|
164
172
|
const cfg = this.toRequest(ctx);
|
|
165
173
|
log.debug(`POSTing to ${url} with ${JSON.stringify(model)} and cfg ${JSON.stringify(cfg)}`);
|
|
166
|
-
return this.
|
|
167
|
-
|
|
168
|
-
|
|
174
|
+
return this.request({
|
|
175
|
+
url,
|
|
176
|
+
method: "POST",
|
|
177
|
+
data: JSON.stringify(model.map((m) => Object.assign({}, m, {
|
|
178
|
+
[decorator_validation_1.ModelKeys.ANCHOR]: clazz.name,
|
|
179
|
+
}))),
|
|
180
|
+
...cfg,
|
|
181
|
+
}, ctx);
|
|
169
182
|
}
|
|
170
183
|
catch (e) {
|
|
171
184
|
throw this.parseError(e);
|
|
@@ -185,7 +198,7 @@ class AxiosHttpAdapter extends adapter_1.HttpAdapter {
|
|
|
185
198
|
const url = this.url(tableName, this.extractIdArgs(tableName, id));
|
|
186
199
|
const cfg = this.toRequest(ctx);
|
|
187
200
|
log.debug(`GETing from ${url} and cfg ${JSON.stringify(cfg)}`);
|
|
188
|
-
return this.
|
|
201
|
+
return await this.request({ url, method: "GET", ...cfg }, ctx);
|
|
189
202
|
}
|
|
190
203
|
catch (e) {
|
|
191
204
|
throw this.parseError(e);
|
|
@@ -197,7 +210,7 @@ class AxiosHttpAdapter extends adapter_1.HttpAdapter {
|
|
|
197
210
|
const url = this.url(tableName, ["bulk"], { ids: ids });
|
|
198
211
|
const cfg = this.toRequest(ctx);
|
|
199
212
|
log.debug(`GETing from ${url} and cfg ${JSON.stringify(cfg)}`);
|
|
200
|
-
return this.
|
|
213
|
+
return await this.request({ url, method: "GET", ...cfg }, ctx);
|
|
201
214
|
}
|
|
202
215
|
catch (e) {
|
|
203
216
|
throw this.parseError(e);
|
|
@@ -218,9 +231,14 @@ class AxiosHttpAdapter extends adapter_1.HttpAdapter {
|
|
|
218
231
|
const url = this.url(tableName, this.extractIdArgs(tableName, id));
|
|
219
232
|
const cfg = this.toRequest(ctx);
|
|
220
233
|
log.debug(`PUTing to ${url} with ${JSON.stringify(model)} and cfg ${JSON.stringify(cfg)}`);
|
|
221
|
-
return this.
|
|
222
|
-
|
|
223
|
-
|
|
234
|
+
return await this.request({
|
|
235
|
+
url,
|
|
236
|
+
method: "PUT",
|
|
237
|
+
data: JSON.stringify(Object.assign({}, model, {
|
|
238
|
+
[decorator_validation_1.ModelKeys.ANCHOR]: tableName.name,
|
|
239
|
+
})),
|
|
240
|
+
...cfg,
|
|
241
|
+
}, ctx);
|
|
224
242
|
}
|
|
225
243
|
catch (e) {
|
|
226
244
|
throw this.parseError(e);
|
|
@@ -232,9 +250,14 @@ class AxiosHttpAdapter extends adapter_1.HttpAdapter {
|
|
|
232
250
|
const url = this.url(tableName, ["bulk"]);
|
|
233
251
|
const cfg = this.toRequest(ctx);
|
|
234
252
|
log.debug(`PUTing to ${url} with ${JSON.stringify(model)} and cfg ${JSON.stringify(cfg)}`);
|
|
235
|
-
return this.
|
|
236
|
-
|
|
237
|
-
|
|
253
|
+
return this.request({
|
|
254
|
+
url,
|
|
255
|
+
method: "PUT",
|
|
256
|
+
data: model.map((m) => Object.assign({}, m, {
|
|
257
|
+
[decorator_validation_1.ModelKeys.ANCHOR]: tableName.name,
|
|
258
|
+
})),
|
|
259
|
+
...cfg,
|
|
260
|
+
}, ctx);
|
|
238
261
|
}
|
|
239
262
|
catch (e) {
|
|
240
263
|
throw this.parseError(e);
|
|
@@ -254,7 +277,7 @@ class AxiosHttpAdapter extends adapter_1.HttpAdapter {
|
|
|
254
277
|
const url = this.url(tableName, this.extractIdArgs(tableName, id));
|
|
255
278
|
const cfg = this.toRequest(ctx);
|
|
256
279
|
log.debug(`DELETEing from ${url} and cfg ${JSON.stringify(cfg)}`);
|
|
257
|
-
return this.
|
|
280
|
+
return await this.request({ url, method: "DELETE", ...cfg }, ctx);
|
|
258
281
|
}
|
|
259
282
|
catch (e) {
|
|
260
283
|
throw this.parseError(e);
|
|
@@ -266,7 +289,7 @@ class AxiosHttpAdapter extends adapter_1.HttpAdapter {
|
|
|
266
289
|
const url = this.url(tableName, ["bulk"], { ids: ids });
|
|
267
290
|
const cfg = this.toRequest(ctx);
|
|
268
291
|
log.debug(`DELETEing from ${url} and cfg ${JSON.stringify(cfg)}`);
|
|
269
|
-
return this.
|
|
292
|
+
return await this.request({ url, method: "DELETE", ...cfg }, ctx);
|
|
270
293
|
}
|
|
271
294
|
catch (e) {
|
|
272
295
|
throw this.parseError(e);
|
package/lib/axios/axios.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { Axios, AxiosRequestConfig } from "axios";
|
|
|
3
3
|
import { HttpConfig } from "../types";
|
|
4
4
|
import { AxiosFlags } from "./types";
|
|
5
5
|
import { BaseError, OperationKeys, PrimaryKeyType } from "@decaf-ts/db-decorators";
|
|
6
|
-
import { Context, ContextualArgs,
|
|
6
|
+
import { Context, ContextualArgs, PreparedStatement } from "@decaf-ts/core";
|
|
7
7
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
8
8
|
import { Constructor } from "@decaf-ts/decoration";
|
|
9
9
|
/**
|
|
@@ -67,7 +67,7 @@ export declare class AxiosHttpAdapter extends HttpAdapter<HttpConfig, Axios, Axi
|
|
|
67
67
|
* @param {AxiosRequestConfig} details - The Axios request configuration
|
|
68
68
|
* @return {Promise<V>} A promise that resolves with the response data
|
|
69
69
|
*/
|
|
70
|
-
request<V>(details: AxiosRequestConfig, ...args:
|
|
70
|
+
request<V>(details: AxiosRequestConfig, ...args: ContextualArgs<Context<AxiosFlags>>): Promise<V>;
|
|
71
71
|
parseResponse<M extends Model>(clazz: Constructor<M>, method: OperationKeys | string, res: any): any;
|
|
72
72
|
/**
|
|
73
73
|
* @description Creates a new resource via HTTP POST
|
package/lib/axios/axios.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axios.js","sourceRoot":"","sources":["../../src/axios/axios.ts"],"names":[],"mappings":";;;AAAA,8CAAyC;AACzC,iCAAkD;AAGlD,
|
|
1
|
+
{"version":3,"file":"axios.js","sourceRoot":"","sources":["../../src/axios/axios.ts"],"names":[],"mappings":"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"}
|
package/lib/axios/constants.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AxiosFlavour = void 0;
|
|
3
|
+
exports.TaskResponseParser = exports.AxiosFlavour = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* @description Axios adapter flavor identifier
|
|
6
6
|
* @summary Constant string identifier used to identify the Axios implementation of the HTTP adapter
|
|
@@ -8,4 +8,21 @@ exports.AxiosFlavour = void 0;
|
|
|
8
8
|
* @memberOf module:for-http.axios
|
|
9
9
|
*/
|
|
10
10
|
exports.AxiosFlavour = "axios";
|
|
11
|
+
const TaskResponseParser = (res, ctx) => {
|
|
12
|
+
if (res.headers && res.headers["x-pending-task"]) {
|
|
13
|
+
let pending;
|
|
14
|
+
try {
|
|
15
|
+
pending = JSON.parse(res.headers["x-pending-task"]);
|
|
16
|
+
Object.entries(pending).forEach(([key, value]) => {
|
|
17
|
+
value.forEach((v) => ctx.pushPending(key, v));
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
catch (e) {
|
|
21
|
+
ctx.logger
|
|
22
|
+
.for(exports.TaskResponseParser)
|
|
23
|
+
.error(`Failed to parse pending tasks header ${res.headers["x-pending-task"]}: ${e}`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
exports.TaskResponseParser = TaskResponseParser;
|
|
11
28
|
//# sourceMappingURL=constants.js.map
|
package/lib/axios/constants.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ResponseParser } from "../types";
|
|
1
2
|
/**
|
|
2
3
|
* @description Axios adapter flavor identifier
|
|
3
4
|
* @summary Constant string identifier used to identify the Axios implementation of the HTTP adapter
|
|
@@ -5,3 +6,4 @@
|
|
|
5
6
|
* @memberOf module:for-http.axios
|
|
6
7
|
*/
|
|
7
8
|
export declare const AxiosFlavour = "axios";
|
|
9
|
+
export declare const TaskResponseParser: ResponseParser;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/axios/constants.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/axios/constants.ts"],"names":[],"mappings":";;;AAIA;;;;;GAKG;AACU,QAAA,YAAY,GAAG,OAAO,CAAC;AAE7B,MAAM,kBAAkB,GAAmB,CAChD,GAAQ,EACR,GAAwB,EACxB,EAAE;IACF,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjD,IAAI,OAAiC,CAAC;QACtC,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACpD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBAC/C,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,GAAG,CAAC,MAAM;iBACP,GAAG,CAAC,0BAAkB,CAAC;iBACvB,KAAK,CACJ,wCAAwC,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAC9E,CAAC;QACN,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAnBW,QAAA,kBAAkB,sBAmB7B"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Context, PersistenceKeys, PreparedStatementKeys, Repository, } from "@decaf-ts/core";
|
|
2
2
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
3
|
+
import { OperationKeys } from "@decaf-ts/db-decorators";
|
|
3
4
|
/**
|
|
4
5
|
* @description Repository for REST API interactions
|
|
5
6
|
* @summary A specialized repository implementation for interacting with REST APIs.
|
|
@@ -76,8 +77,12 @@ export class RestRepository extends Repository {
|
|
|
76
77
|
const { log, ctx, ctxArgs } = (await this.logCtx(args, PersistenceKeys.STATEMENT, true)).for(this.statement);
|
|
77
78
|
const argList = ctxArgs.slice(0, -1);
|
|
78
79
|
const lastArg = argList[argList.length - 1];
|
|
79
|
-
const hasParams = typeof lastArg === "object" &&
|
|
80
|
-
|
|
80
|
+
const hasParams = typeof lastArg === "object" &&
|
|
81
|
+
lastArg !== null &&
|
|
82
|
+
!Array.isArray(lastArg);
|
|
83
|
+
const params = hasParams
|
|
84
|
+
? argList.pop()
|
|
85
|
+
: undefined;
|
|
81
86
|
const query = {
|
|
82
87
|
class: this.class,
|
|
83
88
|
args: argList,
|
|
@@ -89,8 +94,14 @@ export class RestRepository extends Repository {
|
|
|
89
94
|
return this.adapter.parseResponse(this.class, name, await this.request(req, ...ctxArgs));
|
|
90
95
|
}
|
|
91
96
|
async request(details, ...args) {
|
|
92
|
-
|
|
93
|
-
|
|
97
|
+
let contextualizeArgs;
|
|
98
|
+
if (args.length && args[args.length - 1] instanceof Context) {
|
|
99
|
+
contextualizeArgs = this.logCtx(args, this.request);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
contextualizeArgs = (await this.logCtx(args, OperationKeys.READ, true)).for(this.request);
|
|
103
|
+
}
|
|
104
|
+
const { ctxArgs } = contextualizeArgs;
|
|
94
105
|
return this.adapter.request(details, ...ctxArgs);
|
|
95
106
|
}
|
|
96
107
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RestRepository.js","sourceRoot":"","sources":["../../src/RestRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAKP,eAAe,EAEf,qBAAqB,EACrB,UAAU,GAEX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"RestRepository.js","sourceRoot":"","sources":["../../src/RestRepository.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/adapter.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AdapterFlags, Condition, SequenceOptions } from "@decaf-ts/core";
|
|
2
|
+
import { Adapter, Context, ContextualArgs, MaybeContextualArg, Paginator, Statement, PreparedModel, PreparedStatement, Repository, Sequence, FlagsOf } from "@decaf-ts/core";
|
|
2
3
|
import { BaseError, OperationKeys, PrimaryKeyType } from "@decaf-ts/db-decorators";
|
|
3
4
|
import { HttpConfig, HttpFlags } from "./types";
|
|
4
5
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
5
6
|
import { Constructor } from "@decaf-ts/decoration";
|
|
6
|
-
import { Statement, SequenceOptions, Sequence } from "@decaf-ts/core";
|
|
7
|
-
import type { AdapterFlags } from "@decaf-ts/core";
|
|
8
7
|
export declare function suffixMethod(obj: any, before: (...args: any[]) => any, suffix: (...args: any[]) => any, beforeName?: string): void;
|
|
9
8
|
/**
|
|
10
9
|
* @description Abstract HTTP adapter for REST API interactions
|
|
@@ -50,7 +49,8 @@ export declare abstract class HttpAdapter<CONF extends HttpConfig, CON, REQ, Q e
|
|
|
50
49
|
* @param {...any[]} args - Additional arguments forwarded to the base implementation
|
|
51
50
|
* @return {Promise<FlagsOf<C>>} The flags object with headers
|
|
52
51
|
*/
|
|
53
|
-
protected flags<M extends Model>(operation: OperationKeys | string, model: Constructor<M> | Constructor<M>[], overrides: Partial<FlagsOf<C
|
|
52
|
+
protected flags<M extends Model>(operation: OperationKeys | string, model: Constructor<M> | Constructor<M>[], overrides: Partial<FlagsOf<C>>): Promise<FlagsOf<C>>;
|
|
53
|
+
protected DefaultFlags: Partial<FlagsOf<C>>;
|
|
54
54
|
/**
|
|
55
55
|
* @description Returns the repository constructor for this adapter
|
|
56
56
|
* @summary Provides the RestService class as the repository implementation for this HTTP adapter.
|
package/lib/esm/adapter.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { UnsupportedError, } from "@decaf-ts/core";
|
|
2
|
+
import { Adapter, AuthorizationError, ConnectionError, ForbiddenError, MigrationError, ObserverError, Paginator, PagingError, PersistenceKeys, prepared, QueryError, DefaultAdapterFlags, } from "@decaf-ts/core";
|
|
3
|
+
import { BadRequestError, ConflictError, InternalError, NotFoundError, OperationKeys, SerializationError, ValidationError, wrapMethodWithContext, } from "@decaf-ts/db-decorators";
|
|
3
4
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
4
|
-
import { apply, Decoration,
|
|
5
|
+
import { apply, Decoration, Metadata, methodMetadata, } from "@decaf-ts/decoration";
|
|
5
6
|
import { RestService } from "./RestService.js";
|
|
6
|
-
import { prepared, } from "@decaf-ts/core";
|
|
7
7
|
import { toKebabCase } from "@decaf-ts/logging";
|
|
8
8
|
import { HttpStatement } from "./HttpStatement.js";
|
|
9
9
|
import { HttpPaginator } from "./HttpPaginator.js";
|
|
@@ -56,6 +56,7 @@ export function suffixMethod(obj, before, suffix, beforeName) {
|
|
|
56
56
|
export class HttpAdapter extends Adapter {
|
|
57
57
|
constructor(config, flavour, alias) {
|
|
58
58
|
super(config, flavour, alias);
|
|
59
|
+
this.DefaultFlags = DefaultAdapterFlags;
|
|
59
60
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
60
61
|
const self = this;
|
|
61
62
|
[
|
|
@@ -70,6 +71,13 @@ export class HttpAdapter extends Adapter {
|
|
|
70
71
|
].forEach((method) => {
|
|
71
72
|
suffixMethod(this, method, (res) => self.parseResponse.call(self, undefined, method.name, res), method.name);
|
|
72
73
|
});
|
|
74
|
+
wrapMethodWithContext(this, (...args) => args, this.request, (res, ctx) => {
|
|
75
|
+
const parsers = self.config.parsers;
|
|
76
|
+
if (!parsers)
|
|
77
|
+
return res;
|
|
78
|
+
parsers.forEach((p) => p(res, ctx));
|
|
79
|
+
return res;
|
|
80
|
+
}, this.request.name);
|
|
73
81
|
}
|
|
74
82
|
/**
|
|
75
83
|
* @description Generates operation flags with HTTP headers
|
|
@@ -81,11 +89,10 @@ export class HttpAdapter extends Adapter {
|
|
|
81
89
|
* @param {...any[]} args - Additional arguments forwarded to the base implementation
|
|
82
90
|
* @return {Promise<FlagsOf<C>>} The flags object with headers
|
|
83
91
|
*/
|
|
84
|
-
async flags(operation, model, overrides
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
});
|
|
92
|
+
async flags(operation, model, overrides) {
|
|
93
|
+
return super.flags(operation, model, Object.assign({
|
|
94
|
+
headers: overrides.headers ?? {},
|
|
95
|
+
}, overrides));
|
|
89
96
|
}
|
|
90
97
|
/**
|
|
91
98
|
* @description Returns the repository constructor for this adapter
|
|
@@ -308,8 +315,7 @@ export class HttpAdapter extends Adapter {
|
|
|
308
315
|
descriptor.value = new Proxy(descriptor.value, {
|
|
309
316
|
async apply(target, thisArg, args) {
|
|
310
317
|
const repo = thisArg;
|
|
311
|
-
const
|
|
312
|
-
const { log, ctxArgs } = repo["logCtx"](contextArgs.args, target);
|
|
318
|
+
const { log, ctxArgs } = (await repo["logCtx"](args, OperationKeys.READ, true)).for(prop);
|
|
313
319
|
log.verbose(`Running prepared statement ${target.name}`);
|
|
314
320
|
log.debug(`With args: ${JSON.stringify(args, null, 2)}`);
|
|
315
321
|
return thisArg.statement(target.name, ...ctxArgs);
|
package/lib/esm/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,kBAAkB,
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/axios/axios.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { Axios, AxiosRequestConfig } from "axios";
|
|
|
3
3
|
import { HttpConfig } from "../types";
|
|
4
4
|
import { AxiosFlags } from "./types";
|
|
5
5
|
import { BaseError, OperationKeys, PrimaryKeyType } from "@decaf-ts/db-decorators";
|
|
6
|
-
import { Context, ContextualArgs,
|
|
6
|
+
import { Context, ContextualArgs, PreparedStatement } from "@decaf-ts/core";
|
|
7
7
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
8
8
|
import { Constructor } from "@decaf-ts/decoration";
|
|
9
9
|
/**
|
|
@@ -67,7 +67,7 @@ export declare class AxiosHttpAdapter extends HttpAdapter<HttpConfig, Axios, Axi
|
|
|
67
67
|
* @param {AxiosRequestConfig} details - The Axios request configuration
|
|
68
68
|
* @return {Promise<V>} A promise that resolves with the response data
|
|
69
69
|
*/
|
|
70
|
-
request<V>(details: AxiosRequestConfig, ...args:
|
|
70
|
+
request<V>(details: AxiosRequestConfig, ...args: ContextualArgs<Context<AxiosFlags>>): Promise<V>;
|
|
71
71
|
parseResponse<M extends Model>(clazz: Constructor<M>, method: OperationKeys | string, res: any): any;
|
|
72
72
|
/**
|
|
73
73
|
* @description Creates a new resource via HTTP POST
|
package/lib/esm/axios/axios.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { HttpAdapter } from "./../adapter.js";
|
|
2
2
|
import { Axios } from "axios";
|
|
3
|
-
import { BulkCrudOperationKeys, OperationKeys, } from "@decaf-ts/db-decorators";
|
|
3
|
+
import { BulkCrudOperationKeys, InternalError, OperationKeys, } from "@decaf-ts/db-decorators";
|
|
4
4
|
import { Context, PersistenceKeys, PreparedStatementKeys, } from "@decaf-ts/core";
|
|
5
5
|
import { AxiosFlavour } from "./constants.js";
|
|
6
6
|
import { ModelKeys } from "@decaf-ts/decorator-validation";
|
|
@@ -105,9 +105,12 @@ export class AxiosHttpAdapter extends HttpAdapter {
|
|
|
105
105
|
catch (e) {
|
|
106
106
|
// do nothing
|
|
107
107
|
}
|
|
108
|
-
|
|
108
|
+
const response = await this.client.request(Object.assign({}, details, overrides));
|
|
109
|
+
return response;
|
|
109
110
|
}
|
|
110
111
|
parseResponse(clazz, method, res) {
|
|
112
|
+
if (!res.status && method !== PersistenceKeys.STATEMENT)
|
|
113
|
+
throw new InternalError("this should be impossible");
|
|
111
114
|
if (res.status >= 400)
|
|
112
115
|
throw this.parseError(res.error || res.status);
|
|
113
116
|
switch (method) {
|
|
@@ -115,20 +118,19 @@ export class AxiosHttpAdapter extends HttpAdapter {
|
|
|
115
118
|
case BulkCrudOperationKeys.READ_ALL:
|
|
116
119
|
case BulkCrudOperationKeys.UPDATE_ALL:
|
|
117
120
|
case BulkCrudOperationKeys.DELETE_ALL:
|
|
118
|
-
case PreparedStatementKeys.FIND_BY:
|
|
119
|
-
case PreparedStatementKeys.LIST_BY:
|
|
120
|
-
case PreparedStatementKeys.PAGE_BY:
|
|
121
|
-
return res.body;
|
|
122
121
|
case OperationKeys.CREATE:
|
|
123
122
|
case OperationKeys.READ:
|
|
124
123
|
case OperationKeys.UPDATE:
|
|
125
124
|
case OperationKeys.DELETE:
|
|
126
125
|
return res.body;
|
|
126
|
+
case PreparedStatementKeys.FIND_BY:
|
|
127
|
+
case PreparedStatementKeys.LIST_BY:
|
|
128
|
+
case PreparedStatementKeys.PAGE_BY:
|
|
127
129
|
case PreparedStatementKeys.FIND_ONE_BY:
|
|
128
|
-
case
|
|
130
|
+
case PersistenceKeys.STATEMENT:
|
|
129
131
|
return super.parseResponse(clazz, method, res.body);
|
|
130
132
|
default:
|
|
131
|
-
return res
|
|
133
|
+
return res;
|
|
132
134
|
}
|
|
133
135
|
}
|
|
134
136
|
/**
|
|
@@ -146,9 +148,15 @@ export class AxiosHttpAdapter extends HttpAdapter {
|
|
|
146
148
|
const url = this.url(tableName, this.extractIdArgs(tableName, id));
|
|
147
149
|
const cfg = this.toRequest(ctx);
|
|
148
150
|
log.debug(`POSTing to ${url} with ${JSON.stringify(model)} and cfg ${JSON.stringify(cfg)}`);
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
151
|
+
const result = await this.request({
|
|
152
|
+
url,
|
|
153
|
+
method: "POST",
|
|
154
|
+
data: JSON.stringify(Object.assign({}, model, {
|
|
155
|
+
[ModelKeys.ANCHOR]: tableName.name,
|
|
156
|
+
})),
|
|
157
|
+
...cfg,
|
|
158
|
+
}, ctx);
|
|
159
|
+
return result;
|
|
152
160
|
}
|
|
153
161
|
catch (e) {
|
|
154
162
|
throw this.parseError(e);
|
|
@@ -160,9 +168,14 @@ export class AxiosHttpAdapter extends HttpAdapter {
|
|
|
160
168
|
const url = this.url(clazz, ["bulk"]);
|
|
161
169
|
const cfg = this.toRequest(ctx);
|
|
162
170
|
log.debug(`POSTing to ${url} with ${JSON.stringify(model)} and cfg ${JSON.stringify(cfg)}`);
|
|
163
|
-
return this.
|
|
164
|
-
|
|
165
|
-
|
|
171
|
+
return this.request({
|
|
172
|
+
url,
|
|
173
|
+
method: "POST",
|
|
174
|
+
data: JSON.stringify(model.map((m) => Object.assign({}, m, {
|
|
175
|
+
[ModelKeys.ANCHOR]: clazz.name,
|
|
176
|
+
}))),
|
|
177
|
+
...cfg,
|
|
178
|
+
}, ctx);
|
|
166
179
|
}
|
|
167
180
|
catch (e) {
|
|
168
181
|
throw this.parseError(e);
|
|
@@ -182,7 +195,7 @@ export class AxiosHttpAdapter extends HttpAdapter {
|
|
|
182
195
|
const url = this.url(tableName, this.extractIdArgs(tableName, id));
|
|
183
196
|
const cfg = this.toRequest(ctx);
|
|
184
197
|
log.debug(`GETing from ${url} and cfg ${JSON.stringify(cfg)}`);
|
|
185
|
-
return this.
|
|
198
|
+
return await this.request({ url, method: "GET", ...cfg }, ctx);
|
|
186
199
|
}
|
|
187
200
|
catch (e) {
|
|
188
201
|
throw this.parseError(e);
|
|
@@ -194,7 +207,7 @@ export class AxiosHttpAdapter extends HttpAdapter {
|
|
|
194
207
|
const url = this.url(tableName, ["bulk"], { ids: ids });
|
|
195
208
|
const cfg = this.toRequest(ctx);
|
|
196
209
|
log.debug(`GETing from ${url} and cfg ${JSON.stringify(cfg)}`);
|
|
197
|
-
return this.
|
|
210
|
+
return await this.request({ url, method: "GET", ...cfg }, ctx);
|
|
198
211
|
}
|
|
199
212
|
catch (e) {
|
|
200
213
|
throw this.parseError(e);
|
|
@@ -215,9 +228,14 @@ export class AxiosHttpAdapter extends HttpAdapter {
|
|
|
215
228
|
const url = this.url(tableName, this.extractIdArgs(tableName, id));
|
|
216
229
|
const cfg = this.toRequest(ctx);
|
|
217
230
|
log.debug(`PUTing to ${url} with ${JSON.stringify(model)} and cfg ${JSON.stringify(cfg)}`);
|
|
218
|
-
return this.
|
|
219
|
-
|
|
220
|
-
|
|
231
|
+
return await this.request({
|
|
232
|
+
url,
|
|
233
|
+
method: "PUT",
|
|
234
|
+
data: JSON.stringify(Object.assign({}, model, {
|
|
235
|
+
[ModelKeys.ANCHOR]: tableName.name,
|
|
236
|
+
})),
|
|
237
|
+
...cfg,
|
|
238
|
+
}, ctx);
|
|
221
239
|
}
|
|
222
240
|
catch (e) {
|
|
223
241
|
throw this.parseError(e);
|
|
@@ -229,9 +247,14 @@ export class AxiosHttpAdapter extends HttpAdapter {
|
|
|
229
247
|
const url = this.url(tableName, ["bulk"]);
|
|
230
248
|
const cfg = this.toRequest(ctx);
|
|
231
249
|
log.debug(`PUTing to ${url} with ${JSON.stringify(model)} and cfg ${JSON.stringify(cfg)}`);
|
|
232
|
-
return this.
|
|
233
|
-
|
|
234
|
-
|
|
250
|
+
return this.request({
|
|
251
|
+
url,
|
|
252
|
+
method: "PUT",
|
|
253
|
+
data: model.map((m) => Object.assign({}, m, {
|
|
254
|
+
[ModelKeys.ANCHOR]: tableName.name,
|
|
255
|
+
})),
|
|
256
|
+
...cfg,
|
|
257
|
+
}, ctx);
|
|
235
258
|
}
|
|
236
259
|
catch (e) {
|
|
237
260
|
throw this.parseError(e);
|
|
@@ -251,7 +274,7 @@ export class AxiosHttpAdapter extends HttpAdapter {
|
|
|
251
274
|
const url = this.url(tableName, this.extractIdArgs(tableName, id));
|
|
252
275
|
const cfg = this.toRequest(ctx);
|
|
253
276
|
log.debug(`DELETEing from ${url} and cfg ${JSON.stringify(cfg)}`);
|
|
254
|
-
return this.
|
|
277
|
+
return await this.request({ url, method: "DELETE", ...cfg }, ctx);
|
|
255
278
|
}
|
|
256
279
|
catch (e) {
|
|
257
280
|
throw this.parseError(e);
|
|
@@ -263,7 +286,7 @@ export class AxiosHttpAdapter extends HttpAdapter {
|
|
|
263
286
|
const url = this.url(tableName, ["bulk"], { ids: ids });
|
|
264
287
|
const cfg = this.toRequest(ctx);
|
|
265
288
|
log.debug(`DELETEing from ${url} and cfg ${JSON.stringify(cfg)}`);
|
|
266
|
-
return this.
|
|
289
|
+
return await this.request({ url, method: "DELETE", ...cfg }, ctx);
|
|
267
290
|
}
|
|
268
291
|
catch (e) {
|
|
269
292
|
throw this.parseError(e);
|