@opra/client 0.21.0 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser.js +174 -115
- package/cjs/{http/http-client.js → client.js} +53 -28
- package/cjs/collection-node.js +124 -0
- package/cjs/constants.js +3 -2
- package/cjs/{http/http-request-observable.js → http-request-observable.js} +10 -10
- package/cjs/{http/http-request.js → http-request.js} +8 -10
- package/cjs/{http/http-response.js → http-response.js} +1 -1
- package/cjs/index.js +8 -8
- package/cjs/singleton-node.js +68 -0
- package/cjs/types.js +44 -0
- package/esm/{http/http-client.js → client.js} +52 -27
- package/esm/collection-node.js +120 -0
- package/esm/constants.js +2 -1
- package/esm/{http/http-request-observable.js → http-request-observable.js} +7 -7
- package/esm/{http/http-request.js → http-request.js} +8 -10
- package/esm/{http/http-response.js → http-response.js} +1 -1
- package/esm/index.js +8 -8
- package/esm/singleton-node.js +64 -0
- package/esm/types.js +41 -0
- package/package.json +2 -2
- package/types/{http/http-client.d.ts → client.d.ts} +7 -7
- package/types/{http/http-collection-node.d.ts → collection-node.d.ts} +24 -24
- package/types/constants.d.ts +2 -1
- package/types/{http/http-request-observable.d.ts → http-request-observable.d.ts} +7 -12
- package/types/{http/http-request.d.ts → http-request.d.ts} +7 -8
- package/types/{http/http-response.d.ts → http-response.d.ts} +2 -2
- package/types/{http/http-service-base.d.ts → http-service-base.d.ts} +1 -1
- package/types/index.d.ts +8 -8
- package/types/{http/http-singleton-node.d.ts → singleton-node.d.ts} +15 -15
- package/types/types.d.ts +114 -0
- package/cjs/http/http-collection-node.js +0 -110
- package/cjs/http/http-singleton-node.js +0 -63
- package/cjs/http/http-types.js +0 -2
- package/esm/http/http-collection-node.js +0 -106
- package/esm/http/http-singleton-node.js +0 -59
- package/esm/http/http-types.js +0 -1
- package/types/http/http-types.d.ts +0 -57
- /package/cjs/{http/batch-request.js → batch-request.js} +0 -0
- /package/cjs/{http/http-service-base.js → http-service-base.js} +0 -0
- /package/esm/{http/batch-request.js → batch-request.js} +0 -0
- /package/esm/{http/http-service-base.js → http-service-base.js} +0 -0
- /package/types/{http/batch-request.d.ts → batch-request.d.ts} +0 -0
package/browser.js
CHANGED
|
@@ -6,6 +6,11 @@
|
|
|
6
6
|
var __defProp = Object.defineProperty;
|
|
7
7
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
8
8
|
|
|
9
|
+
// ../../build/client/esm/client.js
|
|
10
|
+
import { lastValueFrom as lastValueFrom2, Observable as Observable2 } from "rxjs";
|
|
11
|
+
import { isReadableStreamLike } from "rxjs/internal/util/isReadableStreamLike";
|
|
12
|
+
import { DocumentFactory, isBlob, OpraURL as OpraURL2 } from "@opra/common";
|
|
13
|
+
|
|
9
14
|
// ../../build/client/esm/client-error.js
|
|
10
15
|
var ClientError = class extends Error {
|
|
11
16
|
static {
|
|
@@ -24,22 +29,21 @@ var ClientError = class extends Error {
|
|
|
24
29
|
}
|
|
25
30
|
};
|
|
26
31
|
|
|
27
|
-
// ../../build/client/esm/
|
|
28
|
-
import {
|
|
29
|
-
import { isReadableStreamLike } from "rxjs/internal/util/isReadableStreamLike";
|
|
30
|
-
import { DocumentFactory, HttpHeaderCodes, HttpParams, isBlob, joinPath } from "@opra/common";
|
|
32
|
+
// ../../build/client/esm/collection-node.js
|
|
33
|
+
import { toArrayDef } from "putil-varhelpers";
|
|
31
34
|
|
|
32
35
|
// ../../build/client/esm/constants.js
|
|
33
36
|
var JSON_CONTENT_TYPE_PATTERN = /^application\/([\w-]+\+)?\bjson\b/i;
|
|
34
37
|
var TEXT_CONTENT_TYPE_PATTERN = /^text\/.*$/i;
|
|
35
38
|
var FORMDATA_CONTENT_TYPE_PATTERN = /^multipart\/\bform-data\b/i;
|
|
36
|
-
var
|
|
39
|
+
var kRequest = Symbol.for("kRequest");
|
|
40
|
+
var kContext = Symbol.for("kContext");
|
|
37
41
|
|
|
38
|
-
// ../../build/client/esm/http
|
|
42
|
+
// ../../build/client/esm/http-request-observable.js
|
|
39
43
|
import { lastValueFrom, Observable } from "rxjs";
|
|
40
44
|
import { uid } from "@opra/common";
|
|
41
45
|
|
|
42
|
-
// ../../build/client/esm/http
|
|
46
|
+
// ../../build/client/esm/http-request.js
|
|
43
47
|
import { OpraURL } from "@opra/common";
|
|
44
48
|
var directCopyProperties = [
|
|
45
49
|
"cache",
|
|
@@ -72,24 +76,22 @@ var HttpRequest = class _HttpRequest {
|
|
|
72
76
|
this.referrerPolicy = init?.referrerPolicy || "";
|
|
73
77
|
this.signal = init?.signal || new AbortController().signal;
|
|
74
78
|
this.body = init?.body;
|
|
75
|
-
this.
|
|
76
|
-
if (init?.params)
|
|
77
|
-
|
|
79
|
+
this.parsedUrl = new OpraURL(init?.url);
|
|
80
|
+
if (init?.params) {
|
|
81
|
+
const params = new URLSearchParams(init.params);
|
|
82
|
+
params.forEach((v, k) => this.params.set(k, v));
|
|
83
|
+
}
|
|
78
84
|
}
|
|
79
85
|
/** Returns the URL of request as a string. */
|
|
80
86
|
get url() {
|
|
81
|
-
return this.
|
|
87
|
+
return this.parsedUrl;
|
|
82
88
|
}
|
|
83
89
|
set url(value) {
|
|
84
|
-
this.
|
|
90
|
+
this.parsedUrl = value;
|
|
85
91
|
}
|
|
86
92
|
/** Returns the searchParams of the URL as OpraURLSearchParams */
|
|
87
93
|
get params() {
|
|
88
|
-
return this.
|
|
89
|
-
}
|
|
90
|
-
/** Returns the path part of URL as OpraURLPath */
|
|
91
|
-
get path() {
|
|
92
|
-
return this.urlInstance.path;
|
|
94
|
+
return this.parsedUrl.searchParams;
|
|
93
95
|
}
|
|
94
96
|
clone(...update) {
|
|
95
97
|
const out = new _HttpRequest();
|
|
@@ -131,17 +133,33 @@ var HttpRequest = class _HttpRequest {
|
|
|
131
133
|
}
|
|
132
134
|
};
|
|
133
135
|
|
|
134
|
-
// ../../build/client/esm/
|
|
135
|
-
var
|
|
136
|
+
// ../../build/client/esm/types.js
|
|
137
|
+
var HttpObserveType;
|
|
138
|
+
(function(HttpObserveType2) {
|
|
139
|
+
HttpObserveType2["Response"] = "response";
|
|
140
|
+
HttpObserveType2["Body"] = "body";
|
|
141
|
+
HttpObserveType2["Events"] = "events";
|
|
142
|
+
})(HttpObserveType || (HttpObserveType = {}));
|
|
143
|
+
var HttpEventType;
|
|
144
|
+
(function(HttpEventType2) {
|
|
145
|
+
HttpEventType2["Sent"] = "sent";
|
|
146
|
+
HttpEventType2["UploadProgress"] = "upload-progress";
|
|
147
|
+
HttpEventType2["ResponseHeader"] = "response-header";
|
|
148
|
+
HttpEventType2["DownloadProgress"] = "download-progress";
|
|
149
|
+
HttpEventType2["Response"] = "response";
|
|
150
|
+
HttpEventType2["Custom"] = "custom";
|
|
151
|
+
})(HttpEventType || (HttpEventType = {}));
|
|
152
|
+
|
|
153
|
+
// ../../build/client/esm/http-request-observable.js
|
|
136
154
|
var HttpRequestObservable = class extends Observable {
|
|
137
155
|
static {
|
|
138
156
|
__name(this, "HttpRequestObservable");
|
|
139
157
|
}
|
|
140
158
|
constructor(context, options) {
|
|
141
159
|
super((subscriber) => {
|
|
142
|
-
context.send(options?.observe ||
|
|
160
|
+
context.send(options?.observe || HttpObserveType.Body, this[kRequest]).subscribe(subscriber);
|
|
143
161
|
});
|
|
144
|
-
this[
|
|
162
|
+
this[kContext] = context;
|
|
145
163
|
this[kRequest] = new HttpRequest(options?.http);
|
|
146
164
|
this.contentId = uid(6);
|
|
147
165
|
}
|
|
@@ -158,126 +176,137 @@ var HttpRequestObservable = class extends Observable {
|
|
|
158
176
|
return this;
|
|
159
177
|
}
|
|
160
178
|
async fetch(observe) {
|
|
161
|
-
return lastValueFrom(this[
|
|
179
|
+
return lastValueFrom(this[kContext].send(observe || HttpObserveType.Body, this[kRequest]));
|
|
162
180
|
}
|
|
163
181
|
with(cb) {
|
|
164
182
|
cb(this);
|
|
165
183
|
return this;
|
|
166
184
|
}
|
|
167
185
|
};
|
|
168
|
-
HttpRequestObservable.kContext = kHttpClientContext;
|
|
169
|
-
HttpRequestObservable.kRequest = kRequest;
|
|
170
186
|
|
|
171
|
-
// ../../build/client/esm/
|
|
187
|
+
// ../../build/client/esm/collection-node.js
|
|
172
188
|
var HttpCollectionNode = class {
|
|
173
189
|
static {
|
|
174
190
|
__name(this, "HttpCollectionNode");
|
|
175
191
|
}
|
|
176
192
|
constructor(context) {
|
|
177
|
-
this[
|
|
193
|
+
this[kContext] = context;
|
|
178
194
|
}
|
|
179
195
|
create(data, options) {
|
|
180
|
-
const context = this[
|
|
196
|
+
const context = this[kContext];
|
|
197
|
+
context.operation = "create";
|
|
181
198
|
const requestHost = new HttpRequestObservable(context, options);
|
|
182
|
-
const request = requestHost[
|
|
199
|
+
const request = requestHost[kRequest];
|
|
183
200
|
request.method = "POST";
|
|
184
|
-
request.url
|
|
201
|
+
request.url.resolve(context.resourceName);
|
|
185
202
|
request.body = data;
|
|
186
203
|
if (options?.include)
|
|
187
|
-
request.params.set("$include", options.include);
|
|
204
|
+
request.params.set("$include", toArrayDef(options.include, []).join(","));
|
|
188
205
|
if (options?.pick)
|
|
189
|
-
request.params.set("$pick", options.pick);
|
|
206
|
+
request.params.set("$pick", toArrayDef(options.pick, []).join(","));
|
|
190
207
|
if (options?.omit)
|
|
191
|
-
request.params.set("$omit", options.omit);
|
|
208
|
+
request.params.set("$omit", toArrayDef(options.omit, []).join(","));
|
|
192
209
|
return requestHost;
|
|
193
210
|
}
|
|
194
211
|
delete(id, options) {
|
|
195
|
-
|
|
212
|
+
if (id == null)
|
|
213
|
+
throw new TypeError(`'id' argument must have a value`);
|
|
214
|
+
const context = this[kContext];
|
|
215
|
+
context.operation = "delete";
|
|
196
216
|
const requestHost = new HttpRequestObservable(context, options);
|
|
197
|
-
const request = requestHost[
|
|
217
|
+
const request = requestHost[kRequest];
|
|
198
218
|
request.method = "DELETE";
|
|
199
|
-
request.
|
|
219
|
+
request.url.join({ resource: context.resourceName, key: id });
|
|
200
220
|
return requestHost;
|
|
201
221
|
}
|
|
202
222
|
deleteMany(options) {
|
|
203
|
-
const context = this[
|
|
223
|
+
const context = this[kContext];
|
|
224
|
+
context.operation = "deleteMany";
|
|
204
225
|
const requestHost = new HttpRequestObservable(context, options);
|
|
205
|
-
const request = requestHost[
|
|
226
|
+
const request = requestHost[kRequest];
|
|
206
227
|
request.method = "DELETE";
|
|
207
|
-
request.url
|
|
228
|
+
request.url.join(context.resourceName);
|
|
208
229
|
if (options?.filter)
|
|
209
|
-
request.params.set("$filter", options.filter);
|
|
230
|
+
request.params.set("$filter", String(options.filter));
|
|
210
231
|
return requestHost;
|
|
211
232
|
}
|
|
212
233
|
get(id, options) {
|
|
213
|
-
|
|
234
|
+
if (id == null)
|
|
235
|
+
throw new TypeError(`'id' argument must have a value`);
|
|
236
|
+
const context = this[kContext];
|
|
237
|
+
context.operation = "get";
|
|
214
238
|
const requestHost = new HttpRequestObservable(context, options);
|
|
215
|
-
const request = requestHost[
|
|
239
|
+
const request = requestHost[kRequest];
|
|
216
240
|
request.method = "GET";
|
|
217
|
-
request.
|
|
241
|
+
request.url.join({ resource: context.resourceName, key: id });
|
|
218
242
|
if (options?.include)
|
|
219
|
-
request.params.set("$include", options.include);
|
|
243
|
+
request.params.set("$include", toArrayDef(options.include, []).join(","));
|
|
220
244
|
if (options?.pick)
|
|
221
|
-
request.params.set("$pick", options.pick);
|
|
245
|
+
request.params.set("$pick", toArrayDef(options.pick, []).join(","));
|
|
222
246
|
if (options?.omit)
|
|
223
|
-
request.params.set("$omit", options.omit);
|
|
247
|
+
request.params.set("$omit", toArrayDef(options.omit, []).join(","));
|
|
224
248
|
return requestHost;
|
|
225
249
|
}
|
|
226
250
|
findMany(options) {
|
|
227
|
-
const context = this[
|
|
251
|
+
const context = this[kContext];
|
|
252
|
+
context.operation = "findMany";
|
|
228
253
|
const requestHost = new HttpRequestObservable(context, options);
|
|
229
|
-
const request = requestHost[
|
|
254
|
+
const request = requestHost[kRequest];
|
|
230
255
|
request.method = "GET";
|
|
231
|
-
request.url
|
|
256
|
+
request.url.join(context.resourceName);
|
|
232
257
|
if (options?.include)
|
|
233
|
-
request.params.set("$include", options.include);
|
|
258
|
+
request.params.set("$include", toArrayDef(options.include, []).join(","));
|
|
234
259
|
if (options?.pick)
|
|
235
|
-
request.params.set("$pick", options.pick);
|
|
260
|
+
request.params.set("$pick", toArrayDef(options.pick, []).join(","));
|
|
236
261
|
if (options?.omit)
|
|
237
|
-
request.params.set("$omit", options.omit);
|
|
262
|
+
request.params.set("$omit", toArrayDef(options.omit, []).join(","));
|
|
238
263
|
if (options?.sort)
|
|
239
|
-
request.params.set("$sort", options.sort);
|
|
264
|
+
request.params.set("$sort", toArrayDef(options.sort, []).join(","));
|
|
240
265
|
if (options?.filter)
|
|
241
|
-
request.params.set("$filter", options.filter);
|
|
266
|
+
request.params.set("$filter", String(options.filter));
|
|
242
267
|
if (options?.limit != null)
|
|
243
|
-
request.params.set("$limit", options.limit);
|
|
268
|
+
request.params.set("$limit", String(options.limit));
|
|
244
269
|
if (options?.skip != null)
|
|
245
|
-
request.params.set("$skip", options.skip);
|
|
270
|
+
request.params.set("$skip", String(options.skip));
|
|
246
271
|
if (options?.count != null)
|
|
247
|
-
request.params.set("$count", options.count);
|
|
272
|
+
request.params.set("$count", String(options.count));
|
|
248
273
|
if (options?.distinct != null)
|
|
249
|
-
request.params.set("$distinct", options.distinct);
|
|
274
|
+
request.params.set("$distinct", String(options.distinct));
|
|
250
275
|
return requestHost;
|
|
251
276
|
}
|
|
252
277
|
update(id, data, options) {
|
|
253
|
-
|
|
278
|
+
if (id == null)
|
|
279
|
+
throw new TypeError(`'id' argument must have a value`);
|
|
280
|
+
const context = this[kContext];
|
|
281
|
+
context.operation = "update";
|
|
254
282
|
const requestHost = new HttpRequestObservable(context, options);
|
|
255
|
-
const request = requestHost[
|
|
283
|
+
const request = requestHost[kRequest];
|
|
256
284
|
request.method = "PATCH";
|
|
257
|
-
request.
|
|
285
|
+
request.url.join({ resource: context.resourceName, key: id });
|
|
258
286
|
request.body = data;
|
|
259
287
|
if (options?.include)
|
|
260
|
-
request.params.set("$include", options.include);
|
|
288
|
+
request.params.set("$include", String(options.include));
|
|
261
289
|
if (options?.pick)
|
|
262
|
-
request.params.set("$pick", options.pick);
|
|
290
|
+
request.params.set("$pick", String(options.pick));
|
|
263
291
|
if (options?.omit)
|
|
264
|
-
request.params.set("$omit", options.omit);
|
|
292
|
+
request.params.set("$omit", String(options.omit));
|
|
265
293
|
return requestHost;
|
|
266
294
|
}
|
|
267
295
|
updateMany(data, options) {
|
|
268
|
-
const context = this[
|
|
296
|
+
const context = this[kContext];
|
|
297
|
+
context.operation = "updateMany";
|
|
269
298
|
const requestHost = new HttpRequestObservable(context, options);
|
|
270
|
-
const request = requestHost[
|
|
299
|
+
const request = requestHost[kRequest];
|
|
271
300
|
request.method = "PATCH";
|
|
272
|
-
request.url
|
|
301
|
+
request.url.join(context.resourceName);
|
|
273
302
|
request.body = data;
|
|
274
303
|
if (options?.filter)
|
|
275
|
-
request.params.set("$filter", options.filter);
|
|
304
|
+
request.params.set("$filter", String(options.filter));
|
|
276
305
|
return requestHost;
|
|
277
306
|
}
|
|
278
307
|
};
|
|
279
308
|
|
|
280
|
-
// ../../build/client/esm/http
|
|
309
|
+
// ../../build/client/esm/http-response.js
|
|
281
310
|
var HttpResponse = class _HttpResponse {
|
|
282
311
|
static {
|
|
283
312
|
__name(this, "HttpResponse");
|
|
@@ -291,76 +320,81 @@ var HttpResponse = class _HttpResponse {
|
|
|
291
320
|
this.ok = this.status >= 200 && this.status < 300;
|
|
292
321
|
this.body = init?.body;
|
|
293
322
|
this.hasBody = init?.body != null || !!init?.hasBody;
|
|
294
|
-
this.
|
|
323
|
+
this.totalCount = init?.totalCount;
|
|
295
324
|
}
|
|
296
325
|
clone(update) {
|
|
297
326
|
return new _HttpResponse({ ...this, ...update });
|
|
298
327
|
}
|
|
299
328
|
};
|
|
300
329
|
|
|
301
|
-
// ../../build/client/esm/
|
|
330
|
+
// ../../build/client/esm/singleton-node.js
|
|
331
|
+
import { toArrayDef as toArrayDef2 } from "putil-varhelpers";
|
|
302
332
|
var HttpSingletonNode = class {
|
|
303
333
|
static {
|
|
304
334
|
__name(this, "HttpSingletonNode");
|
|
305
335
|
}
|
|
306
336
|
constructor(context) {
|
|
307
|
-
this[
|
|
337
|
+
this[kContext] = context;
|
|
308
338
|
}
|
|
309
339
|
create(data, options) {
|
|
310
|
-
const context = this[
|
|
340
|
+
const context = this[kContext];
|
|
341
|
+
context.operation = "create";
|
|
311
342
|
const requestHost = new HttpRequestObservable(context, options);
|
|
312
|
-
const request = requestHost[
|
|
343
|
+
const request = requestHost[kRequest];
|
|
313
344
|
request.method = "POST";
|
|
314
|
-
request.url
|
|
345
|
+
request.url.join(context.resourceName);
|
|
315
346
|
request.body = data;
|
|
316
347
|
if (options?.include)
|
|
317
|
-
request.params.set("$include", options.include);
|
|
348
|
+
request.params.set("$include", toArrayDef2(options.include, []).join(","));
|
|
318
349
|
if (options?.pick)
|
|
319
|
-
request.params.set("$pick", options.pick);
|
|
350
|
+
request.params.set("$pick", toArrayDef2(options.pick, []).join(","));
|
|
320
351
|
if (options?.omit)
|
|
321
|
-
request.params.set("$omit", options.omit);
|
|
352
|
+
request.params.set("$omit", toArrayDef2(options.omit, []).join(","));
|
|
322
353
|
return requestHost;
|
|
323
354
|
}
|
|
324
355
|
delete(options) {
|
|
325
|
-
const context = this[
|
|
356
|
+
const context = this[kContext];
|
|
357
|
+
context.operation = "delete";
|
|
326
358
|
const requestHost = new HttpRequestObservable(context, options);
|
|
327
|
-
const request = requestHost[
|
|
359
|
+
const request = requestHost[kRequest];
|
|
328
360
|
request.method = "DELETE";
|
|
329
|
-
request.
|
|
361
|
+
request.url.join({ resource: context.resourceName });
|
|
330
362
|
return requestHost;
|
|
331
363
|
}
|
|
332
364
|
get(options) {
|
|
333
|
-
const context = this[
|
|
365
|
+
const context = this[kContext];
|
|
366
|
+
context.operation = "get";
|
|
334
367
|
const requestHost = new HttpRequestObservable(context, options);
|
|
335
|
-
const request = requestHost[
|
|
368
|
+
const request = requestHost[kRequest];
|
|
336
369
|
request.method = "GET";
|
|
337
|
-
request.
|
|
370
|
+
request.url.join({ resource: context.resourceName });
|
|
338
371
|
if (options?.include)
|
|
339
|
-
request.params.set("$include", options.include);
|
|
372
|
+
request.params.set("$include", toArrayDef2(options.include, []).join(","));
|
|
340
373
|
if (options?.pick)
|
|
341
|
-
request.params.set("$pick", options.pick);
|
|
374
|
+
request.params.set("$pick", toArrayDef2(options.pick, []).join(","));
|
|
342
375
|
if (options?.omit)
|
|
343
|
-
request.params.set("$omit", options.omit);
|
|
376
|
+
request.params.set("$omit", toArrayDef2(options.omit, []).join(","));
|
|
344
377
|
return requestHost;
|
|
345
378
|
}
|
|
346
379
|
update(data, options) {
|
|
347
|
-
const context = this[
|
|
380
|
+
const context = this[kContext];
|
|
381
|
+
context.operation = "update";
|
|
348
382
|
const requestHost = new HttpRequestObservable(context, options);
|
|
349
|
-
const request = requestHost[
|
|
383
|
+
const request = requestHost[kRequest];
|
|
350
384
|
request.method = "PATCH";
|
|
351
|
-
request.
|
|
385
|
+
request.url.join({ resource: context.resourceName });
|
|
352
386
|
request.body = data;
|
|
353
387
|
if (options?.include)
|
|
354
|
-
request.params.set("$include", options.include);
|
|
388
|
+
request.params.set("$include", toArrayDef2(options.include, []).join(","));
|
|
355
389
|
if (options?.pick)
|
|
356
|
-
request.params.set("$pick", options.pick);
|
|
390
|
+
request.params.set("$pick", toArrayDef2(options.pick, []).join(","));
|
|
357
391
|
if (options?.omit)
|
|
358
|
-
request.params.set("$omit", options.omit);
|
|
392
|
+
request.params.set("$omit", toArrayDef2(options.omit, []).join(","));
|
|
359
393
|
return requestHost;
|
|
360
394
|
}
|
|
361
395
|
};
|
|
362
396
|
|
|
363
|
-
// ../../build/client/esm/
|
|
397
|
+
// ../../build/client/esm/client.js
|
|
364
398
|
var kAssets = Symbol("kAssets");
|
|
365
399
|
var OpraHttpClient = class {
|
|
366
400
|
static {
|
|
@@ -379,7 +413,7 @@ var OpraHttpClient = class {
|
|
|
379
413
|
this.defaults = {
|
|
380
414
|
...options?.defaults,
|
|
381
415
|
headers: options?.defaults?.headers instanceof Headers ? options?.defaults?.headers : new Headers(options?.defaults?.headers),
|
|
382
|
-
params: options?.defaults?.params instanceof
|
|
416
|
+
params: options?.defaults?.params instanceof URLSearchParams ? options?.defaults?.params : new URLSearchParams(options?.defaults?.params)
|
|
383
417
|
};
|
|
384
418
|
}
|
|
385
419
|
get serviceUrl() {
|
|
@@ -392,7 +426,7 @@ var OpraHttpClient = class {
|
|
|
392
426
|
if (promise) {
|
|
393
427
|
return promise;
|
|
394
428
|
}
|
|
395
|
-
this[kAssets].metadataPromise = promise = lastValueFrom2(this._sendRequest("
|
|
429
|
+
this[kAssets].metadataPromise = promise = lastValueFrom2(this._sendRequest("Singleton", "get", HttpObserveType.Body, new HttpRequest({
|
|
396
430
|
method: "GET",
|
|
397
431
|
url: "$metadata",
|
|
398
432
|
headers: new Headers({ "accept": "application/json" })
|
|
@@ -402,7 +436,7 @@ var OpraHttpClient = class {
|
|
|
402
436
|
this[kAssets].api = api;
|
|
403
437
|
return api;
|
|
404
438
|
}).catch((e) => {
|
|
405
|
-
e.message = "Unable to fetch metadata from " + this.serviceUrl + ". " + e.message;
|
|
439
|
+
e.message = "Unable to fetch metadata from service url (" + this.serviceUrl + "). " + e.message;
|
|
406
440
|
throw e;
|
|
407
441
|
}).finally(() => delete this[kAssets].metadataPromise);
|
|
408
442
|
}
|
|
@@ -415,8 +449,10 @@ var OpraHttpClient = class {
|
|
|
415
449
|
resourceName = resourceName.name;
|
|
416
450
|
const ctx = {
|
|
417
451
|
client: this,
|
|
452
|
+
resourceKind: "Collection",
|
|
453
|
+
operation: "",
|
|
418
454
|
resourceName,
|
|
419
|
-
send: (observe, request) => this._sendRequest(observe, request, ctx),
|
|
455
|
+
send: (observe, request) => this._sendRequest("Collection", ctx.operation, observe, request, ctx),
|
|
420
456
|
// requestInterceptors: [
|
|
421
457
|
// // Validate resource exists and is a collection resource
|
|
422
458
|
// async () => {
|
|
@@ -433,8 +469,10 @@ var OpraHttpClient = class {
|
|
|
433
469
|
resourceName = resourceName.name;
|
|
434
470
|
const ctx = {
|
|
435
471
|
client: this,
|
|
472
|
+
resourceKind: "Singleton",
|
|
473
|
+
operation: "",
|
|
436
474
|
resourceName,
|
|
437
|
-
send: (observe, request) => this._sendRequest(observe, request, ctx),
|
|
475
|
+
send: (observe, request) => this._sendRequest("Singleton", ctx.operation, observe, request, ctx),
|
|
438
476
|
// requestInterceptors: [
|
|
439
477
|
// // Validate resource exists and is a singleton resource
|
|
440
478
|
// async () => {
|
|
@@ -446,11 +484,11 @@ var OpraHttpClient = class {
|
|
|
446
484
|
};
|
|
447
485
|
return new HttpSingletonNode(ctx);
|
|
448
486
|
}
|
|
449
|
-
_sendRequest(observe, request, ctx) {
|
|
487
|
+
_sendRequest(resourceKind, operation, observe, request, ctx) {
|
|
450
488
|
return new Observable2((subscriber) => {
|
|
451
489
|
(async () => {
|
|
452
490
|
request.inset(this.defaults);
|
|
453
|
-
const url =
|
|
491
|
+
const url = new OpraURL2(request.url, this.serviceUrl);
|
|
454
492
|
let body;
|
|
455
493
|
if (request.body) {
|
|
456
494
|
let contentType;
|
|
@@ -492,10 +530,14 @@ var OpraHttpClient = class {
|
|
|
492
530
|
await interceptor(ctx, request);
|
|
493
531
|
}
|
|
494
532
|
}
|
|
495
|
-
if (observe ===
|
|
496
|
-
subscriber.next({
|
|
497
|
-
|
|
498
|
-
|
|
533
|
+
if (observe === HttpObserveType.Events)
|
|
534
|
+
subscriber.next({
|
|
535
|
+
observe,
|
|
536
|
+
request,
|
|
537
|
+
event: HttpEventType.Sent
|
|
538
|
+
});
|
|
539
|
+
const response = await this._fetch(url.toString(), request);
|
|
540
|
+
await this._handleResponse(resourceKind, operation, observe, subscriber, request, response, ctx);
|
|
499
541
|
})().catch((error) => subscriber.error(error));
|
|
500
542
|
});
|
|
501
543
|
}
|
|
@@ -505,9 +547,9 @@ var OpraHttpClient = class {
|
|
|
505
547
|
_createResponse(init) {
|
|
506
548
|
return new HttpResponse(init);
|
|
507
549
|
}
|
|
508
|
-
async _handleResponse(observe, subscriber, request, fetchResponse, ctx) {
|
|
550
|
+
async _handleResponse(resourceKind, operation, observe, subscriber, request, fetchResponse, ctx) {
|
|
509
551
|
const headers = fetchResponse.headers;
|
|
510
|
-
if (observe ===
|
|
552
|
+
if (observe === HttpObserveType.Events) {
|
|
511
553
|
const response2 = this._createResponse({
|
|
512
554
|
url: fetchResponse.url,
|
|
513
555
|
headers,
|
|
@@ -515,14 +557,21 @@ var OpraHttpClient = class {
|
|
|
515
557
|
statusText: fetchResponse.statusText,
|
|
516
558
|
hasBody: !!fetchResponse.body
|
|
517
559
|
});
|
|
518
|
-
subscriber.next({
|
|
560
|
+
subscriber.next({
|
|
561
|
+
observe,
|
|
562
|
+
request,
|
|
563
|
+
event: HttpEventType.ResponseHeader,
|
|
564
|
+
response: response2
|
|
565
|
+
});
|
|
519
566
|
}
|
|
520
567
|
let body;
|
|
568
|
+
let totalCount;
|
|
521
569
|
if (fetchResponse.body) {
|
|
522
570
|
if (JSON_CONTENT_TYPE_PATTERN.test(headers.get("Content-Type") || "")) {
|
|
523
571
|
body = await fetchResponse.json();
|
|
524
572
|
if (typeof body === "string")
|
|
525
573
|
body = JSON.parse(body);
|
|
574
|
+
totalCount = body.totalCount;
|
|
526
575
|
} else if (TEXT_CONTENT_TYPE_PATTERN.test(headers.get("Content-Type") || ""))
|
|
527
576
|
body = await fetchResponse.text();
|
|
528
577
|
else if (FORMDATA_CONTENT_TYPE_PATTERN.test(headers.get("Content-Type") || ""))
|
|
@@ -533,7 +582,7 @@ var OpraHttpClient = class {
|
|
|
533
582
|
body = buf;
|
|
534
583
|
}
|
|
535
584
|
}
|
|
536
|
-
if (observe ===
|
|
585
|
+
if (observe === HttpObserveType.Body && fetchResponse.status >= 400 && fetchResponse.status < 600) {
|
|
537
586
|
subscriber.error(new ClientError({
|
|
538
587
|
message: fetchResponse.status + " " + fetchResponse.statusText,
|
|
539
588
|
status: fetchResponse.status,
|
|
@@ -549,8 +598,8 @@ var OpraHttpClient = class {
|
|
|
549
598
|
statusText: fetchResponse.statusText,
|
|
550
599
|
body
|
|
551
600
|
};
|
|
552
|
-
if (
|
|
553
|
-
responseInit.
|
|
601
|
+
if (totalCount != null)
|
|
602
|
+
responseInit.totalCount = totalCount;
|
|
554
603
|
const response = this._createResponse(responseInit);
|
|
555
604
|
if (ctx) {
|
|
556
605
|
const responseInterceptors = [
|
|
@@ -561,11 +610,19 @@ var OpraHttpClient = class {
|
|
|
561
610
|
await interceptor(ctx, observe, request);
|
|
562
611
|
}
|
|
563
612
|
}
|
|
564
|
-
if (observe ===
|
|
565
|
-
|
|
613
|
+
if (observe === HttpObserveType.Body) {
|
|
614
|
+
if ((resourceKind === "Collection" || resourceKind === "Singleton") && (operation === "create" || operation === "get" || operation === "findMany" || operation === "update"))
|
|
615
|
+
subscriber.next(body.data);
|
|
616
|
+
else
|
|
617
|
+
subscriber.next(body);
|
|
566
618
|
} else {
|
|
567
|
-
if (observe ===
|
|
568
|
-
subscriber.next({
|
|
619
|
+
if (observe === HttpObserveType.Events)
|
|
620
|
+
subscriber.next({
|
|
621
|
+
observe,
|
|
622
|
+
request,
|
|
623
|
+
event: HttpEventType.Response,
|
|
624
|
+
response
|
|
625
|
+
});
|
|
569
626
|
else
|
|
570
627
|
subscriber.next(response);
|
|
571
628
|
}
|
|
@@ -574,7 +631,7 @@ var OpraHttpClient = class {
|
|
|
574
631
|
};
|
|
575
632
|
OpraHttpClient.kAssets = kAssets;
|
|
576
633
|
|
|
577
|
-
// ../../build/client/esm/http
|
|
634
|
+
// ../../build/client/esm/http-service-base.js
|
|
578
635
|
var HttpServiceBase = class {
|
|
579
636
|
static {
|
|
580
637
|
__name(this, "HttpServiceBase");
|
|
@@ -586,6 +643,8 @@ var HttpServiceBase = class {
|
|
|
586
643
|
export {
|
|
587
644
|
ClientError,
|
|
588
645
|
HttpCollectionNode,
|
|
646
|
+
HttpEventType,
|
|
647
|
+
HttpObserveType,
|
|
589
648
|
HttpRequest,
|
|
590
649
|
HttpRequestObservable,
|
|
591
650
|
HttpResponse,
|