@opra/client 0.5.0 → 0.7.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/cjs/constants.js +6 -0
- package/cjs/http/http-client.js +164 -0
- package/cjs/http/http-collection-service.js +40 -0
- package/cjs/http/http-request.js +66 -0
- package/cjs/http/http-response.js +2 -0
- package/cjs/http/http-singleton-service.js +16 -0
- package/cjs/http/http-types.js +2 -0
- package/cjs/http/requests/batch-request.js +80 -0
- package/cjs/http/requests/collection-create-request.js +35 -0
- package/cjs/http/requests/collection-delete-many-request.js +28 -0
- package/cjs/http/requests/collection-delete-request.js +29 -0
- package/cjs/http/requests/collection-get-request.js +37 -0
- package/cjs/http/requests/collection-search-request.js +44 -0
- package/cjs/http/requests/collection-update-many-request.js +31 -0
- package/cjs/http/requests/collection-update-request.js +40 -0
- package/cjs/http/requests/http-singleton-get-request.js +31 -0
- package/cjs/http/utils/merge-raw-http-requests.util.js +29 -0
- package/cjs/index.js +15 -13
- package/cjs/interfaces/http-options.interface.js +2 -0
- package/cjs/interfaces/http-request-config.interface.js +2 -0
- package/esm/client-error.d.ts +1 -1
- package/esm/constants.d.ts +3 -0
- package/esm/constants.js +3 -0
- package/esm/http/http-client.d.ts +26 -0
- package/esm/http/http-client.js +160 -0
- package/esm/http/http-collection-service.d.ts +22 -0
- package/esm/http/http-collection-service.js +36 -0
- package/esm/http/http-request.d.ts +25 -0
- package/esm/http/http-request.js +62 -0
- package/esm/http/http-response.d.ts +14 -0
- package/esm/http/http-response.js +1 -0
- package/esm/http/http-singleton-service.d.ts +10 -0
- package/esm/http/http-singleton-service.js +12 -0
- package/esm/http/http-types.d.ts +26 -0
- package/esm/http/http-types.js +1 -0
- package/esm/http/requests/batch-request.d.ts +18 -0
- package/esm/http/requests/batch-request.js +76 -0
- package/esm/http/requests/collection-create-request.d.ts +12 -0
- package/esm/http/requests/collection-create-request.js +31 -0
- package/esm/http/requests/collection-delete-many-request.d.ts +11 -0
- package/esm/http/requests/collection-delete-many-request.js +24 -0
- package/esm/http/requests/collection-delete-request.d.ts +12 -0
- package/esm/http/requests/collection-delete-request.js +25 -0
- package/esm/http/requests/collection-get-request.d.ts +12 -0
- package/esm/http/requests/collection-get-request.js +33 -0
- package/esm/http/requests/collection-search-request.d.ts +11 -0
- package/esm/http/requests/collection-search-request.js +40 -0
- package/esm/http/requests/collection-update-many-request.d.ts +12 -0
- package/esm/http/requests/collection-update-many-request.js +27 -0
- package/esm/http/requests/collection-update-request.d.ts +13 -0
- package/esm/http/requests/collection-update-request.js +36 -0
- package/esm/http/requests/http-singleton-get-request.d.ts +11 -0
- package/esm/http/requests/http-singleton-get-request.js +27 -0
- package/esm/http/utils/merge-raw-http-requests.util.d.ts +2 -0
- package/esm/http/utils/merge-raw-http-requests.util.js +25 -0
- package/esm/index.d.ts +15 -13
- package/esm/index.js +15 -13
- package/esm/interfaces/http-options.interface.d.ts +20 -0
- package/esm/interfaces/http-options.interface.js +1 -0
- package/esm/interfaces/http-request-config.interface.d.ts +23 -0
- package/esm/interfaces/http-request-config.interface.js +1 -0
- package/esm/types.d.ts +7 -37
- package/package.json +24 -22
- package/umd/opra-client.umd.min.js +1 -0
- package/cjs/client-request.js +0 -48
- package/cjs/client.js +0 -139
- package/cjs/requests/batch-request.js +0 -136
- package/cjs/requests/collection-create-request.js +0 -35
- package/cjs/requests/collection-delete-many-request.js +0 -28
- package/cjs/requests/collection-delete-request.js +0 -29
- package/cjs/requests/collection-get-request.js +0 -35
- package/cjs/requests/collection-search-request.js +0 -44
- package/cjs/requests/collection-update-many-request.js +0 -31
- package/cjs/requests/collection-update-request.js +0 -38
- package/cjs/requests/singleton-get-request.js +0 -32
- package/cjs/services/collection-node.js +0 -42
- package/cjs/services/singleton-node.js +0 -18
- package/esm/client-request.d.ts +0 -17
- package/esm/client-request.js +0 -44
- package/esm/client.d.ts +0 -34
- package/esm/client.js +0 -134
- package/esm/requests/batch-request.d.ts +0 -19
- package/esm/requests/batch-request.js +0 -131
- package/esm/requests/collection-create-request.d.ts +0 -13
- package/esm/requests/collection-create-request.js +0 -31
- package/esm/requests/collection-delete-many-request.d.ts +0 -12
- package/esm/requests/collection-delete-many-request.js +0 -24
- package/esm/requests/collection-delete-request.d.ts +0 -13
- package/esm/requests/collection-delete-request.js +0 -25
- package/esm/requests/collection-get-request.d.ts +0 -13
- package/esm/requests/collection-get-request.js +0 -31
- package/esm/requests/collection-search-request.d.ts +0 -12
- package/esm/requests/collection-search-request.js +0 -40
- package/esm/requests/collection-update-many-request.d.ts +0 -13
- package/esm/requests/collection-update-many-request.js +0 -27
- package/esm/requests/collection-update-request.d.ts +0 -14
- package/esm/requests/collection-update-request.js +0 -34
- package/esm/requests/singleton-get-request.d.ts +0 -12
- package/esm/requests/singleton-get-request.js +0 -28
- package/esm/services/collection-node.d.ts +0 -24
- package/esm/services/collection-node.js +0 -38
- package/esm/services/singleton-node.d.ts +0 -12
- package/esm/services/singleton-node.js +0 -14
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { OpraURLSearchParams, } from '@opra/common';
|
|
2
|
+
import { HttpRequest } from '../http-request.js';
|
|
3
|
+
import { mergeRawHttpRequests } from '../utils/merge-raw-http-requests.util.js';
|
|
4
|
+
export class CollectionDeleteManyRequest extends HttpRequest {
|
|
5
|
+
_handler;
|
|
6
|
+
resource;
|
|
7
|
+
options;
|
|
8
|
+
constructor(_handler, resource, options = {}) {
|
|
9
|
+
super(_handler, options);
|
|
10
|
+
this._handler = _handler;
|
|
11
|
+
this.resource = resource;
|
|
12
|
+
this.options = options;
|
|
13
|
+
}
|
|
14
|
+
prepare() {
|
|
15
|
+
const searchParams = new OpraURLSearchParams();
|
|
16
|
+
if (this.options.filter)
|
|
17
|
+
searchParams.set('$filter', this.options.filter);
|
|
18
|
+
return mergeRawHttpRequests({
|
|
19
|
+
method: 'DELETE',
|
|
20
|
+
path: this.resource.name,
|
|
21
|
+
params: searchParams,
|
|
22
|
+
}, this.options.http);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CollectionResourceInfo } from '@opra/common';
|
|
2
|
+
import { HttpRequest } from '../http-request.js';
|
|
3
|
+
import { HttpResponse } from '../http-response.js';
|
|
4
|
+
import { CommonHttpRequestOptions, HttpRequestHandler, RawHttpRequest } from '../http-types.js';
|
|
5
|
+
export declare class CollectionDeleteRequest<T, TResponse extends HttpResponse<T> = HttpResponse<T>> extends HttpRequest<T, TResponse> {
|
|
6
|
+
protected _handler: HttpRequestHandler;
|
|
7
|
+
readonly resource: CollectionResourceInfo;
|
|
8
|
+
keyValue: any;
|
|
9
|
+
options: CommonHttpRequestOptions;
|
|
10
|
+
constructor(_handler: HttpRequestHandler, resource: CollectionResourceInfo, keyValue: any, options?: CommonHttpRequestOptions);
|
|
11
|
+
prepare(): RawHttpRequest;
|
|
12
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { OpraURLPath } from '@opra/common';
|
|
2
|
+
import { HttpRequest } from '../http-request.js';
|
|
3
|
+
import { mergeRawHttpRequests } from '../utils/merge-raw-http-requests.util.js';
|
|
4
|
+
export class CollectionDeleteRequest extends HttpRequest {
|
|
5
|
+
_handler;
|
|
6
|
+
resource;
|
|
7
|
+
keyValue;
|
|
8
|
+
options;
|
|
9
|
+
constructor(_handler, resource, keyValue, options = {}) {
|
|
10
|
+
super(_handler, options);
|
|
11
|
+
this._handler = _handler;
|
|
12
|
+
this.resource = resource;
|
|
13
|
+
this.keyValue = keyValue;
|
|
14
|
+
this.options = options;
|
|
15
|
+
}
|
|
16
|
+
prepare() {
|
|
17
|
+
if (this.keyValue == null || this.keyValue === '')
|
|
18
|
+
throw new TypeError('Key value required to perform "delete" request');
|
|
19
|
+
const path = new OpraURLPath({ resource: this.resource.name, key: this.keyValue });
|
|
20
|
+
return mergeRawHttpRequests({
|
|
21
|
+
method: 'DELETE',
|
|
22
|
+
path: path.toString(),
|
|
23
|
+
}, this.options.http);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CollectionGetQueryOptions, CollectionResourceInfo } from '@opra/common';
|
|
2
|
+
import { HttpRequest } from '../http-request.js';
|
|
3
|
+
import { HttpResponse } from '../http-response.js';
|
|
4
|
+
import { CommonHttpRequestOptions, HttpRequestHandler, RawHttpRequest } from '../http-types.js';
|
|
5
|
+
export declare class CollectionGetRequest<T, TResponse extends HttpResponse<T> = HttpResponse<T>> extends HttpRequest<T, TResponse> {
|
|
6
|
+
protected _handler: HttpRequestHandler;
|
|
7
|
+
readonly resource: CollectionResourceInfo;
|
|
8
|
+
keyValue: any;
|
|
9
|
+
options: CollectionGetQueryOptions & CommonHttpRequestOptions;
|
|
10
|
+
constructor(_handler: HttpRequestHandler, resource: CollectionResourceInfo, keyValue: any, options?: CollectionGetQueryOptions & CommonHttpRequestOptions);
|
|
11
|
+
prepare(): RawHttpRequest;
|
|
12
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { OpraURLPath, OpraURLSearchParams, } from '@opra/common';
|
|
2
|
+
import { HttpRequest } from '../http-request.js';
|
|
3
|
+
import { mergeRawHttpRequests } from '../utils/merge-raw-http-requests.util.js';
|
|
4
|
+
export class CollectionGetRequest extends HttpRequest {
|
|
5
|
+
_handler;
|
|
6
|
+
resource;
|
|
7
|
+
keyValue;
|
|
8
|
+
options;
|
|
9
|
+
constructor(_handler, resource, keyValue, options = {}) {
|
|
10
|
+
super(_handler, options);
|
|
11
|
+
this._handler = _handler;
|
|
12
|
+
this.resource = resource;
|
|
13
|
+
this.keyValue = keyValue;
|
|
14
|
+
this.options = options;
|
|
15
|
+
}
|
|
16
|
+
prepare() {
|
|
17
|
+
if (this.keyValue == null || this.keyValue === '')
|
|
18
|
+
throw new TypeError('Key value required to perform "get" request');
|
|
19
|
+
const path = new OpraURLPath({ resource: this.resource.name, key: this.keyValue });
|
|
20
|
+
const searchParams = new OpraURLSearchParams();
|
|
21
|
+
if (this.options.include)
|
|
22
|
+
searchParams.set('$include', this.options.include);
|
|
23
|
+
if (this.options.pick)
|
|
24
|
+
searchParams.set('$pick', this.options.pick);
|
|
25
|
+
if (this.options.omit)
|
|
26
|
+
searchParams.set('$omit', this.options.omit);
|
|
27
|
+
return mergeRawHttpRequests({
|
|
28
|
+
method: 'GET',
|
|
29
|
+
path: path.toString(),
|
|
30
|
+
params: searchParams
|
|
31
|
+
}, this.options.http);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CollectionResourceInfo, CollectionSearchQueryOptions } from '@opra/common';
|
|
2
|
+
import { HttpRequest } from '../http-request.js';
|
|
3
|
+
import { HttpResponse } from '../http-response.js';
|
|
4
|
+
import { CommonHttpRequestOptions, HttpRequestHandler, RawHttpRequest } from '../http-types.js';
|
|
5
|
+
export declare class CollectionSearchRequest<T, TResponse extends HttpResponse<T> = HttpResponse<T>> extends HttpRequest<T, TResponse> {
|
|
6
|
+
protected _handler: HttpRequestHandler;
|
|
7
|
+
readonly resource: CollectionResourceInfo;
|
|
8
|
+
options: CollectionSearchQueryOptions & CommonHttpRequestOptions;
|
|
9
|
+
constructor(_handler: HttpRequestHandler, resource: CollectionResourceInfo, options?: CollectionSearchQueryOptions & CommonHttpRequestOptions);
|
|
10
|
+
prepare(): RawHttpRequest;
|
|
11
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { OpraURLSearchParams, } from '@opra/common';
|
|
2
|
+
import { HttpRequest } from '../http-request.js';
|
|
3
|
+
import { mergeRawHttpRequests } from '../utils/merge-raw-http-requests.util.js';
|
|
4
|
+
export class CollectionSearchRequest extends HttpRequest {
|
|
5
|
+
_handler;
|
|
6
|
+
resource;
|
|
7
|
+
options;
|
|
8
|
+
constructor(_handler, resource, options = {}) {
|
|
9
|
+
super(_handler, options);
|
|
10
|
+
this._handler = _handler;
|
|
11
|
+
this.resource = resource;
|
|
12
|
+
this.options = options;
|
|
13
|
+
}
|
|
14
|
+
prepare() {
|
|
15
|
+
const searchParams = new OpraURLSearchParams();
|
|
16
|
+
if (this.options.include)
|
|
17
|
+
searchParams.set('$include', this.options.include);
|
|
18
|
+
if (this.options.pick)
|
|
19
|
+
searchParams.set('$pick', this.options.pick);
|
|
20
|
+
if (this.options.omit)
|
|
21
|
+
searchParams.set('$omit', this.options.omit);
|
|
22
|
+
if (this.options.sort)
|
|
23
|
+
searchParams.set('$sort', this.options.sort);
|
|
24
|
+
if (this.options.filter)
|
|
25
|
+
searchParams.set('$filter', this.options.filter);
|
|
26
|
+
if (this.options.limit != null)
|
|
27
|
+
searchParams.set('$limit', this.options.limit);
|
|
28
|
+
if (this.options.skip != null)
|
|
29
|
+
searchParams.set('$skip', this.options.skip);
|
|
30
|
+
if (this.options.count != null)
|
|
31
|
+
searchParams.set('$count', this.options.count);
|
|
32
|
+
if (this.options.distinct != null)
|
|
33
|
+
searchParams.set('$distinct', this.options.distinct);
|
|
34
|
+
return mergeRawHttpRequests({
|
|
35
|
+
method: 'GET',
|
|
36
|
+
path: this.resource.name,
|
|
37
|
+
params: searchParams
|
|
38
|
+
}, this.options.http);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CollectionResourceInfo, CollectionUpdateManyQueryOptions, PartialInput } from '@opra/common';
|
|
2
|
+
import { HttpRequest } from '../http-request.js';
|
|
3
|
+
import { HttpResponse } from '../http-response.js';
|
|
4
|
+
import { CommonHttpRequestOptions, HttpRequestHandler, RawHttpRequest } from '../http-types.js';
|
|
5
|
+
export declare class CollectionUpdateManyRequest<T, TResponse extends HttpResponse<T> = HttpResponse<T>> extends HttpRequest<T, TResponse> {
|
|
6
|
+
protected _handler: HttpRequestHandler;
|
|
7
|
+
readonly resource: CollectionResourceInfo;
|
|
8
|
+
data: PartialInput<T>;
|
|
9
|
+
options: CollectionUpdateManyQueryOptions & CommonHttpRequestOptions;
|
|
10
|
+
constructor(_handler: HttpRequestHandler, resource: CollectionResourceInfo, data: PartialInput<T>, options?: CollectionUpdateManyQueryOptions & CommonHttpRequestOptions);
|
|
11
|
+
prepare(): RawHttpRequest;
|
|
12
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { OpraURLSearchParams, } from '@opra/common';
|
|
2
|
+
import { HttpRequest } from '../http-request.js';
|
|
3
|
+
import { mergeRawHttpRequests } from '../utils/merge-raw-http-requests.util.js';
|
|
4
|
+
export class CollectionUpdateManyRequest extends HttpRequest {
|
|
5
|
+
_handler;
|
|
6
|
+
resource;
|
|
7
|
+
data;
|
|
8
|
+
options;
|
|
9
|
+
constructor(_handler, resource, data, options = {}) {
|
|
10
|
+
super(_handler, options);
|
|
11
|
+
this._handler = _handler;
|
|
12
|
+
this.resource = resource;
|
|
13
|
+
this.data = data;
|
|
14
|
+
this.options = options;
|
|
15
|
+
}
|
|
16
|
+
prepare() {
|
|
17
|
+
const searchParams = new OpraURLSearchParams();
|
|
18
|
+
if (this.options.filter)
|
|
19
|
+
searchParams.set('$filter', this.options.filter);
|
|
20
|
+
return mergeRawHttpRequests({
|
|
21
|
+
method: 'PATCH',
|
|
22
|
+
path: this.resource.name,
|
|
23
|
+
params: searchParams,
|
|
24
|
+
body: this.data
|
|
25
|
+
}, this.options.http);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { CollectionResourceInfo, CollectionUpdateQueryOptions, PartialInput } from '@opra/common';
|
|
2
|
+
import { HttpRequest } from '../http-request.js';
|
|
3
|
+
import { HttpResponse } from '../http-response.js';
|
|
4
|
+
import { CommonHttpRequestOptions, HttpRequestHandler, RawHttpRequest } from '../http-types.js';
|
|
5
|
+
export declare class CollectionUpdateRequest<T, TResponse extends HttpResponse<T> = HttpResponse<T>> extends HttpRequest<T, TResponse> {
|
|
6
|
+
protected _handler: HttpRequestHandler;
|
|
7
|
+
readonly resource: CollectionResourceInfo;
|
|
8
|
+
keyValue: any;
|
|
9
|
+
data: PartialInput<T>;
|
|
10
|
+
options: CollectionUpdateQueryOptions & CommonHttpRequestOptions;
|
|
11
|
+
constructor(_handler: HttpRequestHandler, resource: CollectionResourceInfo, keyValue: any, data: PartialInput<T>, options?: CollectionUpdateQueryOptions & CommonHttpRequestOptions);
|
|
12
|
+
prepare(): RawHttpRequest;
|
|
13
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { OpraURLPath, OpraURLSearchParams, } from '@opra/common';
|
|
2
|
+
import { HttpRequest } from '../http-request.js';
|
|
3
|
+
import { mergeRawHttpRequests } from '../utils/merge-raw-http-requests.util.js';
|
|
4
|
+
export class CollectionUpdateRequest extends HttpRequest {
|
|
5
|
+
_handler;
|
|
6
|
+
resource;
|
|
7
|
+
keyValue;
|
|
8
|
+
data;
|
|
9
|
+
options;
|
|
10
|
+
constructor(_handler, resource, keyValue, data, options = {}) {
|
|
11
|
+
super(_handler, options);
|
|
12
|
+
this._handler = _handler;
|
|
13
|
+
this.resource = resource;
|
|
14
|
+
this.keyValue = keyValue;
|
|
15
|
+
this.data = data;
|
|
16
|
+
this.options = options;
|
|
17
|
+
}
|
|
18
|
+
prepare() {
|
|
19
|
+
if (this.keyValue == null || this.keyValue === '')
|
|
20
|
+
throw new TypeError('Key value required to perform "get" request');
|
|
21
|
+
const path = new OpraURLPath({ resource: this.resource.name, key: this.keyValue });
|
|
22
|
+
const searchParams = new OpraURLSearchParams();
|
|
23
|
+
if (this.options.include)
|
|
24
|
+
searchParams.set('$include', this.options.include);
|
|
25
|
+
if (this.options.pick)
|
|
26
|
+
searchParams.set('$pick', this.options.pick);
|
|
27
|
+
if (this.options.omit)
|
|
28
|
+
searchParams.set('$omit', this.options.omit);
|
|
29
|
+
return mergeRawHttpRequests({
|
|
30
|
+
method: 'PATCH',
|
|
31
|
+
path: path.toString(),
|
|
32
|
+
params: searchParams,
|
|
33
|
+
body: this.data
|
|
34
|
+
}, this.options.http);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { SingletonGetQueryOptions, SingletonResourceInfo } from '@opra/common';
|
|
2
|
+
import { HttpRequest } from '../http-request.js';
|
|
3
|
+
import { HttpResponse } from '../http-response.js';
|
|
4
|
+
import { CommonHttpRequestOptions, HttpRequestHandler, RawHttpRequest } from '../http-types.js';
|
|
5
|
+
export declare class HttpSingletonGetRequest<T, TResponse extends HttpResponse<T> = HttpResponse<T>> extends HttpRequest<T, TResponse> {
|
|
6
|
+
protected _handler: HttpRequestHandler;
|
|
7
|
+
readonly resource: SingletonResourceInfo;
|
|
8
|
+
options: SingletonGetQueryOptions & CommonHttpRequestOptions;
|
|
9
|
+
constructor(_handler: HttpRequestHandler, resource: SingletonResourceInfo, options?: SingletonGetQueryOptions & CommonHttpRequestOptions);
|
|
10
|
+
prepare(): RawHttpRequest;
|
|
11
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { HttpRequest } from '../http-request.js';
|
|
2
|
+
import { mergeRawHttpRequests } from '../utils/merge-raw-http-requests.util.js';
|
|
3
|
+
export class HttpSingletonGetRequest extends HttpRequest {
|
|
4
|
+
_handler;
|
|
5
|
+
resource;
|
|
6
|
+
options;
|
|
7
|
+
constructor(_handler, resource, options = {}) {
|
|
8
|
+
super(_handler, options);
|
|
9
|
+
this._handler = _handler;
|
|
10
|
+
this.resource = resource;
|
|
11
|
+
this.options = options;
|
|
12
|
+
}
|
|
13
|
+
prepare() {
|
|
14
|
+
const searchParams = new URLSearchParams();
|
|
15
|
+
if (this.options.include)
|
|
16
|
+
searchParams.set('$include', '' + this.options.include);
|
|
17
|
+
if (this.options.pick)
|
|
18
|
+
searchParams.set('$pick', '' + this.options.pick);
|
|
19
|
+
if (this.options.omit)
|
|
20
|
+
searchParams.set('$omit', '' + this.options.omit);
|
|
21
|
+
return mergeRawHttpRequests({
|
|
22
|
+
method: 'GET',
|
|
23
|
+
path: this.resource.name,
|
|
24
|
+
params: searchParams
|
|
25
|
+
}, this.options.http);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { normalizeHeaders, OpraURLSearchParams } from '@opra/common';
|
|
2
|
+
export function mergeRawHttpRequests(target, ...other) {
|
|
3
|
+
let params;
|
|
4
|
+
const arr = [target, ...other];
|
|
5
|
+
let headers;
|
|
6
|
+
for (let i = arr.length - 1; i >= 0; i--) {
|
|
7
|
+
const o = arr[i];
|
|
8
|
+
if (o?.headers) {
|
|
9
|
+
headers = headers || {};
|
|
10
|
+
Object.assign(headers, normalizeHeaders(o.headers));
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
for (const o of arr) {
|
|
14
|
+
if (!o)
|
|
15
|
+
continue;
|
|
16
|
+
Object.assign(target, o);
|
|
17
|
+
if (o?.params) {
|
|
18
|
+
params = params || new OpraURLSearchParams();
|
|
19
|
+
o.params.forEach((v, n) => params?.append(n, v));
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
target.headers = headers;
|
|
23
|
+
target.params = params;
|
|
24
|
+
return target;
|
|
25
|
+
}
|
package/esm/index.d.ts
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
export * from './client.js';
|
|
2
|
-
export * from './
|
|
1
|
+
export * from './http/http-client.js';
|
|
2
|
+
export * from './http/http-request.js';
|
|
3
|
+
export * from './http/http-response.js';
|
|
4
|
+
export * from './http/http-collection-service.js';
|
|
5
|
+
export * from './http/http-singleton-service.js';
|
|
6
|
+
export * from './http/http-types.js';
|
|
3
7
|
export * from './types.js';
|
|
4
8
|
export * from './client-error.js';
|
|
5
|
-
export * from './
|
|
6
|
-
export * from './
|
|
7
|
-
export * from './requests/
|
|
8
|
-
export * from './requests/collection-
|
|
9
|
-
export * from './requests/collection-
|
|
10
|
-
export * from './requests/collection-
|
|
11
|
-
export * from './requests/collection-
|
|
12
|
-
export * from './requests/collection-
|
|
13
|
-
export * from './requests/
|
|
14
|
-
export * from './requests/collection-update-many-request.js';
|
|
15
|
-
export * from './requests/singleton-get-request.js';
|
|
9
|
+
export * from './http/requests/batch-request.js';
|
|
10
|
+
export * from './http/requests/collection-create-request.js';
|
|
11
|
+
export * from './http/requests/collection-delete-request.js';
|
|
12
|
+
export * from './http/requests/collection-delete-many-request.js';
|
|
13
|
+
export * from './http/requests/collection-get-request.js';
|
|
14
|
+
export * from './http/requests/collection-search-request.js';
|
|
15
|
+
export * from './http/requests/collection-update-request.js';
|
|
16
|
+
export * from './http/requests/collection-update-many-request.js';
|
|
17
|
+
export * from './http/requests/http-singleton-get-request.js';
|
package/esm/index.js
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
export * from './client.js';
|
|
2
|
-
export * from './
|
|
1
|
+
export * from './http/http-client.js';
|
|
2
|
+
export * from './http/http-request.js';
|
|
3
|
+
export * from './http/http-response.js';
|
|
4
|
+
export * from './http/http-collection-service.js';
|
|
5
|
+
export * from './http/http-singleton-service.js';
|
|
6
|
+
export * from './http/http-types.js';
|
|
3
7
|
export * from './types.js';
|
|
4
8
|
export * from './client-error.js';
|
|
5
|
-
export * from './
|
|
6
|
-
export * from './
|
|
7
|
-
export * from './requests/
|
|
8
|
-
export * from './requests/collection-
|
|
9
|
-
export * from './requests/collection-
|
|
10
|
-
export * from './requests/collection-
|
|
11
|
-
export * from './requests/collection-
|
|
12
|
-
export * from './requests/collection-
|
|
13
|
-
export * from './requests/
|
|
14
|
-
export * from './requests/collection-update-many-request.js';
|
|
15
|
-
export * from './requests/singleton-get-request.js';
|
|
9
|
+
export * from './http/requests/batch-request.js';
|
|
10
|
+
export * from './http/requests/collection-create-request.js';
|
|
11
|
+
export * from './http/requests/collection-delete-request.js';
|
|
12
|
+
export * from './http/requests/collection-delete-many-request.js';
|
|
13
|
+
export * from './http/requests/collection-get-request.js';
|
|
14
|
+
export * from './http/requests/collection-search-request.js';
|
|
15
|
+
export * from './http/requests/collection-update-request.js';
|
|
16
|
+
export * from './http/requests/collection-update-many-request.js';
|
|
17
|
+
export * from './http/requests/http-singleton-get-request.js';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type { URLSearchParams } from 'url';
|
|
3
|
+
import type { ClientHttpHeaders } from '@opra/common';
|
|
4
|
+
import type { OPCBasicCredentials, OPCProxyConfig } from '../types.js';
|
|
5
|
+
export declare type HttpRequestOptions = {
|
|
6
|
+
headers?: ClientHttpHeaders;
|
|
7
|
+
params?: Record<string, string | string[]> | URLSearchParams;
|
|
8
|
+
auth?: OPCBasicCredentials;
|
|
9
|
+
timeout?: number;
|
|
10
|
+
timeoutErrorMessage?: string;
|
|
11
|
+
xsrfCookieName?: string;
|
|
12
|
+
xsrfHeaderName?: string;
|
|
13
|
+
maxRedirects?: number;
|
|
14
|
+
maxUploadRate?: number;
|
|
15
|
+
maxDownloadRate?: number;
|
|
16
|
+
httpAgent?: any;
|
|
17
|
+
httpsAgent?: any;
|
|
18
|
+
proxy?: OPCProxyConfig | false;
|
|
19
|
+
validateStatus?: ((status: number) => boolean) | null;
|
|
20
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type { URLSearchParams } from 'url';
|
|
3
|
+
import type { ClientHttpHeaders } from '@opra/common';
|
|
4
|
+
import type { HttpRequestOptions } from './http-options.interface.js';
|
|
5
|
+
export declare type HttpRequestConfig = {
|
|
6
|
+
method: string;
|
|
7
|
+
url: string;
|
|
8
|
+
headers?: ClientHttpHeaders;
|
|
9
|
+
params?: Record<string, string | string[]> | URLSearchParams;
|
|
10
|
+
body?: any;
|
|
11
|
+
auth?: any;
|
|
12
|
+
timeout?: number;
|
|
13
|
+
timeoutErrorMessage?: string;
|
|
14
|
+
xsrfCookieName?: string;
|
|
15
|
+
xsrfHeaderName?: string;
|
|
16
|
+
maxRedirects?: number;
|
|
17
|
+
maxUploadRate?: number;
|
|
18
|
+
maxDownloadRate?: number;
|
|
19
|
+
httpAgent?: any;
|
|
20
|
+
httpsAgent?: any;
|
|
21
|
+
proxy?: any | false;
|
|
22
|
+
validateStatus?: ((status: number) => boolean) | null;
|
|
23
|
+
} & HttpRequestOptions;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/esm/types.d.ts
CHANGED
|
@@ -1,37 +1,7 @@
|
|
|
1
|
-
import { AxiosAdapter, AxiosBasicCredentials, AxiosProxyConfig
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
export declare type
|
|
6
|
-
export declare type
|
|
7
|
-
export declare type
|
|
8
|
-
export declare type MaxDownloadRate = number;
|
|
9
|
-
export declare type HttpRequestOptions = {
|
|
10
|
-
auth?: AxiosBasicCredentials;
|
|
11
|
-
headers?: Record<string, string>;
|
|
12
|
-
timeout?: number;
|
|
13
|
-
timeoutErrorMessage?: string;
|
|
14
|
-
xsrfCookieName?: string;
|
|
15
|
-
xsrfHeaderName?: string;
|
|
16
|
-
maxRedirects?: number;
|
|
17
|
-
maxRate?: number | [MaxUploadRate, MaxDownloadRate];
|
|
18
|
-
httpAgent?: any;
|
|
19
|
-
httpsAgent?: any;
|
|
20
|
-
proxy?: AxiosProxyConfig | false;
|
|
21
|
-
validateStatus?: ((status: number) => boolean) | null;
|
|
22
|
-
};
|
|
23
|
-
export declare type CommonQueryOptions = {
|
|
24
|
-
http?: HttpRequestOptions;
|
|
25
|
-
};
|
|
26
|
-
export declare type ClientResponse<T = any> = {
|
|
27
|
-
status: number;
|
|
28
|
-
statusText: string;
|
|
29
|
-
rawHeaders: ResponseHeaders;
|
|
30
|
-
headers: ResponsiveMap<string, string | string[]>;
|
|
31
|
-
data?: T;
|
|
32
|
-
};
|
|
33
|
-
export declare type BatchClientResponse = (ClientResponse & {
|
|
34
|
-
id: string;
|
|
35
|
-
})[];
|
|
36
|
-
export interface OpraBatchRequestOptions {
|
|
37
|
-
}
|
|
1
|
+
import { AxiosAdapter, AxiosBasicCredentials, AxiosProxyConfig } from 'axios';
|
|
2
|
+
import { StrictOmit } from 'ts-gems';
|
|
3
|
+
import { HttpRequestConfig } from './interfaces/http-request-config.interface.js';
|
|
4
|
+
export declare type OPCAdapter = AxiosAdapter;
|
|
5
|
+
export declare type OPCProxyConfig = AxiosProxyConfig;
|
|
6
|
+
export declare type OPCBasicCredentials = AxiosBasicCredentials;
|
|
7
|
+
export declare type OPCHttpOptions = StrictOmit<HttpRequestConfig, 'method' | 'url' | 'body'>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opra/client",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Opra internationalization package",
|
|
5
5
|
"author": "Panates",
|
|
6
6
|
"license": "MIT",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"scripts": {
|
|
13
13
|
"compile": "tsc",
|
|
14
14
|
"prebuild": "npm run check && npm run lint && npm run clean",
|
|
15
|
-
"build": "npm run build:cjs && npm run build:esm",
|
|
15
|
+
"build": "npm run build:cjs && npm run build:esm && npm run bundle",
|
|
16
16
|
"build:cjs": "tsc -b tsconfig-build-cjs.json",
|
|
17
17
|
"build:esm": "tsc -b tsconfig-build-esm.json",
|
|
18
18
|
"postbuild": "cp README.md package.json ../../LICENSE ../../build/client && cp ../../package.cjs.json ../../build/client/cjs/package.json",
|
|
@@ -23,53 +23,55 @@
|
|
|
23
23
|
"clean": "npm run clean:src && npm run clean:dist && npm run clean:cover",
|
|
24
24
|
"clean:src": "ts-cleanup -s src --all",
|
|
25
25
|
"clean:dist": "rimraf ../../build/client",
|
|
26
|
-
"clean:cover": "rimraf ../../coverage/client"
|
|
26
|
+
"clean:cover": "rimraf ../../coverage/client",
|
|
27
|
+
"bundle": "webpack"
|
|
27
28
|
},
|
|
28
29
|
"dependencies": {
|
|
29
|
-
"@opra/
|
|
30
|
-
"@opra/exception": "^0.5.0",
|
|
31
|
-
"@opra/schema": "^0.5.0",
|
|
32
|
-
"axios": "^1.1.3",
|
|
33
|
-
"highland": "^2.13.5",
|
|
34
|
-
"power-tasks": "^1.5.0",
|
|
30
|
+
"@opra/common": "^0.7.0",
|
|
35
31
|
"putil-isplainobject": "^1.1.4",
|
|
36
|
-
"rxjs": "^7.
|
|
37
|
-
"ts-gems": "^2.3.0"
|
|
38
|
-
"uid": "^2.0.1"
|
|
32
|
+
"rxjs": "^7.6.0",
|
|
33
|
+
"ts-gems": "^2.3.0"
|
|
39
34
|
},
|
|
40
35
|
"devDependencies": {
|
|
41
|
-
"@types/lodash": "^4.14.186",
|
|
42
36
|
"@types/highland": "^2.12.14",
|
|
43
|
-
"
|
|
37
|
+
"@types/lodash": "^4.14.191",
|
|
38
|
+
"body-parser": "^1.20.1",
|
|
44
39
|
"express": "^4.18.2",
|
|
45
|
-
"
|
|
40
|
+
"stream-browserify": "^3.0.0"
|
|
46
41
|
},
|
|
47
42
|
"type": "module",
|
|
48
43
|
"types": "esm/index.d.ts",
|
|
49
44
|
"exports": {
|
|
50
45
|
".": {
|
|
51
|
-
"
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
46
|
+
"default": {
|
|
47
|
+
"default": "./esm/index.js",
|
|
48
|
+
"require": "./cjs/index.js"
|
|
49
|
+
},
|
|
50
|
+
"browser": {
|
|
51
|
+
"default": "./browser/opra-client.min.mjs",
|
|
52
|
+
"require": "./browser/opra-client.min.cjs"
|
|
53
|
+
}
|
|
54
|
+
}
|
|
56
55
|
},
|
|
56
|
+
"main": "./umd/opra-client.umd.min.js",
|
|
57
|
+
"unpkg": "./umd/opra-client.umd.min.js",
|
|
57
58
|
"engines": {
|
|
58
|
-
"node": ">=
|
|
59
|
+
"node": ">=18.0",
|
|
59
60
|
"npm": ">=7.0.0"
|
|
60
61
|
},
|
|
61
62
|
"files": [
|
|
62
63
|
"bin/",
|
|
63
64
|
"cjs/",
|
|
64
65
|
"esm/",
|
|
66
|
+
"umd/",
|
|
65
67
|
"LICENSE",
|
|
66
68
|
"README.md"
|
|
67
69
|
],
|
|
68
70
|
"keywords": [
|
|
69
71
|
"opra",
|
|
70
72
|
"client",
|
|
73
|
+
"http",
|
|
71
74
|
"request",
|
|
72
|
-
"axios",
|
|
73
75
|
"fetch"
|
|
74
76
|
]
|
|
75
77
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("@opra/common"),require("rxjs")):"function"==typeof define&&define.amd?define("OpraClient",["@opra/common","rxjs"],e):"object"==typeof exports?exports.OpraClient=e(require("@opra/common"),require("rxjs")):t.OpraClient=e(t["@opra/common"],t.rxjs)}(self,((t,e)=>(()=>{"use strict";var s={780:e=>{e.exports=t},832:t=>{t.exports=e}},r={};function i(t){var e=r[t];if(void 0!==e)return e.exports;var o=r[t]={exports:{}};return s[t](o,o.exports,i),o.exports}i.d=(t,e)=>{for(var s in e)i.o(e,s)&&!i.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var o={};return(()=>{i.r(o),i.d(o,{BatchRequest:()=>g,ClientError:()=>e,CollectionCreateRequest:()=>u,CollectionDeleteManyRequest:()=>p,CollectionDeleteRequest:()=>l,CollectionGetRequest:()=>d,CollectionSearchRequest:()=>m,CollectionUpdateManyRequest:()=>y,CollectionUpdateRequest:()=>_,HttpCollectionService:()=>f,HttpRequest:()=>h,HttpSingletonGetRequest:()=>w,HttpSingletonService:()=>b,OpraHttpClient:()=>R});var t=i(780);class e extends Error{cause;issues;status;constructor(t,e){super(t.message),this.cause=e,this.issues=t.issues||[],this.status=t.status,e&&(this.cause=e,e.stack&&(this.stack=e.stack))}}const s=/^application\/([\w-]+\+)?\bjson\b/i,r=/^text\/.*$/i,a=/^multipart\/\bform-data\b/i;var n=i(832);class h extends n.Observable{_handler;options;contentId;_promise;_headers;constructor(e,s={}){super((t=>{"response"!==s.observe?this.resolve().then((e=>{t.next(e),t.complete()})).catch((e=>t.error(e))):this.fetch().then((e=>{t.next(e),t.complete()})).catch((e=>t.error(e)))})),this._handler=e,this.options=s,this.contentId=(0,t.uid)(6),this.options=s}header(t,e){return this._headers=this._headers||{},this._headers[t]=e,this}async fetch(){const t=this._promise||(this._promise=new Promise(((t,e)=>{setTimeout((()=>{this._execute().then(t).catch(e)}),0)})));return await t}async resolve(){return(await this.fetch()).data}with(t){return t(this),this}binding(){return{}}async _execute(){const t=this.prepare();return await this._handler(t)}}function c(e,...s){let r;const i=[e,...s];let o;for(let e=i.length-1;e>=0;e--){const s=i[e];s?.headers&&(o=o||{},Object.assign(o,(0,t.normalizeHeaders)(s.headers)))}for(const s of i)s&&(Object.assign(e,s),s?.params&&(r=r||new t.OpraURLSearchParams,s.params.forEach(((t,e)=>r?.append(e,t)))));return e.headers=o,e.params=r,e}class u extends h{_handler;resource;data;options;constructor(t,e,s,r={}){super(t,r),this._handler=t,this.resource=e,this.data=s,this.options=r}prepare(){const e=new t.OpraURLSearchParams;return this.options.include&&e.set("$include",this.options.include),this.options.pick&&e.set("$pick",this.options.pick),this.options.omit&&e.set("$omit",this.options.omit),c({method:"POST",path:this.resource.name,params:e,body:this.data},this.options.http)}}class p extends h{_handler;resource;options;constructor(t,e,s={}){super(t,s),this._handler=t,this.resource=e,this.options=s}prepare(){const e=new t.OpraURLSearchParams;return this.options.filter&&e.set("$filter",this.options.filter),c({method:"DELETE",path:this.resource.name,params:e},this.options.http)}}class l extends h{_handler;resource;keyValue;options;constructor(t,e,s,r={}){super(t,r),this._handler=t,this.resource=e,this.keyValue=s,this.options=r}prepare(){if(null==this.keyValue||""===this.keyValue)throw new TypeError('Key value required to perform "delete" request');return c({method:"DELETE",path:new t.OpraURLPath({resource:this.resource.name,key:this.keyValue}).toString()},this.options.http)}}class d extends h{_handler;resource;keyValue;options;constructor(t,e,s,r={}){super(t,r),this._handler=t,this.resource=e,this.keyValue=s,this.options=r}prepare(){if(null==this.keyValue||""===this.keyValue)throw new TypeError('Key value required to perform "get" request');const e=new t.OpraURLPath({resource:this.resource.name,key:this.keyValue}),s=new t.OpraURLSearchParams;return this.options.include&&s.set("$include",this.options.include),this.options.pick&&s.set("$pick",this.options.pick),this.options.omit&&s.set("$omit",this.options.omit),c({method:"GET",path:e.toString(),params:s},this.options.http)}}class m extends h{_handler;resource;options;constructor(t,e,s={}){super(t,s),this._handler=t,this.resource=e,this.options=s}prepare(){const e=new t.OpraURLSearchParams;return this.options.include&&e.set("$include",this.options.include),this.options.pick&&e.set("$pick",this.options.pick),this.options.omit&&e.set("$omit",this.options.omit),this.options.sort&&e.set("$sort",this.options.sort),this.options.filter&&e.set("$filter",this.options.filter),null!=this.options.limit&&e.set("$limit",this.options.limit),null!=this.options.skip&&e.set("$skip",this.options.skip),null!=this.options.count&&e.set("$count",this.options.count),null!=this.options.distinct&&e.set("$distinct",this.options.distinct),c({method:"GET",path:this.resource.name,params:e},this.options.http)}}class y extends h{_handler;resource;data;options;constructor(t,e,s,r={}){super(t,r),this._handler=t,this.resource=e,this.data=s,this.options=r}prepare(){const e=new t.OpraURLSearchParams;return this.options.filter&&e.set("$filter",this.options.filter),c({method:"PATCH",path:this.resource.name,params:e,body:this.data},this.options.http)}}class _ extends h{_handler;resource;keyValue;data;options;constructor(t,e,s,r,i={}){super(t,i),this._handler=t,this.resource=e,this.keyValue=s,this.data=r,this.options=i}prepare(){if(null==this.keyValue||""===this.keyValue)throw new TypeError('Key value required to perform "get" request');const e=new t.OpraURLPath({resource:this.resource.name,key:this.keyValue}),s=new t.OpraURLSearchParams;return this.options.include&&s.set("$include",this.options.include),this.options.pick&&s.set("$pick",this.options.pick),this.options.omit&&s.set("$omit",this.options.omit),c({method:"PATCH",path:e.toString(),params:s,body:this.data},this.options.http)}}class f{resource;_handler;constructor(t,e){this.resource=t,this._handler=e}create(t,e){return new u(this._handler,this.resource,t,e)}delete(t,e){return new l(this._handler,this.resource,t,e)}deleteMany(t){return new p(this._handler,this.resource,t)}get(t,e){return new d(this._handler,this.resource,t,e)}search(t){return new m(this._handler,this.resource,t)}update(t,e,s){return new _(this._handler,this.resource,t,e,s)}updateMany(t,e){return new y(this._handler,this.resource,t,e)}}class w extends h{_handler;resource;options;constructor(t,e,s={}){super(t,s),this._handler=t,this.resource=e,this.options=s}prepare(){const t=new URLSearchParams;return this.options.include&&t.set("$include",""+this.options.include),this.options.pick&&t.set("$pick",""+this.options.pick),this.options.omit&&t.set("$omit",""+this.options.omit),c({method:"GET",path:this.resource.name,params:t},this.options.http)}}class b{resource;_handler;constructor(t,e){this.resource=t,this._handler=e}get(t){return new w(this._handler,this.resource,t)}}class g extends h{_handler;requests;options;_results=new WeakMap;_listeners=new Set;constructor(t,e,s={}){super(t,s),this._handler=t,this.requests=e,this.options=s,e.forEach((t=>{Object.defineProperty(t,"_execute",{writable:!0,enumerable:!1,configurable:!0,value:()=>new Promise(((e,s)=>{const r=this._results.get(t);if(r)return r.error?s(r.error):e(r.response);const i=(t,r)=>{if(this._listeners.delete(i),t)return s(t);e(r)};this._listeners.add(i)}))})}))}prepare(){const t=this._buildBatchMultipart(this);return c({method:"POST",path:"/$batch",headers:{"content-type":"multipart/mixed;boundary="+t.boundary},body:t.stream()},this.options.http)}_buildBatchMultipart(e){const s=new t.BatchMultipart;for(const t of e.requests){const e=t.prepare();if(t instanceof g){const e=this._buildBatchMultipart(t);s.addBatch(e)}else s.addRequestPart({method:e.method,url:e.path,headers:e.headers,data:e.body})}return s}async _execute(){const t=this.prepare();return await this._handler(t)}}const k=new Map,x=new Map;class R{_serviceUrl;_metadata;defaults;constructor(t,e){if(this._serviceUrl=t,this._metadata=e?.document,!this._metadata){const t=k.get(this.serviceUrl.toLowerCase());t&&(this._metadata=t)}this.defaults=e?.defaults||{}}get serviceUrl(){return this._serviceUrl}get initialized(){return!!this._metadata}get metadata(){return this._assertMetadata(),this._metadata}async init(t){if(!t&&this.initialized)return;const e=this.serviceUrl.toLowerCase();let s=x.get(e);if(!s)return s=this._resolveMetadata(),x.set(e,s),s.catch((()=>{})).finally((()=>x.delete(e)));await s}batch(t){return this._assertMetadata(),new g((t=>this._handleRequest(t)),t)}collection(t){this._assertMetadata(),"function"==typeof t&&(t=t.name);const e=this.metadata.getCollectionResource(t);return new f(e,(t=>this._handleRequest(t)))}singleton(t){this._assertMetadata(),"function"==typeof t&&(t=t.name);const e=this.metadata.getSingletonResource(t);return new b(e,(t=>this._handleRequest(t)))}async _resolveMetadata(){const e=await this._handleRequest({method:"GET",path:"/$metadata",headers:{accept:"application/json"}});this._metadata=new t.OpraDocument(e.data)}async _handleRequest(e){c(e,this.defaults);let s=(0,t.joinPath)(this.serviceUrl,e.path);return e.params&&(s+="?"+e.params.toString()),e.body&&"object"==typeof e.body&&((0,t.isReadable)(e.body)||(0,t.isReadableStream)(e.body)||Buffer.isBuffer(e.body)||(e.headers?.["content-type"]||(e.headers=e.headers||{},e.headers["content-type"]="application/json"),e.body=JSON.stringify(e.body))),this._fetch(s,e)}async _fetch(t,i){const o=await fetch(t,i);let n;if(o.body&&(s.test(o.headers.get("Content-Type")||"")?(n=await o.json(),"string"==typeof n&&(n=JSON.parse(n))):n=r.test(o.headers.get("Content-Type")||"")?await o.text():a.test(o.headers.get("Content-Type")||"")?await o.formData():await o.arrayBuffer()),o.status>=400&&o.status<600)throw new e({message:o.status+" "+o.statusText,status:o.status,issues:n?.errors});return{get headers(){return o.headers},get ok(){return o.ok},get redirected(){return o.redirected},get status(){return o.status},get statusText(){return o.statusText},get type(){return o.type},get url(){return o.url},get contentId(){return o.headers.get("Content-ID")},get data(){return n}}}_assertMetadata(){if(!this._metadata)throw new Error("You must call init() to before using the client instance")}static async create(t,e){const s=new this(t,e);return s._metadata||await s.init(),s}}})(),o})()));
|