@utiliread/http 1.11.0 → 1.12.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/.vscode/settings.json +2 -2
- package/dist/cjs/msgpack.js +12 -0
- package/dist/cjs/msgpack.js.map +1 -1
- package/dist/esm/msgpack.d.ts +1 -0
- package/dist/esm/msgpack.js +13 -1
- package/dist/esm/msgpack.js.map +1 -1
- package/karma.config.js +30 -30
- package/package.json +1 -1
- package/src/event-aggregator.ts +31 -31
- package/src/helpers.ts +13 -13
- package/src/http-builder.ts +254 -254
- package/src/http-error.ts +25 -25
- package/src/http-response.ts +55 -55
- package/src/http.spec.ts +104 -104
- package/src/http.ts +121 -121
- package/src/index.ts +16 -16
- package/src/json.ts +138 -138
- package/src/mapping.ts +42 -42
- package/src/msgpack.ts +63 -48
- package/src/pagination.ts +25 -25
- package/src/problem-details.ts +7 -7
- package/src/query-string.spec.ts +62 -62
- package/src/query-string.ts +69 -69
- package/src/timeout-error.ts +10 -10
- package/tsconfig.cjs.json +8 -8
- package/tsconfig.json +13 -13
- package/dist/cjs/events.js +0 -89
- package/dist/cjs/events.js.map +0 -1
- package/dist/cjs/settings.js +0 -3
- package/dist/cjs/settings.js.map +0 -1
- package/dist/cjs/utils.js +0 -8
- package/dist/cjs/utils.js.map +0 -1
- package/dist/esm/events.d.ts +0 -25
- package/dist/esm/events.js +0 -86
- package/dist/esm/events.js.map +0 -1
- package/dist/esm/settings.d.ts +0 -6
- package/dist/esm/settings.js +0 -2
- package/dist/esm/settings.js.map +0 -1
- package/dist/esm/utils.d.ts +0 -3
- package/dist/esm/utils.js +0 -4
- package/dist/esm/utils.js.map +0 -1
package/.vscode/settings.json
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
{
|
|
2
|
-
"typescript.tsdk": "node_modules\\typescript\\lib"
|
|
1
|
+
{
|
|
2
|
+
"typescript.tsdk": "node_modules\\typescript\\lib"
|
|
3
3
|
}
|
package/dist/cjs/msgpack.js
CHANGED
|
@@ -59,6 +59,18 @@ var msgpack_1 = require("@utiliread/msgpack");
|
|
|
59
59
|
var http_builder_1 = require("./http-builder");
|
|
60
60
|
var msgpack_2 = require("@msgpack/msgpack");
|
|
61
61
|
var mapping_1 = require("./mapping");
|
|
62
|
+
http_builder_1.HttpBuilder.prototype.expectMessagePack = function (typeOrMapper) {
|
|
63
|
+
var _this = this;
|
|
64
|
+
this.message.headers.set("Accept", "application/x-msgpack");
|
|
65
|
+
return this.useHandler(function (response) { return __awaiter(_this, void 0, void 0, function () {
|
|
66
|
+
var itemFactory, decoded;
|
|
67
|
+
return __generator(this, function (_a) {
|
|
68
|
+
itemFactory = (0, mapping_1.getMapper)(msgpack_1.deserialize, typeOrMapper);
|
|
69
|
+
decoded = (0, msgpack_2.decodeAsync)(response.body);
|
|
70
|
+
return [2 /*return*/, itemFactory(decoded)];
|
|
71
|
+
});
|
|
72
|
+
}); });
|
|
73
|
+
};
|
|
62
74
|
http_builder_1.HttpBuilder.prototype.expectMessagePackArray = function (typeOrMapper) {
|
|
63
75
|
var _this = this;
|
|
64
76
|
this.message.headers.set("Accept", "application/x-msgpack");
|
package/dist/cjs/msgpack.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"msgpack.js","sourceRoot":"","sources":["../../src/msgpack.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAiD;AACjD,+CAA6C;AAC7C,
|
|
1
|
+
{"version":3,"file":"msgpack.js","sourceRoot":"","sources":["../../src/msgpack.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAiD;AACjD,+CAA6C;AAC7C,4CAAkE;AAClE,qCAAoD;AAkBpD,0BAAW,CAAC,SAAS,CAAC,iBAAiB,GAAG,UAExC,YAA8B;IAFU,iBAUzC;IANC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC,UAAU,CAAC,UAAO,QAAQ;;;YAC9B,WAAW,GAAG,IAAA,mBAAS,EAAC,qBAAW,EAAE,YAAY,CAAC,CAAC;YACnD,OAAO,GAAG,IAAA,qBAAW,EAAC,QAAQ,CAAC,IAAK,CAAC,CAAC;YAC5C,sBAAO,WAAW,CAAC,OAAO,CAAC,EAAC;;SAC7B,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,0BAAW,CAAC,SAAS,CAAC,sBAAsB,GAAG,UAE7C,YAA8B;IAFe,iBAa9C;IATC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC,UAAU,CAAC,UAAO,QAAQ;;;;;;oBAC9B,KAAK,GAAQ,EAAE,CAAC;oBAChB,WAAW,GAAG,IAAA,mBAAS,EAAC,qBAAW,EAAE,YAAY,CAAC,CAAC;;;;oBAChC,KAAA,cAAA,IAAA,2BAAiB,EAAC,QAAQ,CAAC,IAAK,CAAC,CAAA;;;;;oBAAzC,IAAI,WAAA,CAAA;oBACnB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;yBAEhC,sBAAO,KAAK,EAAC;;;SACd,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,0BAAW,CAAC,SAAS,CAAC,sBAAsB,GAAG,UAE7C,YAA8B;IAE9B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAE5D,SAAgB,OAAO,CAAC,QAAkB;;;;;;;wBAClC,WAAW,GAAG,IAAA,mBAAS,EAAC,qBAAW,EAAE,YAAY,CAAC,CAAC;;;;wBAChC,KAAA,cAAA,IAAA,2BAAiB,EAAC,QAAQ,CAAC,IAAK,CAAC,CAAA;;;;;wBAAzC,IAAI,WAAA,CAAA;qDACb,WAAW,CAAC,IAAI,CAAC;4BAAvB,gCAAuB;;wBAAvB,SAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;KAE3B;IAED,OAAO,IAAI,CAAC,UAAU,CAAC,UAAC,QAAQ,IAAK,OAAA,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAlC,CAAkC,CAAC,CAAC;AAC3E,CAAC,CAAC"}
|
package/dist/esm/msgpack.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { Mapper, Type } from "./mapping";
|
|
|
2
2
|
declare type TypeOrMapper<T> = Type<T> | Mapper<T>;
|
|
3
3
|
declare module "@utiliread/http" {
|
|
4
4
|
interface HttpBuilder {
|
|
5
|
+
expectMessagePack<T>(typeOrMapper?: TypeOrMapper<T>): HttpBuilderOfT<T>;
|
|
5
6
|
expectMessagePackArray<T>(typeOrMapper?: TypeOrMapper<T>): HttpBuilderOfT<T[]>;
|
|
6
7
|
streamMessagePackArray<T>(typeOrMapper?: TypeOrMapper<T>): HttpBuilderOfT<AsyncGenerator<T, void, unknown>>;
|
|
7
8
|
}
|
package/dist/esm/msgpack.js
CHANGED
|
@@ -55,8 +55,20 @@ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _ar
|
|
|
55
55
|
};
|
|
56
56
|
import { deserialize } from "@utiliread/msgpack";
|
|
57
57
|
import { HttpBuilder } from "./http-builder";
|
|
58
|
-
import { decodeArrayStream } from "@msgpack/msgpack";
|
|
58
|
+
import { decodeArrayStream, decodeAsync } from "@msgpack/msgpack";
|
|
59
59
|
import { getMapper } from "./mapping";
|
|
60
|
+
HttpBuilder.prototype.expectMessagePack = function (typeOrMapper) {
|
|
61
|
+
var _this = this;
|
|
62
|
+
this.message.headers.set("Accept", "application/x-msgpack");
|
|
63
|
+
return this.useHandler(function (response) { return __awaiter(_this, void 0, void 0, function () {
|
|
64
|
+
var itemFactory, decoded;
|
|
65
|
+
return __generator(this, function (_a) {
|
|
66
|
+
itemFactory = getMapper(deserialize, typeOrMapper);
|
|
67
|
+
decoded = decodeAsync(response.body);
|
|
68
|
+
return [2 /*return*/, itemFactory(decoded)];
|
|
69
|
+
});
|
|
70
|
+
}); });
|
|
71
|
+
};
|
|
60
72
|
HttpBuilder.prototype.expectMessagePackArray = function (typeOrMapper) {
|
|
61
73
|
var _this = this;
|
|
62
74
|
this.message.headers.set("Accept", "application/x-msgpack");
|
package/dist/esm/msgpack.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"msgpack.js","sourceRoot":"","sources":["../../src/msgpack.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"msgpack.js","sourceRoot":"","sources":["../../src/msgpack.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAgB,MAAM,WAAW,CAAC;AAkBpD,WAAW,CAAC,SAAS,CAAC,iBAAiB,GAAG,UAExC,YAA8B;IAFU,iBAUzC;IANC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC,UAAU,CAAC,UAAO,QAAQ;;;YAC9B,WAAW,GAAG,SAAS,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YACnD,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAK,CAAC,CAAC;YAC5C,sBAAO,WAAW,CAAC,OAAO,CAAC,EAAC;;SAC7B,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,WAAW,CAAC,SAAS,CAAC,sBAAsB,GAAG,UAE7C,YAA8B;IAFe,iBAa9C;IATC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC,UAAU,CAAC,UAAO,QAAQ;;;;;;oBAC9B,KAAK,GAAQ,EAAE,CAAC;oBAChB,WAAW,GAAG,SAAS,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;;;;oBAChC,KAAA,cAAA,iBAAiB,CAAC,QAAQ,CAAC,IAAK,CAAC,CAAA;;;;;oBAAzC,IAAI,WAAA,CAAA;oBACnB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;yBAEhC,sBAAO,KAAK,EAAC;;;SACd,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,WAAW,CAAC,SAAS,CAAC,sBAAsB,GAAG,UAE7C,YAA8B;IAE9B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAE5D,SAAgB,OAAO,CAAC,QAAkB;;;;;;;wBAClC,WAAW,GAAG,SAAS,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;;;;wBAChC,KAAA,cAAA,iBAAiB,CAAC,QAAQ,CAAC,IAAK,CAAC,CAAA;;;;;wBAAzC,IAAI,WAAA,CAAA;qDACb,WAAW,CAAC,IAAI,CAAC;4BAAvB,gCAAuB;;wBAAvB,SAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;KAE3B;IAED,OAAO,IAAI,CAAC,UAAU,CAAC,UAAC,QAAQ,IAAK,OAAA,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAlC,CAAkC,CAAC,CAAC;AAC3E,CAAC,CAAC"}
|
package/karma.config.js
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
const tsconfig = require('./tsconfig.json');
|
|
2
|
-
|
|
3
|
-
module.exports = function (config) {
|
|
4
|
-
config.set({
|
|
5
|
-
frameworks: ['mocha', 'chai', 'karma-typescript'],
|
|
6
|
-
files: [
|
|
7
|
-
'src/**/*.ts'
|
|
8
|
-
],
|
|
9
|
-
preprocessors: {
|
|
10
|
-
'src/**/*.ts': ['karma-typescript']
|
|
11
|
-
},
|
|
12
|
-
reporters: ['progress', 'karma-typescript'],
|
|
13
|
-
browsers: ['ChromeHeadless', 'ChromeDebugging'],
|
|
14
|
-
customLaunchers: {
|
|
15
|
-
ChromeDebugging: {
|
|
16
|
-
base: 'Chrome',
|
|
17
|
-
flags: ['--remote-debugging-port=9222']
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
karmaTypescriptConfig: {
|
|
21
|
-
bundlerOptions: {
|
|
22
|
-
entrypoints: /\.spec\.ts$/,
|
|
23
|
-
sourceMap: tsconfig.compilerOptions.sourceMap
|
|
24
|
-
},
|
|
25
|
-
coverageOptions: {
|
|
26
|
-
instrumentation: false
|
|
27
|
-
},
|
|
28
|
-
tsconfig: './tsconfig.cjs.json'
|
|
29
|
-
}
|
|
30
|
-
})
|
|
1
|
+
const tsconfig = require('./tsconfig.json');
|
|
2
|
+
|
|
3
|
+
module.exports = function (config) {
|
|
4
|
+
config.set({
|
|
5
|
+
frameworks: ['mocha', 'chai', 'karma-typescript'],
|
|
6
|
+
files: [
|
|
7
|
+
'src/**/*.ts'
|
|
8
|
+
],
|
|
9
|
+
preprocessors: {
|
|
10
|
+
'src/**/*.ts': ['karma-typescript']
|
|
11
|
+
},
|
|
12
|
+
reporters: ['progress', 'karma-typescript'],
|
|
13
|
+
browsers: ['ChromeHeadless', 'ChromeDebugging'],
|
|
14
|
+
customLaunchers: {
|
|
15
|
+
ChromeDebugging: {
|
|
16
|
+
base: 'Chrome',
|
|
17
|
+
flags: ['--remote-debugging-port=9222']
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
karmaTypescriptConfig: {
|
|
21
|
+
bundlerOptions: {
|
|
22
|
+
entrypoints: /\.spec\.ts$/,
|
|
23
|
+
sourceMap: tsconfig.compilerOptions.sourceMap
|
|
24
|
+
},
|
|
25
|
+
coverageOptions: {
|
|
26
|
+
instrumentation: false
|
|
27
|
+
},
|
|
28
|
+
tsconfig: './tsconfig.cjs.json'
|
|
29
|
+
}
|
|
30
|
+
})
|
|
31
31
|
}
|
package/package.json
CHANGED
package/src/event-aggregator.ts
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
type Callback<P extends any[] = any[]> = (...params: P) => void | Promise<void>;
|
|
2
|
-
|
|
3
|
-
export class EventAggregator<P extends any[]> {
|
|
4
|
-
private callbacks: Function[] = [];
|
|
5
|
-
|
|
6
|
-
get any() {
|
|
7
|
-
return this.callbacks.length > 0;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
subscribe(callback: Callback<P>): Subscription {
|
|
11
|
-
this.callbacks.push(callback);
|
|
12
|
-
return {
|
|
13
|
-
dispose: () => {
|
|
14
|
-
const index = this.callbacks.indexOf(callback);
|
|
15
|
-
if (index >= 0) {
|
|
16
|
-
this.callbacks.splice(index, 1);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
async publish(...params: P) {
|
|
23
|
-
const callbacks = this.callbacks.slice();
|
|
24
|
-
for (const callback of callbacks) {
|
|
25
|
-
await Promise.resolve(callback.apply(this, params));
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export interface Subscription {
|
|
31
|
-
dispose(): void;
|
|
1
|
+
type Callback<P extends any[] = any[]> = (...params: P) => void | Promise<void>;
|
|
2
|
+
|
|
3
|
+
export class EventAggregator<P extends any[]> {
|
|
4
|
+
private callbacks: Function[] = [];
|
|
5
|
+
|
|
6
|
+
get any() {
|
|
7
|
+
return this.callbacks.length > 0;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
subscribe(callback: Callback<P>): Subscription {
|
|
11
|
+
this.callbacks.push(callback);
|
|
12
|
+
return {
|
|
13
|
+
dispose: () => {
|
|
14
|
+
const index = this.callbacks.indexOf(callback);
|
|
15
|
+
if (index >= 0) {
|
|
16
|
+
this.callbacks.splice(index, 1);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
async publish(...params: P) {
|
|
23
|
+
const callbacks = this.callbacks.slice();
|
|
24
|
+
for (const callback of callbacks) {
|
|
25
|
+
await Promise.resolve(callback.apply(this, params));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface Subscription {
|
|
31
|
+
dispose(): void;
|
|
32
32
|
}
|
package/src/helpers.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { HttpError } from './http-error';
|
|
2
|
-
import { TimeoutError } from './timeout-error';
|
|
3
|
-
|
|
4
|
-
export function isHttpError(error: Error): error is HttpError {
|
|
5
|
-
return error.name === "HttpError";
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export function isAbortError(error: Error): boolean {
|
|
9
|
-
return error.name === "AbortError";
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export function isTimeoutError(error: Error): error is TimeoutError {
|
|
13
|
-
return error.name === "TimeoutError";
|
|
1
|
+
import { HttpError } from './http-error';
|
|
2
|
+
import { TimeoutError } from './timeout-error';
|
|
3
|
+
|
|
4
|
+
export function isHttpError(error: Error): error is HttpError {
|
|
5
|
+
return error.name === "HttpError";
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export function isAbortError(error: Error): boolean {
|
|
9
|
+
return error.name === "AbortError";
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export function isTimeoutError(error: Error): error is TimeoutError {
|
|
13
|
+
return error.name === "TimeoutError";
|
|
14
14
|
}
|