typedrest 0.4.0 → 0.4.1
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/endpoints/Endpoint.js +6 -6
- package/endpoints/Endpoint.ts +5 -5
- package/endpoints/raw/UploadEndpoint.js +2 -3
- package/endpoints/raw/UploadEndpoint.test.ts +1 -4
- package/endpoints/raw/UploadEndpoint.ts +1 -2
- package/errors/DefaultErrorHandler.js +10 -4
- package/errors/DefaultErrorHandler.ts +8 -3
- package/jest.config.js +1 -1
- package/links/HeaderLinkExtractor.js +2 -2
- package/links/HeaderLinkExtractor.ts +1 -1
- package/package.json +7 -7
package/endpoints/Endpoint.js
CHANGED
|
@@ -37,16 +37,16 @@ class Endpoint {
|
|
|
37
37
|
if (referrer) {
|
|
38
38
|
this.uri = (typeof uri === "string") ? referrer.join(uri) : uri;
|
|
39
39
|
if (serializer)
|
|
40
|
-
throw new Error("serializer must not be specified if referrer is
|
|
40
|
+
throw new Error("serializer must not be specified if referrer is specified.");
|
|
41
41
|
this.serializer = referrer.serializer;
|
|
42
42
|
if (errorHandler)
|
|
43
|
-
throw new Error("errorHandler must not be specified if referrer is
|
|
43
|
+
throw new Error("errorHandler must not be specified if referrer is specified.");
|
|
44
44
|
this.errorHandler = referrer.errorHandler;
|
|
45
45
|
if (linkExtractor)
|
|
46
|
-
throw new Error("linkExtractor must not be specified if referrer is
|
|
46
|
+
throw new Error("linkExtractor must not be specified if referrer is specified.");
|
|
47
47
|
this.linkExtractor = referrer.linkExtractor;
|
|
48
48
|
if (httpClient)
|
|
49
|
-
throw new Error("httpClient must not be specified if referrer is
|
|
49
|
+
throw new Error("httpClient must not be specified if referrer is specified.");
|
|
50
50
|
this.httpClient = referrer.httpClient;
|
|
51
51
|
}
|
|
52
52
|
else {
|
|
@@ -77,7 +77,7 @@ class Endpoint {
|
|
|
77
77
|
*/
|
|
78
78
|
static ensureTrailingSlash(uri) {
|
|
79
79
|
let uriString = (typeof uri === "string") ? uri : uri.href;
|
|
80
|
-
if (uriString.
|
|
80
|
+
if (!uriString.endsWith("/"))
|
|
81
81
|
uriString += "/";
|
|
82
82
|
return new URL(uriString);
|
|
83
83
|
}
|
|
@@ -210,4 +210,4 @@ class Endpoint {
|
|
|
210
210
|
}
|
|
211
211
|
}
|
|
212
212
|
exports.Endpoint = Endpoint;
|
|
213
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW5kcG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJFbmRwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrQ0FBNkU7QUFFN0Usc0NBQXdEO0FBRXhELGdFQUFvQztBQUVwQyxNQUFhLFFBQVE7SUEwQmpCOzs7Ozs7OztPQVFHO0lBQ0gsWUFDSSxRQUE4QixFQUM5QixHQUFpQixFQUNqQixVQUF1QixFQUN2QixZQUEyQixFQUMzQixhQUE2QixFQUM3QixVQUF1QjtRQThFM0Isb0ZBQW9GO1FBQzVFLFVBQUssR0FBVyxFQUFFLENBQUM7UUFFM0IsNERBQTREO1FBQ3BELGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQWUsQ0FBQztRQUN0Qyx5QkFBb0IsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztRQTJGekQsb0ZBQW9GO1FBQzVFLG1CQUFjLEdBQWlCLEVBQUUsQ0FBQztRQTlLdEMsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ2hFLElBQUksVUFBVTtnQkFDVixNQUFNLElBQUksS0FBSyxDQUFDLDREQUE0RCxDQUFDLENBQUM7WUFDbEYsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDO1lBQ3RDLElBQUksWUFBWTtnQkFDWixNQUFNLElBQUksS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7WUFDcEYsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDO1lBQzFDLElBQUksYUFBYTtnQkFDYixNQUFNLElBQUksS0FBSyxDQUFDLCtEQUErRCxDQUFDLENBQUM7WUFDckYsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFD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
|
package/endpoints/Endpoint.ts
CHANGED
|
@@ -49,16 +49,16 @@ export class Endpoint {
|
|
|
49
49
|
if (referrer) {
|
|
50
50
|
this.uri = (typeof uri === "string") ? referrer.join(uri) : uri;
|
|
51
51
|
if (serializer)
|
|
52
|
-
throw new Error("serializer must not be specified if referrer is
|
|
52
|
+
throw new Error("serializer must not be specified if referrer is specified.");
|
|
53
53
|
this.serializer = referrer.serializer;
|
|
54
54
|
if (errorHandler)
|
|
55
|
-
throw new Error("errorHandler must not be specified if referrer is
|
|
55
|
+
throw new Error("errorHandler must not be specified if referrer is specified.");
|
|
56
56
|
this.errorHandler = referrer.errorHandler;
|
|
57
57
|
if (linkExtractor)
|
|
58
|
-
throw new Error("linkExtractor must not be specified if referrer is
|
|
58
|
+
throw new Error("linkExtractor must not be specified if referrer is specified.");
|
|
59
59
|
this.linkExtractor = referrer.linkExtractor;
|
|
60
60
|
if (httpClient)
|
|
61
|
-
throw new Error("httpClient must not be specified if referrer is
|
|
61
|
+
throw new Error("httpClient must not be specified if referrer is specified.");
|
|
62
62
|
this.httpClient = referrer.httpClient;
|
|
63
63
|
} else {
|
|
64
64
|
this.uri = (typeof uri === "string") ? new URL(uri) : uri;
|
|
@@ -92,7 +92,7 @@ export class Endpoint {
|
|
|
92
92
|
*/
|
|
93
93
|
protected static ensureTrailingSlash(uri: URL | string): URL {
|
|
94
94
|
let uriString = (typeof uri === "string") ? uri : uri.href;
|
|
95
|
-
if (uriString.
|
|
95
|
+
if (!uriString.endsWith("/"))
|
|
96
96
|
uriString += "/";
|
|
97
97
|
return new URL(uriString);
|
|
98
98
|
}
|
|
@@ -25,7 +25,6 @@ class UploadEndpoint extends Endpoint_1.Endpoint {
|
|
|
25
25
|
constructor(referrer, relativeUri, formField) {
|
|
26
26
|
super(referrer, relativeUri);
|
|
27
27
|
this.formField = formField;
|
|
28
|
-
this.formField = formField;
|
|
29
28
|
}
|
|
30
29
|
/**
|
|
31
30
|
* Uploads data to the endpoint.
|
|
@@ -43,7 +42,7 @@ class UploadEndpoint extends Endpoint_1.Endpoint {
|
|
|
43
42
|
if (this.formField) {
|
|
44
43
|
const formData = new FormData();
|
|
45
44
|
formData.set(this.formField, blob, fileName);
|
|
46
|
-
yield this.send(http_1.HttpMethod.Post, signal,
|
|
45
|
+
yield this.send(http_1.HttpMethod.Post, signal, undefined, formData);
|
|
47
46
|
}
|
|
48
47
|
else {
|
|
49
48
|
yield this.send(http_1.HttpMethod.Post, signal, { [http_1.HttpHeader.ContentType]: blob.type }, blob);
|
|
@@ -52,4 +51,4 @@ class UploadEndpoint extends Endpoint_1.Endpoint {
|
|
|
52
51
|
}
|
|
53
52
|
}
|
|
54
53
|
exports.UploadEndpoint = UploadEndpoint;
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXBsb2FkRW5kcG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJVcGxvYWRFbmRwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSwwQ0FBdUM7QUFDdkMscUNBQW9EO0FBRXBEOztHQUVHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsbUJBQVE7SUFDeEM7Ozs7O09BS0c7SUFDSCxZQUFZLFFBQWtCLEVBQUUsV0FBeUIsRUFBbUIsU0FBa0I7UUFDMUYsS0FBSyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUQyQyxjQUFTLEdBQVQsU0FBUyxDQUFTO0lBRTlGLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDRyxVQUFVLENBQUMsSUFBaUIsRUFBRSxNQUFvQjs7WUFDcEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBRTlELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNqQixNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNoQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUM3QyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQVUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNsRSxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsaUJBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDNUYsQ0FBQztRQUNMLENBQUM7S0FBQTtDQUNKO0FBaENELHdDQWdDQyJ9
|
|
@@ -32,10 +32,7 @@ test('uploadFromForm', async () => {
|
|
|
32
32
|
|
|
33
33
|
fetchMock.mockOnceIf(
|
|
34
34
|
req => req.method === HttpMethod.Post && req.url === 'http://localhost/endpoint',
|
|
35
|
-
async
|
|
36
|
-
expect(req.headers.get(HttpHeader.ContentType)).toBe('multipart/form-data');
|
|
37
|
-
return {};
|
|
38
|
-
}
|
|
35
|
+
async () => ({})
|
|
39
36
|
);
|
|
40
37
|
|
|
41
38
|
await endpoint.uploadFrom(file);
|
|
@@ -13,7 +13,6 @@ export class UploadEndpoint extends Endpoint {
|
|
|
13
13
|
*/
|
|
14
14
|
constructor(referrer: Endpoint, relativeUri: URL | string, private readonly formField?: string) {
|
|
15
15
|
super(referrer, relativeUri);
|
|
16
|
-
this.formField = formField;
|
|
17
16
|
}
|
|
18
17
|
|
|
19
18
|
/**
|
|
@@ -32,7 +31,7 @@ export class UploadEndpoint extends Endpoint {
|
|
|
32
31
|
if (this.formField) {
|
|
33
32
|
const formData = new FormData();
|
|
34
33
|
formData.set(this.formField, blob, fileName);
|
|
35
|
-
await this.send(HttpMethod.Post, signal,
|
|
34
|
+
await this.send(HttpMethod.Post, signal, undefined, formData);
|
|
36
35
|
} else {
|
|
37
36
|
await this.send(HttpMethod.Post, signal, { [HttpHeader.ContentType]: blob.type }, blob);
|
|
38
37
|
}
|
|
@@ -34,9 +34,15 @@ class DefaultErrorHandler {
|
|
|
34
34
|
if (response.ok)
|
|
35
35
|
return;
|
|
36
36
|
const contentType = response.headers.get(http_1.HttpHeader.ContentType);
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
let jsonBody;
|
|
38
|
+
if ((contentType === null || contentType === void 0 ? void 0 : contentType.startsWith("application/json")) || (contentType === null || contentType === void 0 ? void 0 : contentType.includes("+json"))) {
|
|
39
|
+
try {
|
|
40
|
+
jsonBody = yield response.json();
|
|
41
|
+
}
|
|
42
|
+
catch (_c) {
|
|
43
|
+
jsonBody = undefined;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
40
46
|
const errorType = DefaultErrorHandler.errorType(response.status);
|
|
41
47
|
throw new errorType((_b = (_a = jsonBody === null || jsonBody === void 0 ? void 0 : jsonBody.message) !== null && _a !== void 0 ? _a : jsonBody === null || jsonBody === void 0 ? void 0 : jsonBody.details) !== null && _b !== void 0 ? _b : `HTTP ${response.status} ${response.statusText}`, response.status, jsonBody);
|
|
42
48
|
});
|
|
@@ -64,4 +70,4 @@ class DefaultErrorHandler {
|
|
|
64
70
|
}
|
|
65
71
|
}
|
|
66
72
|
exports.DefaultErrorHandler = DefaultErrorHandler;
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdEVycm9ySGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkRlZmF1bHRFcnJvckhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQ0EscUNBQTZKO0FBQzdKLGtDQUFxRDtBQUVyRDs7R0FFRztBQUNILE1BQWEsbUJBQW1CO0lBQzVCOzs7Ozs7Ozs7OztPQVdHO0lBQ0csTUFBTSxDQUFDLFFBQWtCOzs7WUFDM0IsSUFBSSxRQUFRLENBQUMsRUFBRTtnQkFBRSxPQUFPO1lBRXhCLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDakUsSUFBSSxRQUFhLENBQUM7WUFDbEIsSUFBSSxDQUFBLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxVQUFVLENBQUMsa0JBQWtCLENBQUMsTUFBSSxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFBLEVBQUUsQ0FBQztnQkFDaEYsSUFBSSxDQUFDO29CQUNELFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDckMsQ0FBQztnQkFBQyxXQUFNLENBQUM7b0JBQ0wsUUFBUSxHQUFHLFNBQVMsQ0FBQztnQkFDekIsQ0FBQztZQUNMLENBQUM7WUFFRCxNQUFNLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2pFLE1BQU0sSUFBSSxTQUFTLENBQ2YsTUFBQSxNQUFBLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxPQUFPLG1DQUFJLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxPQUFPLG1DQUFJLFFBQVEsUUFBUSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsVUFBVSxFQUFFLEVBQzFGLFFBQVEsQ0FBQyxNQUFNLEVBQ2YsUUFBUSxDQUFDLENBQUM7UUFDbEIsQ0FBQztLQUFBO0lBRU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFzQjtRQUMzQyxRQUFRLE1BQU0sRUFBRSxDQUFDO1lBQ2IsS0FBSyxxQkFBYyxDQUFDLFVBQVU7Z0JBQzFCLE9BQU8sd0JBQWUsQ0FBQztZQUMzQixLQUFLLHFCQUFjLENBQUMsWUFBWTtnQkFDNUIsT0FBTyw0QkFBbUIsQ0FBQztZQUMvQixLQUFLLHFCQUFjLENBQUMsU0FBUztnQkFDekIsT0FBTywyQkFBa0IsQ0FBQztZQUM5QixLQUFLLHFCQUFjLENBQUMsUUFBUSxDQUFDO1lBQzdCLEtBQUsscUJBQWMsQ0FBQyxJQUFJO2dCQUNwQixPQUFPLHNCQUFhLENBQUM7WUFDekIsS0FBSyxxQkFBYyxDQUFDLGNBQWM7Z0JBQzlCLE9BQU8scUJBQVksQ0FBQztZQUN4QixLQUFLLHFCQUFjLENBQUMsUUFBUTtnQkFDeEIsT0FBTyxzQkFBYSxDQUFDO1lBQ3pCLEtBQUsscUJBQWMsQ0FBQyxrQkFBa0I7Z0JBQ2xDLE9BQU8seUJBQWdCLENBQUM7WUFDNUI7Z0JBQ0ksT0FBTyxrQkFBUyxDQUFDO1FBQ3pCLENBQUM7SUFDTCxDQUFDO0NBQ0o7QUF0REQsa0RBc0RDIn0=
|
|
@@ -22,9 +22,14 @@ export class DefaultErrorHandler implements ErrorHandler {
|
|
|
22
22
|
if (response.ok) return;
|
|
23
23
|
|
|
24
24
|
const contentType = response.headers.get(HttpHeader.ContentType);
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
let jsonBody: any;
|
|
26
|
+
if (contentType?.startsWith("application/json") || contentType?.includes("+json")) {
|
|
27
|
+
try {
|
|
28
|
+
jsonBody = await response.json();
|
|
29
|
+
} catch {
|
|
30
|
+
jsonBody = undefined;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
28
33
|
|
|
29
34
|
const errorType = DefaultErrorHandler.errorType(response.status);
|
|
30
35
|
throw new errorType(
|
package/jest.config.js
CHANGED
|
@@ -56,7 +56,7 @@ class HeaderLinkExtractor {
|
|
|
56
56
|
return (result.length === 2)
|
|
57
57
|
? {
|
|
58
58
|
left: result[0],
|
|
59
|
-
right: result[1] + str.
|
|
59
|
+
right: result[1] + str.slice(result.join(separator).length)
|
|
60
60
|
}
|
|
61
61
|
: {
|
|
62
62
|
left: result[0],
|
|
@@ -65,4 +65,4 @@ class HeaderLinkExtractor {
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
exports.HeaderLinkExtractor = HeaderLinkExtractor;
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVhZGVyTGlua0V4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkhlYWRlckxpbmtFeHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsaUNBQThCO0FBRTlCLGtDQUFxQztBQUVyQzs7R0FFRztBQUNILE1BQWEsbUJBQW1CO0lBQzVCOztPQUVHO0lBQ0csUUFBUSxDQUFDLFFBQWtCOzs7WUFDN0IsT0FBTyxNQUFBLE1BQUEsTUFBQSxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBVSxDQUFDLElBQUksQ0FBQywwQ0FDdEMsS0FBSyxDQUFDLHFHQUFxRyxDQUFDLDBDQUM1RyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLG1DQUNsQyxFQUFFLENBQUM7UUFDZCxDQUFDO0tBQUE7SUFFTyxTQUFTLENBQUMsS0FBYTs7UUFDM0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDckMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckMsSUFBSSxHQUF1QixDQUFDO1FBQzVCLElBQUksS0FBeUIsQ0FBQztRQUM5QixJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFFdEIsTUFBQSxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyw0RUFBNEUsQ0FBQywwQ0FBRSxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDN0csTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDMUMsSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDO2dCQUM1QixHQUFHLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztZQUMzQixDQUFDO2lCQUFNLElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDckMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7Z0JBQ3pCLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQy9DLEtBQUssR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNqRCxDQUFDO1lBQ0wsQ0FBQztpQkFBTSxJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUssV0FBVyxJQUFJLFVBQVUsQ0FBQyxLQUFLLEtBQUssTUFBTSxFQUFFLENBQUM7Z0JBQ3hFLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDckIsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEdBQUc7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUM7UUFDbkYsT0FBTyxJQUFJLFdBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU8sS0FBSyxDQUFDLEdBQVcsRUFBRSxTQUFpQjtRQUN4QyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN2QyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7WUFDeEIsQ0FBQyxDQUFDO2dCQUNFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUNmLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQzthQUM5RDtZQUNELENBQUMsQ0FBQztnQkFDRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDZixLQUFLLEVBQUUsRUFBRTthQUNaLENBQUM7SUFDVixDQUFDO0NBQ0o7QUFoREQsa0RBZ0RDIn0=
|
|
@@ -46,7 +46,7 @@ export class HeaderLinkExtractor implements LinkExtractor {
|
|
|
46
46
|
return (result.length === 2)
|
|
47
47
|
? {
|
|
48
48
|
left: result[0],
|
|
49
|
-
right: result[1] + str.
|
|
49
|
+
right: result[1] + str.slice(result.join(separator).length)
|
|
50
50
|
}
|
|
51
51
|
: {
|
|
52
52
|
left: result[0],
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "typedrest",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"author": "Bastian Eicher",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "TypedRest helps you build type-safe fluent-style REST API clients.",
|
|
@@ -28,15 +28,15 @@
|
|
|
28
28
|
"docs": "typedoc"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@types/node": "24.
|
|
31
|
+
"@types/node": "24.12.2",
|
|
32
32
|
"@types/jest": "30.0.0",
|
|
33
33
|
"@types/url-template": "2.0.31",
|
|
34
|
-
"jest": "30.
|
|
35
|
-
"jest-environment-jsdom": "30.
|
|
34
|
+
"jest": "30.3.0",
|
|
35
|
+
"jest-environment-jsdom": "30.3.0",
|
|
36
36
|
"jest-fetch-mock": "3.0.3",
|
|
37
|
-
"ts-jest": "29.4.
|
|
38
|
-
"typedoc": "0.28.
|
|
39
|
-
"typescript": "
|
|
37
|
+
"ts-jest": "29.4.9",
|
|
38
|
+
"typedoc": "0.28.19",
|
|
39
|
+
"typescript": "6.0.3"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"url-template": "^2.0.8"
|