@utiliread/http 1.17.3 → 1.17.4

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.
Files changed (143) hide show
  1. package/dist/cjs/event-aggregator.js +30 -0
  2. package/dist/cjs/event-aggregator.js.map +1 -0
  3. package/dist/cjs/events.js +19 -0
  4. package/dist/cjs/events.js.map +1 -0
  5. package/dist/cjs/helpers.js +16 -0
  6. package/dist/cjs/helpers.js.map +1 -0
  7. package/dist/cjs/http-builder.js +192 -0
  8. package/dist/cjs/http-builder.js.map +1 -0
  9. package/dist/cjs/http-error.js +30 -0
  10. package/dist/cjs/http-error.js.map +1 -0
  11. package/dist/cjs/http-response.js +51 -0
  12. package/dist/cjs/http-response.js.map +1 -0
  13. package/dist/cjs/http.js +96 -0
  14. package/dist/cjs/http.js.map +1 -0
  15. package/dist/cjs/http.spec.js +69 -0
  16. package/dist/cjs/http.spec.js.map +1 -0
  17. package/dist/cjs/index.js +38 -0
  18. package/dist/cjs/index.js.map +1 -0
  19. package/dist/cjs/json/index.js +74 -0
  20. package/dist/cjs/json/index.js.map +1 -0
  21. package/dist/cjs/jsonpatch/index.js +15 -0
  22. package/dist/cjs/jsonpatch/index.js.map +1 -0
  23. package/dist/cjs/mapping.js +37 -0
  24. package/dist/cjs/mapping.js.map +1 -0
  25. package/dist/cjs/msgpack/index.js +35 -0
  26. package/dist/cjs/msgpack/index.js.map +1 -0
  27. package/dist/cjs/pagination.js +3 -0
  28. package/dist/cjs/pagination.js.map +1 -0
  29. package/dist/cjs/problem-details.js +3 -0
  30. package/dist/cjs/problem-details.js.map +1 -0
  31. package/dist/cjs/query-string.js +66 -0
  32. package/dist/cjs/query-string.js.map +1 -0
  33. package/dist/cjs/query-string.spec.js +52 -0
  34. package/dist/cjs/query-string.spec.js.map +1 -0
  35. package/dist/cjs/status-codes.js +71 -0
  36. package/dist/cjs/status-codes.js.map +1 -0
  37. package/dist/cjs/timeout-error.js +14 -0
  38. package/dist/cjs/timeout-error.js.map +1 -0
  39. package/dist/esm/event-aggregator.d.ts +11 -0
  40. package/dist/esm/event-aggregator.js +26 -0
  41. package/dist/esm/event-aggregator.js.map +1 -0
  42. package/dist/esm/events.d.ts +11 -0
  43. package/dist/esm/events.js +15 -0
  44. package/dist/esm/events.js.map +1 -0
  45. package/dist/esm/helpers.d.ts +5 -0
  46. package/dist/esm/helpers.js +10 -0
  47. package/dist/esm/helpers.js.map +1 -0
  48. package/dist/esm/http-builder.d.ts +60 -0
  49. package/dist/esm/http-builder.js +187 -0
  50. package/dist/esm/http-builder.js.map +1 -0
  51. package/dist/esm/http-error.d.ts +10 -0
  52. package/dist/esm/http-error.js +26 -0
  53. package/dist/esm/http-error.js.map +1 -0
  54. package/dist/esm/http-response.d.ts +18 -0
  55. package/dist/esm/http-response.js +46 -0
  56. package/dist/esm/http-response.js.map +1 -0
  57. package/dist/esm/http.d.ts +33 -0
  58. package/dist/esm/http.js +92 -0
  59. package/dist/esm/http.js.map +1 -0
  60. package/dist/esm/http.spec.d.ts +1 -0
  61. package/dist/esm/http.spec.js +67 -0
  62. package/dist/esm/http.spec.js.map +1 -0
  63. package/dist/esm/index.d.ts +15 -0
  64. package/dist/esm/index.js +11 -0
  65. package/dist/esm/index.js.map +1 -0
  66. package/dist/esm/json/index.d.ts +15 -0
  67. package/dist/esm/json/index.js +72 -0
  68. package/dist/esm/json/index.js.map +1 -0
  69. package/dist/{jsonpatch.d.ts → esm/jsonpatch/index.d.ts} +9 -10
  70. package/dist/esm/jsonpatch/index.js +13 -0
  71. package/dist/esm/jsonpatch/index.js.map +1 -0
  72. package/dist/esm/mapping.d.ts +9 -0
  73. package/dist/esm/mapping.js +32 -0
  74. package/dist/esm/mapping.js.map +1 -0
  75. package/dist/esm/msgpack/index.d.ts +8 -0
  76. package/dist/esm/msgpack/index.js +33 -0
  77. package/dist/esm/msgpack/index.js.map +1 -0
  78. package/dist/esm/pagination.d.ts +23 -0
  79. package/dist/esm/pagination.js +2 -0
  80. package/dist/esm/pagination.js.map +1 -0
  81. package/dist/esm/problem-details.d.ts +7 -0
  82. package/dist/esm/problem-details.js +2 -0
  83. package/dist/esm/problem-details.js.map +1 -0
  84. package/dist/esm/query-string.d.ts +6 -0
  85. package/dist/esm/query-string.js +62 -0
  86. package/dist/esm/query-string.js.map +1 -0
  87. package/dist/esm/query-string.spec.d.ts +1 -0
  88. package/dist/esm/query-string.spec.js +50 -0
  89. package/dist/esm/query-string.spec.js.map +1 -0
  90. package/dist/esm/status-codes.d.ts +67 -0
  91. package/dist/esm/status-codes.js +68 -0
  92. package/dist/esm/status-codes.js.map +1 -0
  93. package/dist/esm/timeout-error.d.ts +3 -0
  94. package/dist/esm/timeout-error.js +10 -0
  95. package/dist/esm/timeout-error.js.map +1 -0
  96. package/json.d.ts +1 -1
  97. package/jsonpatch.d.ts +1 -1
  98. package/msgpack.d.ts +1 -1
  99. package/package.json +12 -19
  100. package/plugins/json/src/index.ts +17 -19
  101. package/plugins/json/tsconfig.cjs.json +8 -0
  102. package/plugins/json/tsconfig.json +4 -2
  103. package/plugins/jsonpatch/tsconfig.cjs.json +8 -0
  104. package/plugins/jsonpatch/tsconfig.json +4 -2
  105. package/plugins/msgpack/src/index.ts +12 -13
  106. package/plugins/msgpack/tsconfig.cjs.json +8 -0
  107. package/plugins/msgpack/tsconfig.json +4 -2
  108. package/src/index.ts +1 -1
  109. package/src/mapping.d.ts +9 -0
  110. package/src/mapping.js +32 -0
  111. package/src/mapping.js.map +1 -0
  112. package/tsconfig.cjs.json +8 -0
  113. package/tsconfig.json +13 -3
  114. package/dist/index.d.ts +0 -227
  115. package/dist/index.d.ts.map +0 -1
  116. package/dist/index.js +0 -534
  117. package/dist/index.js.map +0 -1
  118. package/dist/index.mjs +0 -507
  119. package/dist/index.mjs.map +0 -1
  120. package/dist/json.d.ts +0 -15
  121. package/dist/json.d.ts.map +0 -1
  122. package/dist/json.js +0 -100
  123. package/dist/json.js.map +0 -1
  124. package/dist/json.mjs +0 -100
  125. package/dist/json.mjs.map +0 -1
  126. package/dist/jsonpatch.d.ts.map +0 -1
  127. package/dist/jsonpatch.js +0 -18
  128. package/dist/jsonpatch.js.map +0 -1
  129. package/dist/jsonpatch.mjs +0 -18
  130. package/dist/jsonpatch.mjs.map +0 -1
  131. package/dist/msgpack.d.ts +0 -9
  132. package/dist/msgpack.d.ts.map +0 -1
  133. package/dist/msgpack.js +0 -62
  134. package/dist/msgpack.js.map +0 -1
  135. package/dist/msgpack.mjs +0 -62
  136. package/dist/msgpack.mjs.map +0 -1
  137. package/plugins/json/package-lock.json +0 -145
  138. package/plugins/json/package.json +0 -11
  139. package/plugins/jsonpatch/package-lock.json +0 -124
  140. package/plugins/jsonpatch/package.json +0 -13
  141. package/plugins/msgpack/package-lock.json +0 -134
  142. package/plugins/msgpack/package.json +0 -12
  143. package/tsconfig.test.json +0 -7
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EventAggregator = void 0;
4
+ class EventAggregator {
5
+ constructor() {
6
+ this.callbacks = [];
7
+ }
8
+ get any() {
9
+ return this.callbacks.length > 0;
10
+ }
11
+ subscribe(callback) {
12
+ this.callbacks.push(callback);
13
+ return {
14
+ dispose: () => {
15
+ const index = this.callbacks.indexOf(callback);
16
+ if (index >= 0) {
17
+ this.callbacks.splice(index, 1);
18
+ }
19
+ }
20
+ };
21
+ }
22
+ async publish(...params) {
23
+ const callbacks = this.callbacks.slice();
24
+ for (const callback of callbacks) {
25
+ await Promise.resolve(callback.apply(this, params));
26
+ }
27
+ }
28
+ }
29
+ exports.EventAggregator = EventAggregator;
30
+ //# sourceMappingURL=event-aggregator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-aggregator.js","sourceRoot":"","sources":["../../src/event-aggregator.ts"],"names":[],"mappings":";;;AAEA,MAAa,eAAe;IAA5B;QACY,cAAS,GAAe,EAAE,CAAC;IAwBvC,CAAC;IAtBG,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,SAAS,CAAC,QAAqB;QAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO;YACH,OAAO,EAAE,GAAG,EAAE;gBACV,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC/C,IAAI,KAAK,IAAI,CAAC,EAAE;oBACZ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;iBACnC;YACL,CAAC;SACJ,CAAA;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAG,MAAS;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACzC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAC9B,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;SACvD;IACL,CAAC;CACJ;AAzBD,0CAyBC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.events = void 0;
4
+ const http_builder_1 = require("./http-builder");
5
+ function events(action, configure) {
6
+ return function (...params) {
7
+ const builder = action(...params);
8
+ const events = configure(...params);
9
+ if (events.sent) {
10
+ builder.onSent(events.sent);
11
+ }
12
+ if (builder instanceof http_builder_1.HttpBuilderOfT && events.received) {
13
+ builder.onReceived(events.received);
14
+ }
15
+ return builder;
16
+ };
17
+ }
18
+ exports.events = events;
19
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":";;;AAAA,iDAAsE;AAuBtE,SAAgB,MAAM,CACpB,MAA2B,EAC3B,SAAkD;IAElD,OAAO,UAAU,GAAG,MAAS;QAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC;QACpC,IAAI,MAAM,CAAC,IAAI,EAAE;YACf,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC7B;QACD,IAAI,OAAO,YAAY,6BAAc,IAAI,MAAM,CAAC,QAAQ,EAAE;YACxD,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SACrC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;AACJ,CAAC;AAfD,wBAeC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isTimeoutError = exports.isAbortError = exports.isHttpError = void 0;
4
+ function isHttpError(error) {
5
+ return error.name === "HttpError";
6
+ }
7
+ exports.isHttpError = isHttpError;
8
+ function isAbortError(error) {
9
+ return error.name === "AbortError";
10
+ }
11
+ exports.isAbortError = isAbortError;
12
+ function isTimeoutError(error) {
13
+ return error.name === "TimeoutError";
14
+ }
15
+ exports.isTimeoutError = isTimeoutError;
16
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":";;;AAGA,SAAgB,WAAW,CAAC,KAAY;IACpC,OAAO,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC;AACtC,CAAC;AAFD,kCAEC;AAED,SAAgB,YAAY,CAAC,KAAY;IACrC,OAAO,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC;AACvC,CAAC;AAFD,oCAEC;AAED,SAAgB,cAAc,CAAC,KAAY;IACvC,OAAO,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC;AACzC,CAAC;AAFD,wCAEC"}
@@ -0,0 +1,192 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HttpBuilderOfT = exports.HttpBuilder = void 0;
4
+ const http_response_1 = require("./http-response");
5
+ const timeout_error_1 = require("./timeout-error");
6
+ const event_aggregator_1 = require("./event-aggregator");
7
+ class HttpBuilder {
8
+ constructor(message, options, /** @internal */ http) {
9
+ this.message = message;
10
+ this.options = options;
11
+ this.http = http;
12
+ this._ensureSuccessStatusCode = true;
13
+ this._onSend = new event_aggregator_1.EventAggregator();
14
+ this._onSent = new event_aggregator_1.EventAggregator();
15
+ }
16
+ onSend(callback) {
17
+ this._onSend.subscribe(callback);
18
+ return this;
19
+ }
20
+ onSent(callback) {
21
+ this._onSent.subscribe(callback);
22
+ return this;
23
+ }
24
+ useHandler(handler) {
25
+ return new HttpBuilderOfT(this, handler);
26
+ }
27
+ async send(abortSignal) {
28
+ if (this.message.contentType) {
29
+ this.message.headers.set('Content-Type', this.message.contentType);
30
+ }
31
+ // Resolve the final url and assign it to the message
32
+ // This makes the final url apper in onSend, onSent, and on Received handlers
33
+ this.message.url = this.getUrl();
34
+ await this._onSend.publish(this.message);
35
+ await this.http._onSend.publish(this.message);
36
+ const init = {
37
+ method: this.message.method,
38
+ body: this.message.content,
39
+ headers: this.message.headers,
40
+ mode: this.message.mode
41
+ };
42
+ if (abortSignal || this.options.timeout) {
43
+ var outerController = new AbortController();
44
+ if (abortSignal) {
45
+ abortSignal.addEventListener("abort", () => {
46
+ outerController.abort();
47
+ });
48
+ }
49
+ init.signal = outerController.signal;
50
+ }
51
+ const fetchResponsePromise = this.options.fetch(this.message.url, init);
52
+ let fetchResponse;
53
+ if (this.options.timeout) {
54
+ fetchResponse = await Promise.race([
55
+ fetchResponsePromise,
56
+ new Promise((_, reject) => setTimeout(() => {
57
+ outerController.abort();
58
+ reject(new timeout_error_1.TimeoutError());
59
+ }, this.options.timeout))
60
+ ]);
61
+ }
62
+ else {
63
+ fetchResponse = await fetchResponsePromise;
64
+ }
65
+ const httpResponse = new http_response_1.HttpResponse(fetchResponse);
66
+ if (this._ensureSuccessStatusCode) {
67
+ httpResponse.ensureSuccessfulStatusCode();
68
+ }
69
+ await this._onSent.publish(httpResponse, this.message);
70
+ await this.http._onSent.publish(httpResponse, this.message);
71
+ return httpResponse;
72
+ }
73
+ getUrl() {
74
+ let baseUrl = this.options.baseUrl;
75
+ if (!baseUrl) {
76
+ return this.message.url;
77
+ }
78
+ if (baseUrl.endsWith('/')) {
79
+ baseUrl = baseUrl.substr(0, baseUrl.length - 1);
80
+ }
81
+ if (this.message.url.startsWith('/')) {
82
+ return baseUrl + this.message.url;
83
+ }
84
+ else {
85
+ return baseUrl + '/' + this.message.url;
86
+ }
87
+ }
88
+ ensureSuccessStatusCode(ensureSuccessStatusCode) {
89
+ this._ensureSuccessStatusCode = ensureSuccessStatusCode === false ? false : true;
90
+ return this;
91
+ }
92
+ useCors(mode) {
93
+ this.message.mode = mode;
94
+ return this;
95
+ }
96
+ useTimeout(timeout) {
97
+ this.options.timeout = timeout || undefined;
98
+ return this;
99
+ }
100
+ // Content Extensions
101
+ with(content, contentType) {
102
+ this.message.content = content;
103
+ this.message.contentType = contentType;
104
+ return this;
105
+ }
106
+ withForm(content) {
107
+ this.message.content = content;
108
+ this.message.contentType = undefined;
109
+ return this;
110
+ }
111
+ // Modifier Extensions
112
+ addHeader(name, value) {
113
+ this.message.headers.append(name, value);
114
+ return this;
115
+ }
116
+ // Expect Extensions
117
+ expectString() {
118
+ return this.useHandler(response => {
119
+ return response.rawResponse.text();
120
+ });
121
+ }
122
+ expectBinary() {
123
+ return this.useHandler(response => {
124
+ return response.rawResponse.arrayBuffer();
125
+ });
126
+ }
127
+ }
128
+ exports.HttpBuilder = HttpBuilder;
129
+ class HttpBuilderOfT extends HttpBuilder {
130
+ constructor(inner, handler) {
131
+ super(inner.message, inner.options, inner.http);
132
+ this.inner = inner;
133
+ this.handler = handler;
134
+ this._onReceived = new event_aggregator_1.EventAggregator();
135
+ }
136
+ onSend(callback) {
137
+ this.inner.onSend(callback);
138
+ return this;
139
+ }
140
+ onSent(callback) {
141
+ this.inner.onSent(callback);
142
+ return this;
143
+ }
144
+ ensureSuccessStatusCode(ensureSuccessStatusCode) {
145
+ this.inner.ensureSuccessStatusCode(ensureSuccessStatusCode);
146
+ return this;
147
+ }
148
+ useCors(mode) {
149
+ this.inner.useCors(mode);
150
+ return this;
151
+ }
152
+ useTimeout(timeout) {
153
+ this.inner.useTimeout(timeout);
154
+ return this;
155
+ }
156
+ allowEmptyResponse() {
157
+ if (this._onReceived.any) {
158
+ throw new Error("onReceived() must be called after allowEmptyResponse() because the callback type changes");
159
+ }
160
+ return new HttpBuilderOfT(this.inner, response => {
161
+ if (response.statusCode === 204) {
162
+ return Promise.resolve(null);
163
+ }
164
+ return this.handler(response);
165
+ });
166
+ }
167
+ onReceived(callback) {
168
+ this._onReceived.subscribe(callback);
169
+ return this;
170
+ }
171
+ send(abortSignal) {
172
+ const responsePromise = this.inner.send(abortSignal).then(x => new http_response_1.HttpResponseOfT(x.rawResponse, this.handler));
173
+ return asSendPromise(responsePromise, () => responsePromise.then(response => this.handleReceive(response)));
174
+ }
175
+ transfer(abortSignal) {
176
+ return this.send(abortSignal).then(response => this.handleReceive(response));
177
+ }
178
+ async handleReceive(response) {
179
+ const request = this.message;
180
+ const value = await response.receive();
181
+ await this._onReceived.publish(response, request, value);
182
+ await this.http._onReceived.publish(response, request, value);
183
+ return value;
184
+ }
185
+ }
186
+ exports.HttpBuilderOfT = HttpBuilderOfT;
187
+ function asSendPromise(responsePromise, thenReceive) {
188
+ const sendPromise = responsePromise;
189
+ sendPromise.thenReceive = thenReceive;
190
+ return sendPromise;
191
+ }
192
+ //# sourceMappingURL=http-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-builder.js","sourceRoot":"","sources":["../../src/http-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HttpError = void 0;
4
+ class HttpError extends Error {
5
+ constructor(statusCode, response = undefined) {
6
+ super(`The response was not successful: ${statusCode}`);
7
+ this.statusCode = statusCode;
8
+ this.response = response;
9
+ this.name = 'HttpError';
10
+ // Set the prototype explicitly to allow for "... instanceof HttpError",
11
+ // see https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work
12
+ Object.setPrototypeOf(this, HttpError.prototype);
13
+ }
14
+ get hasDetails() {
15
+ var _a, _b;
16
+ const contentType = (_b = (_a = this.response) === null || _a === void 0 ? void 0 : _a.rawResponse) === null || _b === void 0 ? void 0 : _b.headers.get("Content-Type");
17
+ return contentType === null || contentType === void 0 ? void 0 : contentType.includes("application/problem+json");
18
+ }
19
+ details() {
20
+ var _a, _b;
21
+ const rawResponse = (_a = this.response) === null || _a === void 0 ? void 0 : _a.rawResponse;
22
+ if (rawResponse && this.hasDetails) {
23
+ (_b = this.detailsPromise) !== null && _b !== void 0 ? _b : (this.detailsPromise = rawResponse.json().then(details => details));
24
+ return this.detailsPromise.then(details => details);
25
+ }
26
+ return Promise.reject(new Error("There are no problem details in the response"));
27
+ }
28
+ }
29
+ exports.HttpError = HttpError;
30
+ //# sourceMappingURL=http-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-error.js","sourceRoot":"","sources":["../../src/http-error.ts"],"names":[],"mappings":";;;AAGA,MAAa,SAAU,SAAQ,KAAK;IAQhC,YAAmB,UAAkB,EAAU,WAAqC,SAAS;QACzF,KAAK,CAAC,oCAAoC,UAAU,EAAE,CAAC,CAAC;QADzC,eAAU,GAAV,UAAU,CAAQ;QAAU,aAAQ,GAAR,QAAQ,CAAsC;QAEzF,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QAExB,wEAAwE;QACxE,mJAAmJ;QACnJ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;IAZD,IAAI,UAAU;;QACV,MAAM,WAAW,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,WAAW,0CAAE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5E,OAAO,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,CAAC,0BAA0B,CAAC,CAAC;IAC7D,CAAC;IAWD,OAAO;;QACH,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,QAAQ,0CAAE,WAAW,CAAC;QAE/C,IAAI,WAAW,IAAI,IAAI,CAAC,UAAU,EAAE;YAChC,MAAA,IAAI,CAAC,cAAc,oCAAnB,IAAI,CAAC,cAAc,GAAK,WAAW,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAiB,OAAO,CAAC,EAAC;YACpF,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAW,OAAO,CAAC,CAAC;SACjE;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC,CAAC;IACrF,CAAC;CACJ;AA3BD,8BA2BC"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HttpResponseOfT = exports.HttpResponse = void 0;
4
+ const http_error_1 = require("./http-error");
5
+ class HttpResponse {
6
+ constructor(rawResponse) {
7
+ this.rawResponse = rawResponse;
8
+ }
9
+ get url() {
10
+ return this.rawResponse.url;
11
+ }
12
+ get statusCode() {
13
+ return this.rawResponse.status;
14
+ }
15
+ get headers() {
16
+ return this.rawResponse.headers;
17
+ }
18
+ get isInformational() {
19
+ return this.statusCode >= 100 && this.statusCode < 200;
20
+ }
21
+ get isSuccessful() {
22
+ return this.statusCode >= 200 && this.statusCode < 300;
23
+ }
24
+ get isRedirection() {
25
+ return this.statusCode >= 300 && this.statusCode < 400;
26
+ }
27
+ get isClientError() {
28
+ return this.statusCode >= 400 && this.statusCode < 500;
29
+ }
30
+ get isServerError() {
31
+ return this.statusCode >= 500 && this.statusCode < 600;
32
+ }
33
+ ensureSuccessfulStatusCode() {
34
+ if (!this.isSuccessful) {
35
+ throw new http_error_1.HttpError(this.statusCode, this);
36
+ }
37
+ return this;
38
+ }
39
+ }
40
+ exports.HttpResponse = HttpResponse;
41
+ class HttpResponseOfT extends HttpResponse {
42
+ constructor(rawResponse, handler) {
43
+ super(rawResponse);
44
+ this.handler = handler;
45
+ }
46
+ receive() {
47
+ return this.handler(this);
48
+ }
49
+ }
50
+ exports.HttpResponseOfT = HttpResponseOfT;
51
+ //# sourceMappingURL=http-response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-response.js","sourceRoot":"","sources":["../../src/http-response.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AAEzC,MAAa,YAAY;IAiCvB,YAAmB,WAAqB;QAArB,gBAAW,GAAX,WAAW,CAAU;IAAG,CAAC;IAhC5C,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;IAC9B,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;IACjC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;IAClC,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;IACzD,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;IACzD,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;IACzD,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;IACzD,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;IACzD,CAAC;IAIM,0BAA0B;QAC/B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,MAAM,IAAI,sBAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;SAC5C;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA1CD,oCA0CC;AAED,MAAa,eAAmB,SAAQ,YAAY;IAClD,YACE,WAAqB,EACb,OAA+C;QAEvD,KAAK,CAAC,WAAW,CAAC,CAAC;QAFX,YAAO,GAAP,OAAO,CAAwC;IAGzD,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF;AAXD,0CAWC"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Http = void 0;
4
+ const event_aggregator_1 = require("./event-aggregator");
5
+ const http_builder_1 = require("./http-builder");
6
+ const query_string_1 = require("./query-string");
7
+ class Http {
8
+ constructor(options) {
9
+ /** @internal */
10
+ this._onSend = new event_aggregator_1.EventAggregator();
11
+ /** @internal */
12
+ this._onSent = new event_aggregator_1.EventAggregator();
13
+ /** @internal */
14
+ this._onReceived = new event_aggregator_1.EventAggregator();
15
+ this.options = Object.assign({}, Http.defaults, options); // Later sources' properties overwrite earlier ones.
16
+ }
17
+ static request(method, url, params) {
18
+ return this.getInstance().request(method, url, params);
19
+ }
20
+ static head(url, params) {
21
+ return this.getInstance().head(url, params);
22
+ }
23
+ static post(url, params) {
24
+ return this.getInstance().post(url, params);
25
+ }
26
+ static get(url, params) {
27
+ return this.getInstance().get(url, params);
28
+ }
29
+ static put(url, params) {
30
+ return this.getInstance().put(url, params);
31
+ }
32
+ static patch(url, params) {
33
+ return this.getInstance().patch(url, params);
34
+ }
35
+ static delete(url, params) {
36
+ return this.getInstance().delete(url, params);
37
+ }
38
+ static getInstance() {
39
+ if (!this.instance) {
40
+ this.instance = new Http();
41
+ // The singleton instance should always use the static options
42
+ this.instance.options = Http.defaults;
43
+ }
44
+ return this.instance;
45
+ }
46
+ request(method, url, params) {
47
+ const message = {
48
+ method,
49
+ url: url + query_string_1.QueryString.serialize(params),
50
+ headers: new Headers(),
51
+ properties: {},
52
+ };
53
+ const fetch = this.options.fetch;
54
+ if (!fetch) {
55
+ throw Error("fetch() is not properly configured");
56
+ }
57
+ const builder = new http_builder_1.HttpBuilder(message, {
58
+ fetch,
59
+ timeout: this.options.timeout,
60
+ baseUrl: this.options.baseUrl,
61
+ }, this);
62
+ return builder;
63
+ }
64
+ head(url, params) {
65
+ return this.request("HEAD", url, params);
66
+ }
67
+ post(url, params) {
68
+ return this.request("POST", url, params);
69
+ }
70
+ get(url, params) {
71
+ return this.request("GET", url, params);
72
+ }
73
+ put(url, params) {
74
+ return this.request("PUT", url, params);
75
+ }
76
+ patch(url, params) {
77
+ return this.request("PATCH", url, params);
78
+ }
79
+ delete(url, params) {
80
+ return this.request("DELETE", url, params);
81
+ }
82
+ onSend(callback) {
83
+ return this._onSend.subscribe(callback);
84
+ }
85
+ onSent(callback) {
86
+ return this._onSent.subscribe(callback);
87
+ }
88
+ onReceived(callback) {
89
+ return this._onReceived.subscribe(callback);
90
+ }
91
+ }
92
+ exports.Http = Http;
93
+ Http.defaults = {
94
+ fetch: self.fetch ? self.fetch.bind(self) : undefined,
95
+ };
96
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chai_1 = require("chai");
4
+ const http_1 = require("./http");
5
+ describe("static http", () => {
6
+ it("can get", () => {
7
+ const builder = http_1.Http.get("hello");
8
+ (0, chai_1.expect)(builder.getUrl()).to.equal("hello");
9
+ (0, chai_1.expect)(builder.options.fetch).to.equal(http_1.Http.defaults.fetch);
10
+ });
11
+ it("can get with leading /", () => {
12
+ const builder = http_1.Http.get("/hello");
13
+ (0, chai_1.expect)(builder.getUrl()).to.equal("/hello");
14
+ (0, chai_1.expect)(builder.options.fetch).to.equal(http_1.Http.defaults.fetch);
15
+ });
16
+ it("can get with changed default fetch", () => {
17
+ http_1.Http.get("/hello"); // Creates internal singleton
18
+ // Change static default after request is created
19
+ const fetch = http_1.Http.defaults.fetch;
20
+ http_1.Http.defaults.fetch = fakeFetch;
21
+ const builder = http_1.Http.get("/hello");
22
+ (0, chai_1.expect)(builder.options.fetch).to.equal(fakeFetch);
23
+ http_1.Http.defaults.fetch = fetch;
24
+ });
25
+ });
26
+ describe("instance http", () => {
27
+ it("can get with different timeout", () => {
28
+ const http = new http_1.Http();
29
+ const builder = http.get("/hello");
30
+ (0, chai_1.expect)(builder.options.fetch).to.equal(http_1.Http.defaults.fetch);
31
+ (0, chai_1.expect)(builder.options.timeout).to.equal(undefined);
32
+ });
33
+ it("can get with different timeout", () => {
34
+ const http = new http_1.Http({ timeout: 123 });
35
+ const builder = http.get("/hello");
36
+ (0, chai_1.expect)(builder.options.fetch).to.equal(http_1.Http.defaults.fetch);
37
+ (0, chai_1.expect)(builder.options.timeout).to.equal(123);
38
+ });
39
+ it("can get with different fetch", () => {
40
+ const http = new http_1.Http({ fetch: fakeFetch });
41
+ const builder = http.get("/hello");
42
+ (0, chai_1.expect)(builder.options.fetch).to.equal(fakeFetch);
43
+ (0, chai_1.expect)(builder.options.timeout).to.equal(undefined);
44
+ });
45
+ it("can get hello with base url", () => {
46
+ const http = new http_1.Http({ baseUrl: "base" });
47
+ const builder = http.get("hello");
48
+ (0, chai_1.expect)(builder.getUrl()).to.equal("base/hello");
49
+ });
50
+ it("can get hello with base/", () => {
51
+ const http = new http_1.Http({ baseUrl: "base/" });
52
+ const builder = http.get("hello");
53
+ (0, chai_1.expect)(builder.getUrl()).to.equal("base/hello");
54
+ });
55
+ it("can get /hello with base url", () => {
56
+ const http = new http_1.Http({ baseUrl: "base" });
57
+ const builder = http.get("/hello");
58
+ (0, chai_1.expect)(builder.getUrl()).to.equal("base/hello");
59
+ });
60
+ it("can get /hello with base/", () => {
61
+ const http = new http_1.Http({ baseUrl: "base/" });
62
+ const builder = http.get("/hello");
63
+ (0, chai_1.expect)(builder.getUrl()).to.equal("base/hello");
64
+ });
65
+ });
66
+ function fakeFetch(input, init) {
67
+ return Promise.resolve(new Response());
68
+ }
69
+ //# sourceMappingURL=http.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.spec.js","sourceRoot":"","sources":["../../src/http.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.Mapping = exports.statusCodes = exports.events = exports.TimeoutError = exports.HttpError = exports.HttpBuilderOfT = exports.HttpBuilder = exports.HttpResponseOfT = exports.HttpResponse = exports.QueryString = exports.Http = void 0;
18
+ var http_1 = require("./http");
19
+ Object.defineProperty(exports, "Http", { enumerable: true, get: function () { return http_1.Http; } });
20
+ var query_string_1 = require("./query-string");
21
+ Object.defineProperty(exports, "QueryString", { enumerable: true, get: function () { return query_string_1.QueryString; } });
22
+ var http_response_1 = require("./http-response");
23
+ Object.defineProperty(exports, "HttpResponse", { enumerable: true, get: function () { return http_response_1.HttpResponse; } });
24
+ Object.defineProperty(exports, "HttpResponseOfT", { enumerable: true, get: function () { return http_response_1.HttpResponseOfT; } });
25
+ var http_builder_1 = require("./http-builder");
26
+ Object.defineProperty(exports, "HttpBuilder", { enumerable: true, get: function () { return http_builder_1.HttpBuilder; } });
27
+ Object.defineProperty(exports, "HttpBuilderOfT", { enumerable: true, get: function () { return http_builder_1.HttpBuilderOfT; } });
28
+ var http_error_1 = require("./http-error");
29
+ Object.defineProperty(exports, "HttpError", { enumerable: true, get: function () { return http_error_1.HttpError; } });
30
+ var timeout_error_1 = require("./timeout-error");
31
+ Object.defineProperty(exports, "TimeoutError", { enumerable: true, get: function () { return timeout_error_1.TimeoutError; } });
32
+ var events_1 = require("./events");
33
+ Object.defineProperty(exports, "events", { enumerable: true, get: function () { return events_1.events; } });
34
+ __exportStar(require("./helpers"), exports);
35
+ var status_codes_1 = require("./status-codes");
36
+ Object.defineProperty(exports, "statusCodes", { enumerable: true, get: function () { return status_codes_1.statusCodes; } });
37
+ exports.Mapping = require("./mapping");
38
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AAQb,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,iDAAgE;AAAvD,6GAAA,YAAY,OAAA;AAAE,gHAAA,eAAe,OAAA;AACtC,+CAA6D;AAApD,2GAAA,WAAW,OAAA;AAAE,8GAAA,cAAc,OAAA;AAEpC,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,4CAA0B;AAG1B,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,uCAAqC"}