typedrest 0.6.0 → 0.6.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.
|
@@ -27,6 +27,7 @@ export declare class ETagEndpointBase extends Endpoint implements CachingEndpoin
|
|
|
27
27
|
protected getContent(signal?: AbortSignal): Promise<string>;
|
|
28
28
|
/**
|
|
29
29
|
* Performs an {@link http!HttpMethod.Put} request on the {@link uri}. Sets {@link http!HttpHeader.IfMatch} if there is a cached {@link http!HttpHeader.ETag} to detect lost updates.
|
|
30
|
+
* Caches the response if the server sends an {@link http!HttpHeader.ETag}, so later requests can be conditional without reading the resource again.
|
|
30
31
|
* @param signal Used to cancel the request.
|
|
31
32
|
* @throws {@link errors!ConcurrencyError}: The entity has changed since it was last retrieved with {@link getContent}. Your changes were rejected to prevent a lost update.
|
|
32
33
|
* @throws {@link errors!BadRequestError}: {@link http!HttpStatusCode.BadRequest}
|
|
@@ -38,6 +38,7 @@ class ETagEndpointBase extends Endpoint_1.Endpoint {
|
|
|
38
38
|
}
|
|
39
39
|
/**
|
|
40
40
|
* Performs an {@link http!HttpMethod.Put} request on the {@link uri}. Sets {@link http!HttpHeader.IfMatch} if there is a cached {@link http!HttpHeader.ETag} to detect lost updates.
|
|
41
|
+
* Caches the response if the server sends an {@link http!HttpHeader.ETag}, so later requests can be conditional without reading the resource again.
|
|
41
42
|
* @param signal Used to cancel the request.
|
|
42
43
|
* @throws {@link errors!ConcurrencyError}: The entity has changed since it was last retrieved with {@link getContent}. Your changes were rejected to prevent a lost update.
|
|
43
44
|
* @throws {@link errors!BadRequestError}: {@link http!HttpStatusCode.BadRequest}
|
|
@@ -47,13 +48,24 @@ class ETagEndpointBase extends Endpoint_1.Endpoint {
|
|
|
47
48
|
* @throws {@link errors!HttpError}: Other non-success status code
|
|
48
49
|
*/
|
|
49
50
|
async putContent(content, signal) {
|
|
50
|
-
var _a;
|
|
51
|
+
var _a, _b;
|
|
52
|
+
const contentType = this.serializer.supportedMediaTypes[0];
|
|
51
53
|
const headers = new Headers();
|
|
52
|
-
headers.append(http_1.HttpHeader.ContentType,
|
|
54
|
+
headers.append(http_1.HttpHeader.ContentType, contentType);
|
|
53
55
|
if ((_a = this.responseCache) === null || _a === void 0 ? void 0 : _a.eTag)
|
|
54
56
|
headers.append(http_1.HttpHeader.IfMatch, this.responseCache.eTag);
|
|
55
57
|
this.responseCache = undefined;
|
|
56
|
-
|
|
58
|
+
const body = this.serializer.serialize(content);
|
|
59
|
+
const response = await this.send(http_1.HttpMethod.Put, signal, headers, body);
|
|
60
|
+
const eTag = response.headers.get(http_1.HttpHeader.ETag);
|
|
61
|
+
if (eTag) {
|
|
62
|
+
// Cache the response body if there is one. Otherwise cache the request body, since the ETag in a PUT response describes the representation that was sent (RFC 9110, section 9.3.4).
|
|
63
|
+
const responseBody = await response.clone().text();
|
|
64
|
+
this.responseCache = responseBody
|
|
65
|
+
? new http_1.ResponseCache(responseBody, (_b = response.headers.get(http_1.HttpHeader.ContentType)) !== null && _b !== void 0 ? _b : undefined, eTag)
|
|
66
|
+
: new http_1.ResponseCache(body, contentType, eTag);
|
|
67
|
+
}
|
|
68
|
+
return response;
|
|
57
69
|
}
|
|
58
70
|
/**
|
|
59
71
|
* Performs an {@link http!HttpMethod.Delete} request on the {@link uri}. Sets {@link http!HttpHeader.IfMatch} if there is a cached {@link http!HttpHeader.ETag} to detect lost updates.
|
|
@@ -75,4 +87,4 @@ class ETagEndpointBase extends Endpoint_1.Endpoint {
|
|
|
75
87
|
}
|
|
76
88
|
}
|
|
77
89
|
exports.ETagEndpointBase = ETagEndpointBase;
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRVRhZ0VuZHBvaW50QmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVUYWdFbmRwb2ludEJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMENBQXVDO0FBRXZDLHFDQUFtRjtBQUVuRjs7R0FFRztBQUNILE1BQWEsZ0JBQWlCLFNBQVEsbUJBQVE7SUFDMUM7Ozs7T0FJRztJQUNILFlBQVksUUFBa0IsRUFBRSxXQUF5QjtRQUNyRCxLQUFLLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFPRDs7Ozs7Ozs7T0FRRztJQUNPLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBb0I7O1FBQzNDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDOUIsSUFBSSxNQUFBLElBQUksQ0FBQyxhQUFhLDBDQUFFLElBQUk7WUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLGlCQUFVLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFOUYsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLGlCQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3BHLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxxQkFBYyxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsYUFBYSwwQ0FBRSxPQUFPLENBQUEsRUFBRSxDQUFDO1lBQ2pGLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sb0JBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDTyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQVksRUFBRSxNQUFvQjs7UUFDekQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRCxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzlCLE9BQU8sQ0FBQyxNQUFNLENBQUMsaUJBQVUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUE7UUFDbkQsSUFBSSxNQUFBLElBQUksQ0FBQyxhQUFhLDBDQUFFLElBQUk7WUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLGlCQUFVLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFMUYsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7UUFDL0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFeEUsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuRCxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1Asb0xBQW9MO1lBQ3BMLE1BQU0sWUFBWSxHQUFHLE1BQU0sUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWTtnQkFDN0IsQ0FBQyxDQUFDLElBQUksb0JBQWEsQ0FBQyxZQUFZLEVBQUUsTUFBQSxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBVSxDQUFDLFdBQVcsQ0FBQyxtQ0FBSSxTQUFTLEVBQUUsSUFBSSxDQUFDO2dCQUNsRyxDQUFDLENBQUMsSUFBSSxvQkFBYSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDTyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQW9COztRQUM5QyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzlCLElBQUksTUFBQSxJQUFJLENBQUMsYUFBYSwwQ0FBRSxJQUFJO1lBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxpQkFBVSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTFGLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO1FBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDekQsQ0FBQztDQUNKO0FBdkZELDRDQXVGQyJ9
|