@venizia/ignis-connectors 0.2.1-0 → 0.2.1-2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/http/common/types.d.ts +11 -0
- package/dist/cjs/http/common/types.d.ts.map +1 -1
- package/dist/cjs/http/datasource.d.ts +32 -3
- package/dist/cjs/http/datasource.d.ts.map +1 -1
- package/dist/cjs/http/datasource.js +135 -14
- package/dist/cjs/http/datasource.js.map +1 -1
- package/dist/cjs/http/repository.d.ts +174 -4
- package/dist/cjs/http/repository.d.ts.map +1 -1
- package/dist/cjs/http/repository.js +113 -15
- package/dist/cjs/http/repository.js.map +1 -1
- package/dist/esm/http/common/types.d.ts +11 -0
- package/dist/esm/http/common/types.d.ts.map +1 -1
- package/dist/esm/http/datasource.d.ts +32 -3
- package/dist/esm/http/datasource.d.ts.map +1 -1
- package/dist/esm/http/datasource.js +135 -14
- package/dist/esm/http/datasource.js.map +1 -1
- package/dist/esm/http/repository.d.ts +174 -4
- package/dist/esm/http/repository.d.ts.map +1 -1
- package/dist/esm/http/repository.js +113 -15
- package/dist/esm/http/repository.js.map +1 -1
- package/package.json +2 -2
|
@@ -8,6 +8,12 @@ export interface IAuthToken {
|
|
|
8
8
|
export type TAuthTokenResolver = () => IAuthToken | undefined;
|
|
9
9
|
/** Not `Record` alone: header names are case-insensitive, and an object merge appends two spellings. */
|
|
10
10
|
export type THttpHeaders = Headers | Array<[string, string]> | Record<string, string>;
|
|
11
|
+
/**
|
|
12
|
+
* A request body. A plain object or array goes out as JSON; a string, `Blob`, `FormData`,
|
|
13
|
+
* `URLSearchParams`, `ArrayBuffer` or typed array goes out as it is. Never a stream: the 401 retry
|
|
14
|
+
* sends the same body twice.
|
|
15
|
+
*/
|
|
16
|
+
export type THttpBody = string | object;
|
|
11
17
|
export interface IHttpDataSourceSettings {
|
|
12
18
|
baseUrl: string;
|
|
13
19
|
/** Sent on every request. `x-request-count` is refused - the connector owns it. */
|
|
@@ -28,6 +34,11 @@ export interface IHttpReadResult<R> {
|
|
|
28
34
|
skip?: number;
|
|
29
35
|
dataLength: number;
|
|
30
36
|
}
|
|
37
|
+
/** What a write answers: the rows the server returned, and its `x-response-count`. */
|
|
38
|
+
export interface IHttpWriteResult<R> {
|
|
39
|
+
data: R;
|
|
40
|
+
count: number;
|
|
41
|
+
}
|
|
31
42
|
export type THttpQuery<E extends object> = {
|
|
32
43
|
filter?: TFilter<E>;
|
|
33
44
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/http/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,kCAAkC;AAClC,MAAM,MAAM,kBAAkB,GAAG,MAAM,UAAU,GAAG,SAAS,CAAC;AAE9D,wGAAwG;AACxG,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/http/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,kCAAkC;AAClC,MAAM,MAAM,kBAAkB,GAAG,MAAM,UAAU,GAAG,SAAS,CAAC;AAE9D,wGAAwG;AACxG,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEtF;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAExC,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAEhB,mFAAmF;IACnF,OAAO,CAAC,EAAE,YAAY,CAAC;IAEvB,qCAAqC;IACrC,SAAS,CAAC,EAAE,UAAU,CAAC;IAEvB,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;IAEvC,+FAA+F;IAC/F,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CACnD;AAED,wGAAwG;AACxG,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC;IACR,QAAQ,EAAE,OAAO,CAAC;IAClB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,sFAAsF;AACtF,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,IAAI;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AbstractDataSource } from '@venizia/ignis-kernel/repository';
|
|
2
2
|
import { NodeFetchNetworkRequest } from '@venizia/ignis-helpers/core';
|
|
3
|
-
import type { IAuthToken, IHttpDataSourceSettings, IHttpReadResult } from './common/types';
|
|
3
|
+
import type { IAuthToken, IHttpDataSourceSettings, IHttpReadResult, IHttpWriteResult, THttpBody, THttpHeaders } from './common/types';
|
|
4
4
|
/** Reads an IGNIS REST server through the repository contract. Targets IGNIS, not any REST API. */
|
|
5
5
|
export declare class HttpDataSource extends AbstractDataSource<IHttpDataSourceSettings> {
|
|
6
6
|
name: string;
|
|
@@ -21,22 +21,51 @@ export declare class HttpDataSource extends AbstractDataSource<IHttpDataSourceSe
|
|
|
21
21
|
protected resolveAuthToken(): IAuthToken | undefined;
|
|
22
22
|
protected buildHeaders(opts: {
|
|
23
23
|
token?: IAuthToken;
|
|
24
|
+
requestHeaders?: Array<[string, string]>;
|
|
25
|
+
isJsonBody?: boolean;
|
|
24
26
|
}): Headers;
|
|
25
27
|
buildUrl(opts: {
|
|
26
28
|
paths: Array<string>;
|
|
27
29
|
query?: Record<string, unknown>;
|
|
28
30
|
}): string;
|
|
29
|
-
/**
|
|
31
|
+
/**
|
|
32
|
+
* The raw `Response`, on any method - for what the repository verbs do not cover, like an export
|
|
33
|
+
* or a PUT to a hand-written route. Auth and the 401 retry apply; the retry resends the same body.
|
|
34
|
+
*/
|
|
30
35
|
request(opts: {
|
|
31
36
|
paths: Array<string>;
|
|
32
37
|
query?: Record<string, unknown>;
|
|
33
38
|
method?: string;
|
|
39
|
+
body?: THttpBody;
|
|
40
|
+
headers?: THttpHeaders;
|
|
34
41
|
}): Promise<Response>;
|
|
35
|
-
/**
|
|
42
|
+
/** A failed response as an error carrying the server's own status, message and message code. */
|
|
43
|
+
protected toResponseError(opts: {
|
|
44
|
+
response: Response;
|
|
45
|
+
url: string;
|
|
46
|
+
verb: string;
|
|
47
|
+
}): Promise<import("@venizia/ignis-helpers/core").ApplicationError>;
|
|
48
|
+
/**
|
|
49
|
+
* Rows plus the total from `Content-Range`, reported absent when the header is. A read is a GET
|
|
50
|
+
* unless told otherwise: a filter too long for a URL goes as the body of a POST read route.
|
|
51
|
+
*/
|
|
36
52
|
read<R>(opts: {
|
|
37
53
|
paths: Array<string>;
|
|
38
54
|
query?: Record<string, unknown>;
|
|
39
55
|
shape?: 'list' | 'one';
|
|
56
|
+
method?: string;
|
|
57
|
+
body?: THttpBody;
|
|
40
58
|
}): Promise<IHttpReadResult<R>>;
|
|
59
|
+
/**
|
|
60
|
+
* A write, and what it answered: the body as the rows, the count from `x-response-count`. The
|
|
61
|
+
* connector asks for bare rows, so an IGNIS write answers the row or the rows, never the envelope.
|
|
62
|
+
*/
|
|
63
|
+
write<R>(opts: {
|
|
64
|
+
paths: Array<string>;
|
|
65
|
+
query?: Record<string, unknown>;
|
|
66
|
+
method: string;
|
|
67
|
+
body?: THttpBody;
|
|
68
|
+
headers?: THttpHeaders;
|
|
69
|
+
}): Promise<IHttpWriteResult<R>>;
|
|
41
70
|
}
|
|
42
71
|
//# sourceMappingURL=datasource.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datasource.d.ts","sourceRoot":"","sources":["../../../src/http/datasource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,KAAK,EACV,UAAU,EACV,uBAAuB,EACvB,eAAe,
|
|
1
|
+
{"version":3,"file":"datasource.d.ts","sourceRoot":"","sources":["../../../src/http/datasource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,KAAK,EACV,UAAU,EACV,uBAAuB,EACvB,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,YAAY,EACb,MAAM,gBAAgB,CAAC;AAmMxB,mGAAmG;AACnG,qBAAa,cAAe,SAAQ,kBAAkB,CAAC,uBAAuB,CAAC;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,uBAAuB,CAAC;IAClC,MAAM,EAAS,KAAK,CAAC;IAE9B,SAAS,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC3C,uFAAuF;IACvF,SAAS,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,sGAAsG;IACtG,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC;gBAEzB,IAAI,EAAE,uBAAuB,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;IAkBvD,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAEvB,eAAe;;;IAIxB,SAAS,CAAC,gBAAgB,IAAI,UAAU,GAAG,SAAS;IAIpD,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE;QAC3B,KAAK,CAAC,EAAE,UAAU,CAAC;QACnB,cAAc,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACzC,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,GAAG,OAAO;IA8BX,QAAQ,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,MAAM;IA2BjF;;;OAGG;IACG,OAAO,CAAC,IAAI,EAAE;QAClB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,SAAS,CAAC;QACjB,OAAO,CAAC,EAAE,YAAY,CAAC;KACxB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAgCrB,gGAAgG;cAChF,eAAe,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAgBvF;;;OAGG;IACG,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE;QAClB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,SAAS,CAAC;KAClB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAsB/B;;;OAGG;IACG,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE;QACnB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,SAAS,CAAC;QACjB,OAAO,CAAC,EAAE,YAAY,CAAC;KACxB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAyBjC"}
|
|
@@ -80,6 +80,74 @@ const toHeaderEntries = (opts) => {
|
|
|
80
80
|
}
|
|
81
81
|
return [...merged.entries()];
|
|
82
82
|
};
|
|
83
|
+
/**
|
|
84
|
+
* The body as `fetch` takes it. Anything `fetch` already sends as a body passes through untouched,
|
|
85
|
+
* so `FormData` keeps the multipart boundary its own content-type carries; any other object is JSON.
|
|
86
|
+
* Serialised ONCE, so the 401 retry sends the same bytes.
|
|
87
|
+
*/
|
|
88
|
+
const toRequestBody = (opts) => {
|
|
89
|
+
const { body } = opts;
|
|
90
|
+
if (body === undefined) {
|
|
91
|
+
return { payload: undefined, isJson: false };
|
|
92
|
+
}
|
|
93
|
+
const isSentAsIs = typeof body === 'string' ||
|
|
94
|
+
body instanceof Blob ||
|
|
95
|
+
body instanceof FormData ||
|
|
96
|
+
body instanceof URLSearchParams ||
|
|
97
|
+
body instanceof ArrayBuffer;
|
|
98
|
+
if (isSentAsIs) {
|
|
99
|
+
return { payload: body, isJson: false };
|
|
100
|
+
}
|
|
101
|
+
// A typed array may sit on a SharedArrayBuffer, which `fetch` refuses; a Blob copy never does.
|
|
102
|
+
if (ArrayBuffer.isView(body)) {
|
|
103
|
+
return {
|
|
104
|
+
payload: new Blob([new Uint8Array(body.buffer, body.byteOffset, body.byteLength).slice()]),
|
|
105
|
+
isJson: false,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
return { payload: JSON.stringify(body), isJson: true };
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* The IGNIS error envelope - `{ message, normalized: { code, args }, requestId }` - read off a failed
|
|
112
|
+
* response. A body that is not that envelope yields nothing, and the status alone still describes it.
|
|
113
|
+
* `args` fill a translated message's placeholders; only a plain object is taken.
|
|
114
|
+
*/
|
|
115
|
+
const readServerError = async (opts) => {
|
|
116
|
+
const text = await opts.response.text().catch(() => '');
|
|
117
|
+
let parsed;
|
|
118
|
+
try {
|
|
119
|
+
parsed = text ? JSON.parse(text) : undefined;
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
return {};
|
|
123
|
+
}
|
|
124
|
+
if (!parsed || typeof parsed !== 'object') {
|
|
125
|
+
return {};
|
|
126
|
+
}
|
|
127
|
+
const message = Reflect.get(parsed, 'message');
|
|
128
|
+
const requestId = Reflect.get(parsed, 'requestId');
|
|
129
|
+
const normalized = Reflect.get(parsed, 'normalized');
|
|
130
|
+
const isNormalizedObject = !!normalized && typeof normalized === 'object';
|
|
131
|
+
const code = isNormalizedObject ? Reflect.get(normalized, 'code') : undefined;
|
|
132
|
+
const args = isNormalizedObject ? Reflect.get(normalized, 'args') : undefined;
|
|
133
|
+
const isArgsRecord = !!args && typeof args === 'object' && Object.getPrototypeOf(args) === Object.prototype;
|
|
134
|
+
return {
|
|
135
|
+
message: typeof message === 'string' ? message : undefined,
|
|
136
|
+
code: typeof code === 'string' ? code : undefined,
|
|
137
|
+
args: isArgsRecord ? { ...args } : undefined,
|
|
138
|
+
requestId: typeof requestId === 'string' ? requestId : undefined,
|
|
139
|
+
};
|
|
140
|
+
};
|
|
141
|
+
/** The connector always sends `x-request-count: false`; a caller header carrying it would contradict that. */
|
|
142
|
+
const assertNoRequestCountHeader = (opts) => {
|
|
143
|
+
const { entries, name } = opts;
|
|
144
|
+
if (entries.some(([headerName]) => headerName === common_1.HTTP.Headers.REQUEST_COUNT_DATA)) {
|
|
145
|
+
throw (0, core_2.getError)({
|
|
146
|
+
statusCode: common_1.HTTP.ResultCodes.RS_5.InternalServerError,
|
|
147
|
+
message: `[${name}] ${common_1.HTTP.Headers.REQUEST_COUNT_DATA} is owned by HttpDataSource and always sent as false: rows come back bare, the total in Content-Range.`,
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
};
|
|
83
151
|
/** Reads an IGNIS REST server through the repository contract. Targets IGNIS, not any REST API. */
|
|
84
152
|
class HttpDataSource extends repository_1.AbstractDataSource {
|
|
85
153
|
constructor(opts) {
|
|
@@ -87,12 +155,7 @@ class HttpDataSource extends repository_1.AbstractDataSource {
|
|
|
87
155
|
this.schema = {};
|
|
88
156
|
const { name = 'http', ...settings } = opts;
|
|
89
157
|
const configured = toHeaderEntries({ headers: settings.headers });
|
|
90
|
-
|
|
91
|
-
throw (0, core_2.getError)({
|
|
92
|
-
statusCode: common_1.HTTP.ResultCodes.RS_5.InternalServerError,
|
|
93
|
-
message: `[${name}] ${common_1.HTTP.Headers.REQUEST_COUNT_DATA} is owned by HttpDataSource and always sent as false: rows come back bare, the total in Content-Range.`,
|
|
94
|
-
});
|
|
95
|
-
}
|
|
158
|
+
assertNoRequestCountHeader({ entries: configured, name });
|
|
96
159
|
this.configuredHeaders = configured;
|
|
97
160
|
this.name = name;
|
|
98
161
|
this.settings = settings;
|
|
@@ -110,8 +173,15 @@ class HttpDataSource extends repository_1.AbstractDataSource {
|
|
|
110
173
|
return this.settings.authToken ?? this.settings.authTokenResolver?.();
|
|
111
174
|
}
|
|
112
175
|
buildHeaders(opts) {
|
|
113
|
-
const { token } = opts;
|
|
176
|
+
const { token, requestHeaders, isJsonBody } = opts;
|
|
114
177
|
const headers = new Headers(this.configuredHeaders);
|
|
178
|
+
// A request's own headers win over the configured ones; the connector's below win over both.
|
|
179
|
+
for (const [name, value] of requestHeaders ?? []) {
|
|
180
|
+
headers.set(name, value);
|
|
181
|
+
}
|
|
182
|
+
if (isJsonBody && !headers.has(common_1.HTTP.Headers.CONTENT_TYPE)) {
|
|
183
|
+
headers.set(common_1.HTTP.Headers.CONTENT_TYPE, 'application/json');
|
|
184
|
+
}
|
|
115
185
|
// Set last: under the envelope a record read answers `{ count, data }`.
|
|
116
186
|
headers.set(common_1.HTTP.Headers.REQUEST_COUNT_DATA, 'false');
|
|
117
187
|
if (!token) {
|
|
@@ -145,13 +215,24 @@ class HttpDataSource extends repository_1.AbstractDataSource {
|
|
|
145
215
|
}
|
|
146
216
|
return url.toString();
|
|
147
217
|
}
|
|
148
|
-
/**
|
|
218
|
+
/**
|
|
219
|
+
* The raw `Response`, on any method - for what the repository verbs do not cover, like an export
|
|
220
|
+
* or a PUT to a hand-written route. Auth and the 401 retry apply; the retry resends the same body.
|
|
221
|
+
*/
|
|
149
222
|
async request(opts) {
|
|
223
|
+
const requestHeaders = toHeaderEntries({ headers: opts.headers });
|
|
224
|
+
assertNoRequestCountHeader({ entries: requestHeaders, name: this.name });
|
|
150
225
|
const url = this.buildUrl(opts);
|
|
226
|
+
const { payload, isJson } = toRequestBody({ body: opts.body });
|
|
151
227
|
const send = () => this.network.getNetworkService().send({
|
|
152
228
|
url,
|
|
153
229
|
method: (opts.method ?? common_1.HTTP.Methods.GET),
|
|
154
|
-
|
|
230
|
+
body: payload,
|
|
231
|
+
headers: this.buildHeaders({
|
|
232
|
+
token: this.resolveAuthToken(),
|
|
233
|
+
requestHeaders,
|
|
234
|
+
isJsonBody: isJson,
|
|
235
|
+
}),
|
|
155
236
|
});
|
|
156
237
|
let response = await send();
|
|
157
238
|
if (response.status === common_1.HTTP.ResultCodes.RS_4.Unauthorized && this.settings.onUnauthorized) {
|
|
@@ -162,14 +243,29 @@ class HttpDataSource extends repository_1.AbstractDataSource {
|
|
|
162
243
|
}
|
|
163
244
|
return response;
|
|
164
245
|
}
|
|
165
|
-
/**
|
|
246
|
+
/** A failed response as an error carrying the server's own status, message and message code. */
|
|
247
|
+
async toResponseError(opts) {
|
|
248
|
+
const { response, url, verb } = opts;
|
|
249
|
+
const server = await readServerError({ response });
|
|
250
|
+
const described = describeUrl({ url, status: response.status });
|
|
251
|
+
return (0, core_2.getError)({
|
|
252
|
+
statusCode: response.status,
|
|
253
|
+
message: server.message
|
|
254
|
+
? `[${this.name}][${verb}] ${response.status} | ${described} | ${server.message}`
|
|
255
|
+
: `[${this.name}][${verb}] ${response.status} | ${described}`,
|
|
256
|
+
messageCode: server.code,
|
|
257
|
+
messageArgs: server.args,
|
|
258
|
+
extra: server.requestId ? { requestId: server.requestId } : undefined,
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Rows plus the total from `Content-Range`, reported absent when the header is. A read is a GET
|
|
263
|
+
* unless told otherwise: a filter too long for a URL goes as the body of a POST read route.
|
|
264
|
+
*/
|
|
166
265
|
async read(opts) {
|
|
167
266
|
const response = await this.request(opts);
|
|
168
267
|
if (!response.ok) {
|
|
169
|
-
throw (
|
|
170
|
-
statusCode: response.status,
|
|
171
|
-
message: `[${this.name}][read] ${response.status} | ${describeUrl({ url: this.buildUrl(opts), status: response.status })}`,
|
|
172
|
-
});
|
|
268
|
+
throw await this.toResponseError({ response, url: this.buildUrl(opts), verb: 'read' });
|
|
173
269
|
}
|
|
174
270
|
const body = await response.json();
|
|
175
271
|
const contentRange = response.headers.get(common_1.HTTP.Headers.CONTENT_RANGE) ?? undefined;
|
|
@@ -184,6 +280,31 @@ class HttpDataSource extends repository_1.AbstractDataSource {
|
|
|
184
280
|
dataLength: Array.isArray(data) ? data.length : 1,
|
|
185
281
|
};
|
|
186
282
|
}
|
|
283
|
+
/**
|
|
284
|
+
* A write, and what it answered: the body as the rows, the count from `x-response-count`. The
|
|
285
|
+
* connector asks for bare rows, so an IGNIS write answers the row or the rows, never the envelope.
|
|
286
|
+
*/
|
|
287
|
+
async write(opts) {
|
|
288
|
+
const response = await this.request(opts);
|
|
289
|
+
if (!response.ok) {
|
|
290
|
+
throw await this.toResponseError({ response, url: this.buildUrl(opts), verb: 'write' });
|
|
291
|
+
}
|
|
292
|
+
// A 204, or a route that answers nothing, has no body to parse.
|
|
293
|
+
const text = await response.text();
|
|
294
|
+
const data = text ? JSON.parse(text) : null;
|
|
295
|
+
const countHeader = response.headers.get(common_1.HTTP.Headers.RESPONSE_COUNT_DATA);
|
|
296
|
+
const counted = countHeader === null ? Number.NaN : Number(countHeader);
|
|
297
|
+
return {
|
|
298
|
+
data,
|
|
299
|
+
count: Number.isFinite(counted)
|
|
300
|
+
? counted
|
|
301
|
+
: Array.isArray(data)
|
|
302
|
+
? data.length
|
|
303
|
+
: data === null
|
|
304
|
+
? 0
|
|
305
|
+
: 1,
|
|
306
|
+
};
|
|
307
|
+
}
|
|
187
308
|
}
|
|
188
309
|
exports.HttpDataSource = HttpDataSource;
|
|
189
310
|
//# sourceMappingURL=datasource.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datasource.js","sourceRoot":"","sources":["../../../src/http/datasource.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"datasource.js","sourceRoot":"","sources":["../../../src/http/datasource.ts"],"names":[],"mappings":";;;AAAA,iEAAsE;AACtE,0DAAqD;AACrD,sDAAsE;AACtE,sDAAuD;AAUvD,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B,6IAA6I;AAC7I,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AAEjD,oGAAoG;AACpG,MAAM,WAAW,GAAG,CAAC,IAAqC,EAAU,EAAE;IACpE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC7B,MAAM,KAAK,GACT,GAAG,CAAC,MAAM,GAAG,kBAAkB;QAC7B,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,QAAQ,GAAG,CAAC,MAAM,SAAS;QAChE,CAAC,CAAC,GAAG,CAAC;IAEV,MAAM,SAAS,GACb,MAAM,KAAK,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU;QAC3C,MAAM,KAAK,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,2BAA2B,CAAC;IAE/D,OAAO,SAAS;QACd,CAAC,CAAC,GAAG,KAAK,yFAAyF;QACnG,CAAC,CAAC,KAAK,CAAC;AACZ,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,GAAG,CAAI,IAA2D,EAAK,EAAE;IACvF,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAElC,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,OAAO,IAAS,CAAC;IACnB,CAAC;IAED,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QAC1E,OAAQ,IAAoB,CAAC,IAAI,CAAC;IACpC,CAAC;IAED,MAAM,IAAA,eAAQ,EAAC;QACb,UAAU,EAAE,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB;QACrD,OAAO,EAAE,qGAAqG,GAAG,EAAE;KACpH,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,uGAAuG;AACvG,MAAM,gBAAgB,GAAG,CAAC,IAEzB,EAAgD,EAAE;IACjD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAExB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAC7D,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACpD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3C,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,eAAe,GAAG,CAAC,IAAgC,EAA2B,EAAE;IACpF,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEzB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GACV,OAAO,YAAY,OAAO;QACxB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YACtB,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,aAAa,GAAG,CAAC,IAEtB,EAAqD,EAAE;IACtD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAEtB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC/C,CAAC;IAED,MAAM,UAAU,GACd,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,YAAY,IAAI;QACpB,IAAI,YAAY,QAAQ;QACxB,IAAI,YAAY,eAAe;QAC/B,IAAI,YAAY,WAAW,CAAC;IAE9B,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC1C,CAAC;IAED,+FAA+F;IAC/F,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAC1F,MAAM,EAAE,KAAK;SACd,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACzD,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,eAAe,GAAG,KAAK,EAAE,IAE9B,EAKE,EAAE;IACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAExD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACrD,MAAM,kBAAkB,GAAG,CAAC,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,CAAC;IAC1E,MAAM,IAAI,GAAG,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,MAAM,IAAI,GAAG,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,MAAM,YAAY,GAChB,CAAC,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC;IAEzF,OAAO;QACL,OAAO,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QAC1D,IAAI,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QACjD,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;QAC5C,SAAS,EAAE,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;KACjE,CAAC;AACJ,CAAC,CAAC;AAEF,8GAA8G;AAC9G,MAAM,0BAA0B,GAAG,CAAC,IAGnC,EAAQ,EAAE;IACT,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAE/B,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,UAAU,KAAK,aAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACnF,MAAM,IAAA,eAAQ,EAAC;YACb,UAAU,EAAE,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB;YACrD,OAAO,EAAE,IAAI,IAAI,KAAK,aAAI,CAAC,OAAO,CAAC,kBAAkB,wGAAwG;SAC9J,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC;AAEF,mGAAmG;AACnG,MAAa,cAAe,SAAQ,+BAA2C;IAW7E,YAAY,IAAiD;QAC3D,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QAT5C,WAAM,GAAG,EAAW,CAAC;QAW5B,MAAM,EAAE,IAAI,GAAG,MAAM,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC;QAE5C,MAAM,UAAU,GAAG,eAAe,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAClE,0BAA0B,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAE1D,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,iBAAiB,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpE,IAAI,CAAC,OAAO,GAAG,IAAI,8BAAuB,CAAC;YACzC,IAAI;YACJ,cAAc,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE;SAC9C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,KAAmB,CAAC;IAE1B,eAAe;QACtB,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IACjC,CAAC;IAES,gBAAgB;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,EAAE,CAAC;IACxE,CAAC;IAES,YAAY,CAAC,IAItB;QACC,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QACnD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEpD,6FAA6F;QAC7F,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,cAAc,IAAI,EAAE,EAAE,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,UAAU,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,aAAI,CAAC,OAAO,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;QAC7D,CAAC;QAED,wEAAwE;QACxE,OAAO,CAAC,GAAG,CAAC,aAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;QAEtD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,aAAI,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAEpF,wDAAwD;QACxD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,QAAQ,CAAC,IAA+D;QACtE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAEzD,sFAAsF;QACtF,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5C,MAAM,IAAA,eAAQ,EAAC;gBACb,UAAU,EAAE,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB;gBACrD,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,uBAAuB,IAAI,CAAC,QAAQ,CAAC,OAAO,2IAA2I;aAC9M,CAAC,CAAC;QACL,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAE9C,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC/C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;YACtC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,SAAS;YACX,CAAC;YAED,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACvF,CAAC;QAED,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,IAMb;QACC,MAAM,cAAc,GAAG,eAAe,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAClE,0BAA0B,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAEzE,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAE/D,MAAM,IAAI,GAAG,GAAG,EAAE,CAChB,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC;YACpC,GAAG;YACH,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,aAAI,CAAC,OAAO,CAAC,GAAG,CAAU;YAClD,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC;gBACzB,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE;gBAC9B,cAAc;gBACd,UAAU,EAAE,MAAM;aACnB,CAAC;SACH,CAAC,CAAC;QAEL,IAAI,QAAQ,GAAG,MAAM,IAAI,EAAE,CAAC;QAE5B,IAAI,QAAQ,CAAC,MAAM,KAAK,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC3F,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;YAEzD,IAAI,WAAW,EAAE,CAAC;gBAChB,QAAQ,GAAG,MAAM,IAAI,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,gGAAgG;IACtF,KAAK,CAAC,eAAe,CAAC,IAAuD;QACrF,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,WAAW,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAEhE,OAAO,IAAA,eAAQ,EAAC;YACd,UAAU,EAAE,QAAQ,CAAC,MAAM;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACrB,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,KAAK,QAAQ,CAAC,MAAM,MAAM,SAAS,MAAM,MAAM,CAAC,OAAO,EAAE;gBACjF,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,KAAK,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE;YAC/D,WAAW,EAAE,MAAM,CAAC,IAAI;YACxB,WAAW,EAAE,MAAM,CAAC,IAAI;YACxB,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS;SACtE,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAI,IAMb;QACC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE1C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACzF,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC;QACnF,MAAM,KAAK,GAAG,gBAAgB,CAAC,EAAE,MAAM,EAAE,YAAY,IAAI,IAAI,EAAE,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,UAAU,CAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE5F,OAAO;YACL,IAAI;YACJ,QAAQ,EAAE,KAAK,KAAK,SAAS;YAC7B,YAAY;YACZ,KAAK,EAAE,KAAK,EAAE,KAAK;YACnB,IAAI,EAAE,KAAK,EAAE,IAAI;YACjB,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAClD,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK,CAAI,IAMd;QACC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE1C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1F,CAAC;QAED,gEAAgE;QAChE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE5C,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAExE,OAAO;YACL,IAAI;YACJ,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC7B,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBACnB,CAAC,CAAC,IAAI,CAAC,MAAM;oBACb,CAAC,CAAC,IAAI,KAAK,IAAI;wBACb,CAAC,CAAC,CAAC;wBACH,CAAC,CAAC,CAAC;SACV,CAAC;IACJ,CAAC;CACF;AAlOD,wCAkOC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { AbstractEntity } from '@venizia/ignis-kernel/repository';
|
|
2
|
-
import type { IReadableRepository, TCount, TDataWithRange, TFilter, TSchemaType, TWhere } from '@venizia/ignis-kernel/repository';
|
|
3
1
|
import type { AnyType } from '@venizia/ignis-helpers/common';
|
|
2
|
+
import type { IDeletableRepository, IReadableRepository, IUpdatableRepository, TCount, TDataWithRange, TFilter, TSchemaType, TWhere } from '@venizia/ignis-kernel/repository';
|
|
3
|
+
import { AbstractEntity } from '@venizia/ignis-kernel/repository';
|
|
4
|
+
import type { IHttpWriteResult } from './common/types';
|
|
4
5
|
import type { HttpDataSource } from './datasource';
|
|
5
6
|
/** A remote resource has a name but no local schema. */
|
|
6
7
|
export declare class HttpResourceEntity extends AbstractEntity {
|
|
@@ -8,8 +9,12 @@ export declare class HttpResourceEntity extends AbstractEntity {
|
|
|
8
9
|
type: TSchemaType;
|
|
9
10
|
}): T;
|
|
10
11
|
}
|
|
11
|
-
/**
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* One remote resource, read and written through the IGNIS CRUD routes, in the `@venizia/ignis-filter`
|
|
14
|
+
* vocabulary. `P` is what a write sends - a partial row by default, since the server fills ids and
|
|
15
|
+
* defaults. There is no `createAll`: the IGNIS REST contract has no bulk-create route.
|
|
16
|
+
*/
|
|
17
|
+
export declare class HttpRepository<E extends object = AnyType, P extends object = Partial<E>> implements IReadableRepository<E, {}>, IUpdatableRepository<E, P, {}>, IDeletableRepository<E, {}> {
|
|
13
18
|
dataSource: HttpDataSource;
|
|
14
19
|
entity: AbstractEntity;
|
|
15
20
|
protected resource: string;
|
|
@@ -50,10 +55,175 @@ export declare class HttpRepository<E extends object = AnyType> implements IRead
|
|
|
50
55
|
filter?: TFilter<E>;
|
|
51
56
|
options?: {};
|
|
52
57
|
}): Promise<R | null>;
|
|
58
|
+
/**
|
|
59
|
+
* A list read: `GET /<resource>?filter=...` while the URL fits, else `POST /<resource>/find` with
|
|
60
|
+
* the filter in the body - the route every generated IGNIS controller answers with the same rows
|
|
61
|
+
* and the same Content-Range. Below the limit the GET stays, so a server without the POST route
|
|
62
|
+
* still answers every read it answered before.
|
|
63
|
+
*/
|
|
64
|
+
protected readList<R>(opts: {
|
|
65
|
+
filter: TFilter<E>;
|
|
66
|
+
}): Promise<import("./common/types").IHttpReadResult<R>>;
|
|
53
67
|
findById<R = E>(opts: {
|
|
54
68
|
id: string | number;
|
|
55
69
|
filter?: TFilter<E>;
|
|
56
70
|
options?: {};
|
|
57
71
|
}): Promise<R | null>;
|
|
72
|
+
/** `<resource>/<id>`, the id encoded: an id carrying `/` or `?` would otherwise name another route. */
|
|
73
|
+
protected getIdPaths(opts: {
|
|
74
|
+
id: string | number;
|
|
75
|
+
}): Array<string>;
|
|
76
|
+
/** The IGNIS bulk routes answer an empty `where` with a 400; refused here before a request is spent. */
|
|
77
|
+
protected assertBulkWhere(opts: {
|
|
78
|
+
method: string;
|
|
79
|
+
where?: TWhere<E>;
|
|
80
|
+
}): TWhere<E>;
|
|
81
|
+
/** The server always answers the rows; `shouldReturn: false` drops them here, as a database repository would not fetch them. */
|
|
82
|
+
protected toWriteResult<R>(opts: {
|
|
83
|
+
result: IHttpWriteResult<R>;
|
|
84
|
+
options?: {
|
|
85
|
+
shouldReturn?: boolean;
|
|
86
|
+
};
|
|
87
|
+
}): TCount & {
|
|
88
|
+
data: R | null;
|
|
89
|
+
};
|
|
90
|
+
/** POST `/<resource>`. */
|
|
91
|
+
create<R = E>(opts: {
|
|
92
|
+
data: P;
|
|
93
|
+
options?: {
|
|
94
|
+
shouldReturn?: true;
|
|
95
|
+
};
|
|
96
|
+
}): Promise<TCount & {
|
|
97
|
+
data: R;
|
|
98
|
+
}>;
|
|
99
|
+
updateById(opts: {
|
|
100
|
+
id: string | number;
|
|
101
|
+
data: Partial<P>;
|
|
102
|
+
options: {
|
|
103
|
+
shouldReturn: false;
|
|
104
|
+
};
|
|
105
|
+
}): Promise<TCount & {
|
|
106
|
+
data: undefined | null;
|
|
107
|
+
}>;
|
|
108
|
+
updateById<R = E>(opts: {
|
|
109
|
+
id: string | number;
|
|
110
|
+
data: Partial<P>;
|
|
111
|
+
options?: {
|
|
112
|
+
shouldReturn?: true;
|
|
113
|
+
};
|
|
114
|
+
}): Promise<TCount & {
|
|
115
|
+
data: R;
|
|
116
|
+
}>;
|
|
117
|
+
updateAll(opts: {
|
|
118
|
+
data: Partial<P>;
|
|
119
|
+
where: TWhere<E>;
|
|
120
|
+
options: {
|
|
121
|
+
shouldReturn: false;
|
|
122
|
+
force?: boolean;
|
|
123
|
+
};
|
|
124
|
+
}): Promise<TCount & {
|
|
125
|
+
data: undefined | null;
|
|
126
|
+
}>;
|
|
127
|
+
updateAll<R = E>(opts: {
|
|
128
|
+
data: Partial<P>;
|
|
129
|
+
where: TWhere<E>;
|
|
130
|
+
options?: {
|
|
131
|
+
shouldReturn?: true;
|
|
132
|
+
force?: boolean;
|
|
133
|
+
};
|
|
134
|
+
}): Promise<TCount & {
|
|
135
|
+
data: Array<R> | null;
|
|
136
|
+
}>;
|
|
137
|
+
updateBy(opts: {
|
|
138
|
+
data: Partial<P>;
|
|
139
|
+
where: TWhere<E>;
|
|
140
|
+
options: {
|
|
141
|
+
shouldReturn: false;
|
|
142
|
+
force?: boolean;
|
|
143
|
+
};
|
|
144
|
+
}): Promise<TCount & {
|
|
145
|
+
data: undefined | null;
|
|
146
|
+
}>;
|
|
147
|
+
updateBy<R = E>(opts: {
|
|
148
|
+
data: Partial<P>;
|
|
149
|
+
where: TWhere<E>;
|
|
150
|
+
options?: {
|
|
151
|
+
shouldReturn?: true;
|
|
152
|
+
force?: boolean;
|
|
153
|
+
};
|
|
154
|
+
}): Promise<TCount & {
|
|
155
|
+
data: Array<R> | null;
|
|
156
|
+
}>;
|
|
157
|
+
protected patchWhere(opts: {
|
|
158
|
+
method: string;
|
|
159
|
+
data: Partial<P>;
|
|
160
|
+
where: TWhere<E>;
|
|
161
|
+
options?: {
|
|
162
|
+
shouldReturn?: boolean;
|
|
163
|
+
};
|
|
164
|
+
}): Promise<TCount & {
|
|
165
|
+
data: AnyType;
|
|
166
|
+
}>;
|
|
167
|
+
deleteById(opts: {
|
|
168
|
+
id: string | number;
|
|
169
|
+
options: {
|
|
170
|
+
shouldReturn: false;
|
|
171
|
+
};
|
|
172
|
+
}): Promise<TCount & {
|
|
173
|
+
data: undefined | null;
|
|
174
|
+
}>;
|
|
175
|
+
deleteById<R = E>(opts: {
|
|
176
|
+
id: string | number;
|
|
177
|
+
options?: {
|
|
178
|
+
shouldReturn?: true;
|
|
179
|
+
};
|
|
180
|
+
}): Promise<TCount & {
|
|
181
|
+
data: R;
|
|
182
|
+
}>;
|
|
183
|
+
deleteAll(opts: {
|
|
184
|
+
where?: TWhere<E>;
|
|
185
|
+
options: {
|
|
186
|
+
shouldReturn: false;
|
|
187
|
+
force?: boolean;
|
|
188
|
+
};
|
|
189
|
+
}): Promise<TCount & {
|
|
190
|
+
data: undefined | null;
|
|
191
|
+
}>;
|
|
192
|
+
deleteAll<R = E>(opts: {
|
|
193
|
+
where?: TWhere<E>;
|
|
194
|
+
options?: {
|
|
195
|
+
shouldReturn?: true;
|
|
196
|
+
force?: boolean;
|
|
197
|
+
};
|
|
198
|
+
}): Promise<TCount & {
|
|
199
|
+
data: Array<R> | null;
|
|
200
|
+
}>;
|
|
201
|
+
deleteBy(opts: {
|
|
202
|
+
where?: TWhere<E>;
|
|
203
|
+
options: {
|
|
204
|
+
shouldReturn: false;
|
|
205
|
+
force?: boolean;
|
|
206
|
+
};
|
|
207
|
+
}): Promise<TCount & {
|
|
208
|
+
data: undefined | null;
|
|
209
|
+
}>;
|
|
210
|
+
deleteBy<R = E>(opts: {
|
|
211
|
+
where?: TWhere<E>;
|
|
212
|
+
options?: {
|
|
213
|
+
shouldReturn?: true;
|
|
214
|
+
force?: boolean;
|
|
215
|
+
};
|
|
216
|
+
}): Promise<TCount & {
|
|
217
|
+
data: Array<R> | null;
|
|
218
|
+
}>;
|
|
219
|
+
protected deleteWhere(opts: {
|
|
220
|
+
method: string;
|
|
221
|
+
where?: TWhere<E>;
|
|
222
|
+
options?: {
|
|
223
|
+
shouldReturn?: boolean;
|
|
224
|
+
};
|
|
225
|
+
}): Promise<TCount & {
|
|
226
|
+
data: AnyType;
|
|
227
|
+
}>;
|
|
58
228
|
}
|
|
59
229
|
//# sourceMappingURL=repository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/http/repository.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/http/repository.ts"],"names":[],"mappings":"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"}
|