@utiliread/http 1.17.0 → 1.17.3
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/dist/json.d.ts.map +1 -1
- package/dist/json.js.map +1 -1
- package/dist/json.mjs.map +1 -1
- package/dist/msgpack.d.ts.map +1 -1
- package/dist/msgpack.js.map +1 -1
- package/dist/msgpack.mjs.map +1 -1
- package/karma.config.js +27 -29
- package/package.json +1 -1
- package/plugins/json/src/index.ts +2 -1
- package/plugins/json/tsconfig.json +4 -1
- package/plugins/jsonpatch/tsconfig.json +4 -1
- package/plugins/msgpack/src/index.ts +2 -1
- package/plugins/msgpack/tsconfig.json +4 -1
- package/src/http.spec.ts +0 -27
- package/tsconfig.json +3 -1
- package/tsconfig.test.json +7 -0
package/dist/json.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"
|
|
1
|
+
{"mappings":"AEUA,OAAe,iBAAiB,CAAC;IAC/B,UAAU,WAAW;QACnB,QAAQ,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;QAE7B,UAAU,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QACjE,eAAe,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;QACvE,uBAAuB,CAAC,CAAC,EACvB,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,GAC5B,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;QAChC,0BAA0B,CAAC,CAAC,EAC1B,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,GAC5B,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,kCAAkC,CAAC,CAAC,EAClC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,GAC5B,cAAc,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;KAChD;IACD,UAAU,cAAc,CAAC,CAAC;QACxB,QAAQ,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;KAC9B;CACF","sources":["plugins/json/src/src/pagination.ts","plugins/json/src/src/mapping.ts","plugins/json/src/plugins/json/src/index.ts","plugins/json/src/index.ts"],"sourcesContent":[null,null,null,"import { HttpBuilder, HttpBuilderOfT } from \"@utiliread/http\";\r\nimport type {\r\n InfinitePaginationResult,\r\n PaginationResult,\r\n} from \"../../../src/pagination\";\r\nimport { deserialize, serialize } from \"@utiliread/json\";\r\nimport type { TypeOrMapper } from \"../../../src/mapping\";\r\nimport { getMapper, getNullableMapper } from \"../../../src/mapping\";\r\n\r\n// https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation\r\ndeclare module \"@utiliread/http\" {\r\n interface HttpBuilder {\r\n withJson(content: any): this;\r\n\r\n expectJson<T>(typeOrMapper?: TypeOrMapper<T>): HttpBuilderOfT<T>;\r\n expectJsonArray<T>(typeOrMapper: TypeOrMapper<T>): HttpBuilderOfT<T[]>;\r\n expectJsonNullableArray<T>(\r\n typeOrMapper: TypeOrMapper<T>\r\n ): HttpBuilderOfT<(T | null)[]>;\r\n expectJsonPaginationResult<T>(\r\n typeOrMapper: TypeOrMapper<T>\r\n ): HttpBuilderOfT<PaginationResult<T>>;\r\n expectJsonInfinitePaginationResult<T>(\r\n typeOrMapper: TypeOrMapper<T>\r\n ): HttpBuilderOfT<InfinitePaginationResult<T>>;\r\n }\r\n interface HttpBuilderOfT<T> {\r\n withJson(content: any): this;\r\n }\r\n}\r\n\r\nHttpBuilder.prototype.withJson = function (this: HttpBuilder, content: any) {\r\n this.message.content = serialize(content);\r\n this.message.contentType = \"application/json\";\r\n return this;\r\n};\r\n\r\nHttpBuilderOfT.prototype.withJson = function <T>(\r\n this: HttpBuilderOfT<T>,\r\n content: any\r\n) {\r\n this.message.content = serialize(content);\r\n this.message.contentType = \"application/json\";\r\n return this;\r\n};\r\n\r\nHttpBuilder.prototype.expectJson = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper?: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/json\");\r\n return this.useHandler((response) => {\r\n return response.rawResponse\r\n .json()\r\n .then((x) => getMapper(deserialize, typeOrMapper)(x));\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.expectJsonArray = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/json\");\r\n return this.useHandler((response) => {\r\n return response.rawResponse.json().then((x: any[]) => {\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n return x.map(itemFactory);\r\n });\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.expectJsonNullableArray = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper: TypeOrMapper<T>\r\n): HttpBuilderOfT<(T | null)[]> {\r\n this.message.headers.set(\"Accept\", \"application/json\");\r\n return this.useHandler((response) => {\r\n return response.rawResponse.json().then((x: any[]) => {\r\n const itemFactory = getNullableMapper(deserialize, typeOrMapper);\r\n return x.map(itemFactory);\r\n });\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.expectJsonPaginationResult = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/json\");\r\n return this.useHandler((response) => {\r\n return response.rawResponse.json().then((x: PaginationResult<any>) => {\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n return {\r\n meta: {\r\n pageCount: x.meta.pageCount,\r\n pageSize: x.meta.pageSize,\r\n totalItems: x.meta.totalItems,\r\n },\r\n data: x.data.map(itemFactory),\r\n };\r\n });\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.expectJsonInfinitePaginationResult = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/json\");\r\n return this.useHandler((response) => {\r\n return response.rawResponse\r\n .json()\r\n .then((x: InfinitePaginationResult<any>) => {\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n return {\r\n meta: {\r\n pageSize: x.meta.pageSize,\r\n continuationToken: x.meta.continuationToken,\r\n },\r\n data: x.data.map(itemFactory),\r\n };\r\n });\r\n });\r\n};\r\n"],"names":[],"version":3,"file":"json.d.ts.map"}
|
package/dist/json.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;AAAA;;ACKO,SAAS,yCAAiB,CAAI,WAA6B,EAAE,SAA0C,EAAoB;IAC9H,IAAI,CAAC,SAAS,EACV,OAAO,CAAC,CAAM,GAAQ,CAAC;IAAA,CAAC;IAG5B,IAAI,4CAAsB,CAAC,SAAS,CAAC,EACjC,4DAA4D;IAC5D,qDAAqD;IACrD,OAAO,CAAC,CAAM,GAAK;QACf,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,AAAC;QAExC,iDAAiD;QACjD,IAAI,KAAK,KAAK,SAAS,EACnB,MAAM,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAGhE,OAAO,KAAK,CAAC;KAChB,CAAA;IAGL,OAAO,SAAS,CAAC;CACpB;AAEM,SAAS,yCAAS,CAAI,WAA6B,EAAE,SAA0C,EAAa;IAC/G,MAAM,eAAe,GAAG,yCAAiB,CAAC,WAAW,EAAE,SAAS,CAAC,AAAC;IAClE,OAAO,CAAC,CAAM,GAAK;QACf,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,AAAC;QAElC,IAAI,MAAM,KAAK,IAAI,EACf,MAAM,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAG3D,OAAO,MAAM,CAAC;KACjB,CAAC;CACL;AAED,SAAS,4CAAsB,CAAI,QAAkB,EAA4B;IAC7E,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;CAChC;;;
|
|
1
|
+
{"mappings":"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","sources":["plugins/json/src/index.ts","src/mapping.ts"],"sourcesContent":["import { HttpBuilder, HttpBuilderOfT } from \"@utiliread/http\";\r\nimport type {\r\n InfinitePaginationResult,\r\n PaginationResult,\r\n} from \"../../../src/pagination\";\r\nimport { deserialize, serialize } from \"@utiliread/json\";\r\nimport type { TypeOrMapper } from \"../../../src/mapping\";\r\nimport { getMapper, getNullableMapper } from \"../../../src/mapping\";\r\n\r\n// https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation\r\ndeclare module \"@utiliread/http\" {\r\n interface HttpBuilder {\r\n withJson(content: any): this;\r\n\r\n expectJson<T>(typeOrMapper?: TypeOrMapper<T>): HttpBuilderOfT<T>;\r\n expectJsonArray<T>(typeOrMapper: TypeOrMapper<T>): HttpBuilderOfT<T[]>;\r\n expectJsonNullableArray<T>(\r\n typeOrMapper: TypeOrMapper<T>\r\n ): HttpBuilderOfT<(T | null)[]>;\r\n expectJsonPaginationResult<T>(\r\n typeOrMapper: TypeOrMapper<T>\r\n ): HttpBuilderOfT<PaginationResult<T>>;\r\n expectJsonInfinitePaginationResult<T>(\r\n typeOrMapper: TypeOrMapper<T>\r\n ): HttpBuilderOfT<InfinitePaginationResult<T>>;\r\n }\r\n interface HttpBuilderOfT<T> {\r\n withJson(content: any): this;\r\n }\r\n}\r\n\r\nHttpBuilder.prototype.withJson = function (this: HttpBuilder, content: any) {\r\n this.message.content = serialize(content);\r\n this.message.contentType = \"application/json\";\r\n return this;\r\n};\r\n\r\nHttpBuilderOfT.prototype.withJson = function <T>(\r\n this: HttpBuilderOfT<T>,\r\n content: any\r\n) {\r\n this.message.content = serialize(content);\r\n this.message.contentType = \"application/json\";\r\n return this;\r\n};\r\n\r\nHttpBuilder.prototype.expectJson = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper?: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/json\");\r\n return this.useHandler((response) => {\r\n return response.rawResponse\r\n .json()\r\n .then((x) => getMapper(deserialize, typeOrMapper)(x));\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.expectJsonArray = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/json\");\r\n return this.useHandler((response) => {\r\n return response.rawResponse.json().then((x: any[]) => {\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n return x.map(itemFactory);\r\n });\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.expectJsonNullableArray = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper: TypeOrMapper<T>\r\n): HttpBuilderOfT<(T | null)[]> {\r\n this.message.headers.set(\"Accept\", \"application/json\");\r\n return this.useHandler((response) => {\r\n return response.rawResponse.json().then((x: any[]) => {\r\n const itemFactory = getNullableMapper(deserialize, typeOrMapper);\r\n return x.map(itemFactory);\r\n });\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.expectJsonPaginationResult = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/json\");\r\n return this.useHandler((response) => {\r\n return response.rawResponse.json().then((x: PaginationResult<any>) => {\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n return {\r\n meta: {\r\n pageCount: x.meta.pageCount,\r\n pageSize: x.meta.pageSize,\r\n totalItems: x.meta.totalItems,\r\n },\r\n data: x.data.map(itemFactory),\r\n };\r\n });\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.expectJsonInfinitePaginationResult = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/json\");\r\n return this.useHandler((response) => {\r\n return response.rawResponse\r\n .json()\r\n .then((x: InfinitePaginationResult<any>) => {\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n return {\r\n meta: {\r\n pageSize: x.meta.pageSize,\r\n continuationToken: x.meta.continuationToken,\r\n },\r\n data: x.data.map(itemFactory),\r\n };\r\n });\r\n });\r\n};\r\n","type DeserializeFn<T> = (source: any, type: Type<T>) => T | null | undefined;\nexport type Type<T> = { new(): T };\nexport type Mapper<T> = ((source: any) => T);\nexport type TypeOrMapper<T> = Type<T> | Mapper<T>;\n\nexport function getNullableMapper<T>(deserialize: DeserializeFn<T>, typeOrMap: Type<T> | Mapper<T> | undefined): Mapper<T | null> {\n if (!typeOrMap) {\n return (x: any) => <T>x;\n }\n\n if (isZeroArgumentFunction(typeOrMap)) {\n // It cannot be a factory function if it takes no arguments,\n // so it must be a (zero argument) type (constructor)\n return (x: any) => {\n const bound = deserialize(x, typeOrMap);\n\n // The server cannot produce the undefined result\n if (bound === undefined) {\n throw Error(\"The model factory created a undefined result\");\n }\n\n return bound;\n }\n }\n\n return typeOrMap;\n}\n\nexport function getMapper<T>(deserialize: DeserializeFn<T>, typeOrMap: Type<T> | Mapper<T> | undefined): Mapper<T> {\n const nullableFactory = getNullableMapper(deserialize, typeOrMap);\n return (x: any) => {\n const result = nullableFactory(x);\n\n if (result === null) {\n throw Error(\"The model factory created a null result\");\n }\n\n return result;\n };\n}\n\nfunction isZeroArgumentFunction<T>(typeCtor: Function): typeCtor is { new(): T } {\n return typeCtor.length === 0;\n}"],"names":[],"version":3,"file":"json.js.map"}
|
package/dist/json.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;AAAA;;ACKO,SAAS,yCAAiB,CAAI,WAA6B,EAAE,SAA0C,EAAoB;IAC9H,IAAI,CAAC,SAAS,EACV,OAAO,CAAC,CAAM,GAAQ,CAAC;IAAA,CAAC;IAG5B,IAAI,4CAAsB,CAAC,SAAS,CAAC,EACjC,4DAA4D;IAC5D,qDAAqD;IACrD,OAAO,CAAC,CAAM,GAAK;QACf,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,AAAC;QAExC,iDAAiD;QACjD,IAAI,KAAK,KAAK,SAAS,EACnB,MAAM,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAGhE,OAAO,KAAK,CAAC;KAChB,CAAA;IAGL,OAAO,SAAS,CAAC;CACpB;AAEM,SAAS,yCAAS,CAAI,WAA6B,EAAE,SAA0C,EAAa;IAC/G,MAAM,eAAe,GAAG,yCAAiB,CAAC,WAAW,EAAE,SAAS,CAAC,AAAC;IAClE,OAAO,CAAC,CAAM,GAAK;QACf,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,AAAC;QAElC,IAAI,MAAM,KAAK,IAAI,EACf,MAAM,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAG3D,OAAO,MAAM,CAAC;KACjB,CAAC;CACL;AAED,SAAS,4CAAsB,CAAI,QAAkB,EAA4B;IAC7E,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;CAChC;;;
|
|
1
|
+
{"mappings":"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","sources":["plugins/json/src/index.ts","src/mapping.ts"],"sourcesContent":["import { HttpBuilder, HttpBuilderOfT } from \"@utiliread/http\";\r\nimport type {\r\n InfinitePaginationResult,\r\n PaginationResult,\r\n} from \"../../../src/pagination\";\r\nimport { deserialize, serialize } from \"@utiliread/json\";\r\nimport type { TypeOrMapper } from \"../../../src/mapping\";\r\nimport { getMapper, getNullableMapper } from \"../../../src/mapping\";\r\n\r\n// https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation\r\ndeclare module \"@utiliread/http\" {\r\n interface HttpBuilder {\r\n withJson(content: any): this;\r\n\r\n expectJson<T>(typeOrMapper?: TypeOrMapper<T>): HttpBuilderOfT<T>;\r\n expectJsonArray<T>(typeOrMapper: TypeOrMapper<T>): HttpBuilderOfT<T[]>;\r\n expectJsonNullableArray<T>(\r\n typeOrMapper: TypeOrMapper<T>\r\n ): HttpBuilderOfT<(T | null)[]>;\r\n expectJsonPaginationResult<T>(\r\n typeOrMapper: TypeOrMapper<T>\r\n ): HttpBuilderOfT<PaginationResult<T>>;\r\n expectJsonInfinitePaginationResult<T>(\r\n typeOrMapper: TypeOrMapper<T>\r\n ): HttpBuilderOfT<InfinitePaginationResult<T>>;\r\n }\r\n interface HttpBuilderOfT<T> {\r\n withJson(content: any): this;\r\n }\r\n}\r\n\r\nHttpBuilder.prototype.withJson = function (this: HttpBuilder, content: any) {\r\n this.message.content = serialize(content);\r\n this.message.contentType = \"application/json\";\r\n return this;\r\n};\r\n\r\nHttpBuilderOfT.prototype.withJson = function <T>(\r\n this: HttpBuilderOfT<T>,\r\n content: any\r\n) {\r\n this.message.content = serialize(content);\r\n this.message.contentType = \"application/json\";\r\n return this;\r\n};\r\n\r\nHttpBuilder.prototype.expectJson = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper?: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/json\");\r\n return this.useHandler((response) => {\r\n return response.rawResponse\r\n .json()\r\n .then((x) => getMapper(deserialize, typeOrMapper)(x));\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.expectJsonArray = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/json\");\r\n return this.useHandler((response) => {\r\n return response.rawResponse.json().then((x: any[]) => {\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n return x.map(itemFactory);\r\n });\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.expectJsonNullableArray = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper: TypeOrMapper<T>\r\n): HttpBuilderOfT<(T | null)[]> {\r\n this.message.headers.set(\"Accept\", \"application/json\");\r\n return this.useHandler((response) => {\r\n return response.rawResponse.json().then((x: any[]) => {\r\n const itemFactory = getNullableMapper(deserialize, typeOrMapper);\r\n return x.map(itemFactory);\r\n });\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.expectJsonPaginationResult = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/json\");\r\n return this.useHandler((response) => {\r\n return response.rawResponse.json().then((x: PaginationResult<any>) => {\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n return {\r\n meta: {\r\n pageCount: x.meta.pageCount,\r\n pageSize: x.meta.pageSize,\r\n totalItems: x.meta.totalItems,\r\n },\r\n data: x.data.map(itemFactory),\r\n };\r\n });\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.expectJsonInfinitePaginationResult = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/json\");\r\n return this.useHandler((response) => {\r\n return response.rawResponse\r\n .json()\r\n .then((x: InfinitePaginationResult<any>) => {\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n return {\r\n meta: {\r\n pageSize: x.meta.pageSize,\r\n continuationToken: x.meta.continuationToken,\r\n },\r\n data: x.data.map(itemFactory),\r\n };\r\n });\r\n });\r\n};\r\n","type DeserializeFn<T> = (source: any, type: Type<T>) => T | null | undefined;\nexport type Type<T> = { new(): T };\nexport type Mapper<T> = ((source: any) => T);\nexport type TypeOrMapper<T> = Type<T> | Mapper<T>;\n\nexport function getNullableMapper<T>(deserialize: DeserializeFn<T>, typeOrMap: Type<T> | Mapper<T> | undefined): Mapper<T | null> {\n if (!typeOrMap) {\n return (x: any) => <T>x;\n }\n\n if (isZeroArgumentFunction(typeOrMap)) {\n // It cannot be a factory function if it takes no arguments,\n // so it must be a (zero argument) type (constructor)\n return (x: any) => {\n const bound = deserialize(x, typeOrMap);\n\n // The server cannot produce the undefined result\n if (bound === undefined) {\n throw Error(\"The model factory created a undefined result\");\n }\n\n return bound;\n }\n }\n\n return typeOrMap;\n}\n\nexport function getMapper<T>(deserialize: DeserializeFn<T>, typeOrMap: Type<T> | Mapper<T> | undefined): Mapper<T> {\n const nullableFactory = getNullableMapper(deserialize, typeOrMap);\n return (x: any) => {\n const result = nullableFactory(x);\n\n if (result === null) {\n throw Error(\"The model factory created a null result\");\n }\n\n return result;\n };\n}\n\nfunction isZeroArgumentFunction<T>(typeCtor: Function): typeCtor is { new(): T } {\n return typeCtor.length === 0;\n}"],"names":[],"version":3,"file":"json.mjs.map"}
|
package/dist/msgpack.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"
|
|
1
|
+
{"mappings":"ACOA,OAAe,iBAAiB,CAAC;IAC/B,UAAU,WAAW;QACnB,iBAAiB,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QACxE,sBAAsB,CAAC,CAAC,EACtB,YAAY,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAC7B,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;QACvB,sBAAsB,CAAC,CAAC,EACtB,YAAY,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAC7B,cAAc,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;KACrD;CACF","sources":["plugins/msgpack/src/src/mapping.ts","plugins/msgpack/src/plugins/msgpack/src/index.ts","plugins/msgpack/src/index.ts"],"sourcesContent":[null,null,"import { deserialize } from \"@utiliread/msgpack\";\r\nimport { HttpBuilder, HttpBuilderOfT, HttpResponse } from \"@utiliread/http\";\r\nimport { decodeArrayStream, decodeAsync } from \"@msgpack/msgpack\";\r\nimport type { TypeOrMapper } from \"../../../src/mapping\";\r\nimport { getMapper } from \"../../../src/mapping\";\r\n\r\n// https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation\r\ndeclare module \"@utiliread/http\" {\r\n interface HttpBuilder {\r\n expectMessagePack<T>(typeOrMapper?: TypeOrMapper<T>): HttpBuilderOfT<T>;\r\n expectMessagePackArray<T>(\r\n typeOrMapper?: TypeOrMapper<T>\r\n ): HttpBuilderOfT<T[]>;\r\n streamMessagePackArray<T>(\r\n typeOrMapper?: TypeOrMapper<T>\r\n ): HttpBuilderOfT<AsyncGenerator<T, void, unknown>>;\r\n }\r\n}\r\n\r\nHttpBuilder.prototype.expectMessagePack = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper?: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/x-msgpack\");\r\n return this.useHandler(async (response) => {\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n const decoded = await decodeAsync(response.rawResponse.body!);\r\n return itemFactory(decoded);\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.expectMessagePackArray = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper?: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/x-msgpack\");\r\n return this.useHandler(async (response) => {\r\n const items: T[] = [];\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n for await (const item of decodeArrayStream(response.rawResponse.body!)) {\r\n items.push(itemFactory(item));\r\n }\r\n return items;\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.streamMessagePackArray = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper?: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/x-msgpack\");\r\n\r\n async function* handler(response: HttpResponse) {\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n for await (const item of decodeArrayStream(response.rawResponse.body!)) {\r\n yield itemFactory(item);\r\n }\r\n }\r\n\r\n return this.useHandler((response) => Promise.resolve(handler(response)));\r\n};\r\n"],"names":[],"version":3,"file":"msgpack.d.ts.map"}
|
package/dist/msgpack.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;AAAA;;;ACKO,SAAS,yCAAiB,CAAI,WAA6B,EAAE,SAA0C,EAAoB;IAC9H,IAAI,CAAC,SAAS,EACV,OAAO,CAAC,CAAM,GAAQ,CAAC;IAAA,CAAC;IAG5B,IAAI,4CAAsB,CAAC,SAAS,CAAC,EACjC,4DAA4D;IAC5D,qDAAqD;IACrD,OAAO,CAAC,CAAM,GAAK;QACf,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,AAAC;QAExC,iDAAiD;QACjD,IAAI,KAAK,KAAK,SAAS,EACnB,MAAM,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAGhE,OAAO,KAAK,CAAC;KAChB,CAAA;IAGL,OAAO,SAAS,CAAC;CACpB;AAEM,SAAS,yCAAS,CAAI,WAA6B,EAAE,SAA0C,EAAa;IAC/G,MAAM,eAAe,GAAG,yCAAiB,CAAC,WAAW,EAAE,SAAS,CAAC,AAAC;IAClE,OAAO,CAAC,CAAM,GAAK;QACf,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,AAAC;QAElC,IAAI,MAAM,KAAK,IAAI,EACf,MAAM,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAG3D,OAAO,MAAM,CAAC;KACjB,CAAC;CACL;AAED,SAAS,4CAAsB,CAAI,QAAkB,EAA4B;IAC7E,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;CAChC;;;
|
|
1
|
+
{"mappings":";;;;AAAA;;;ACKO,SAAS,yCAAiB,CAAI,WAA6B,EAAE,SAA0C,EAAoB;IAC9H,IAAI,CAAC,SAAS,EACV,OAAO,CAAC,CAAM,GAAQ,CAAC;IAAA,CAAC;IAG5B,IAAI,4CAAsB,CAAC,SAAS,CAAC,EACjC,4DAA4D;IAC5D,qDAAqD;IACrD,OAAO,CAAC,CAAM,GAAK;QACf,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,AAAC;QAExC,iDAAiD;QACjD,IAAI,KAAK,KAAK,SAAS,EACnB,MAAM,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAGhE,OAAO,KAAK,CAAC;KAChB,CAAA;IAGL,OAAO,SAAS,CAAC;CACpB;AAEM,SAAS,yCAAS,CAAI,WAA6B,EAAE,SAA0C,EAAa;IAC/G,MAAM,eAAe,GAAG,yCAAiB,CAAC,WAAW,EAAE,SAAS,CAAC,AAAC;IAClE,OAAO,CAAC,CAAM,GAAK;QACf,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,AAAC;QAElC,IAAI,MAAM,KAAK,IAAI,EACf,MAAM,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAG3D,OAAO,MAAM,CAAC;KACjB,CAAC;CACL;AAED,SAAS,4CAAsB,CAAI,QAAkB,EAA4B;IAC7E,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;CAChC;;;ADxBD,gCAAW,CAAC,SAAS,CAAC,iBAAiB,GAAG,SAExC,YAA8B,EAC9B;IACA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,QAAQ,GAAK;QACzC,MAAM,WAAW,GAAG,yCAAS,CAAC,mCAAW,EAAE,YAAY,CAAC,AAAC;QACzD,MAAM,OAAO,GAAG,MAAM,iCAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAE,AAAC;QAC9D,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;KAC7B,CAAC,CAAC;CACJ,CAAC;AAEF,gCAAW,CAAC,SAAS,CAAC,sBAAsB,GAAG,SAE7C,YAA8B,EAC9B;IACA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,QAAQ,GAAK;QACzC,MAAM,KAAK,GAAQ,EAAE,AAAC;QACtB,MAAM,WAAW,GAAG,yCAAS,CAAC,mCAAW,EAAE,YAAY,CAAC,AAAC;QACzD,WAAW,MAAM,IAAI,IAAI,uCAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAE,CACpE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAEhC,OAAO,KAAK,CAAC;KACd,CAAC,CAAC;CACJ,CAAC;AAEF,gCAAW,CAAC,SAAS,CAAC,sBAAsB,GAAG,SAE7C,YAA8B,EAC9B;IACA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAE5D,gBAAgB,OAAO,CAAC,QAAsB,EAAE;QAC9C,MAAM,WAAW,GAAG,yCAAS,CAAC,mCAAW,EAAE,YAAY,CAAC,AAAC;QACzD,WAAW,MAAM,IAAI,IAAI,uCAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAE,CACpE,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;KAE3B;IAED,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,GAAK,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAAA,CAAC,CAAC;CAC1E,CAAC","sources":["plugins/msgpack/src/index.ts","src/mapping.ts"],"sourcesContent":["import { deserialize } from \"@utiliread/msgpack\";\r\nimport { HttpBuilder, HttpBuilderOfT, HttpResponse } from \"@utiliread/http\";\r\nimport { decodeArrayStream, decodeAsync } from \"@msgpack/msgpack\";\r\nimport type { TypeOrMapper } from \"../../../src/mapping\";\r\nimport { getMapper } from \"../../../src/mapping\";\r\n\r\n// https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation\r\ndeclare module \"@utiliread/http\" {\r\n interface HttpBuilder {\r\n expectMessagePack<T>(typeOrMapper?: TypeOrMapper<T>): HttpBuilderOfT<T>;\r\n expectMessagePackArray<T>(\r\n typeOrMapper?: TypeOrMapper<T>\r\n ): HttpBuilderOfT<T[]>;\r\n streamMessagePackArray<T>(\r\n typeOrMapper?: TypeOrMapper<T>\r\n ): HttpBuilderOfT<AsyncGenerator<T, void, unknown>>;\r\n }\r\n}\r\n\r\nHttpBuilder.prototype.expectMessagePack = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper?: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/x-msgpack\");\r\n return this.useHandler(async (response) => {\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n const decoded = await decodeAsync(response.rawResponse.body!);\r\n return itemFactory(decoded);\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.expectMessagePackArray = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper?: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/x-msgpack\");\r\n return this.useHandler(async (response) => {\r\n const items: T[] = [];\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n for await (const item of decodeArrayStream(response.rawResponse.body!)) {\r\n items.push(itemFactory(item));\r\n }\r\n return items;\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.streamMessagePackArray = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper?: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/x-msgpack\");\r\n\r\n async function* handler(response: HttpResponse) {\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n for await (const item of decodeArrayStream(response.rawResponse.body!)) {\r\n yield itemFactory(item);\r\n }\r\n }\r\n\r\n return this.useHandler((response) => Promise.resolve(handler(response)));\r\n};\r\n","type DeserializeFn<T> = (source: any, type: Type<T>) => T | null | undefined;\nexport type Type<T> = { new(): T };\nexport type Mapper<T> = ((source: any) => T);\nexport type TypeOrMapper<T> = Type<T> | Mapper<T>;\n\nexport function getNullableMapper<T>(deserialize: DeserializeFn<T>, typeOrMap: Type<T> | Mapper<T> | undefined): Mapper<T | null> {\n if (!typeOrMap) {\n return (x: any) => <T>x;\n }\n\n if (isZeroArgumentFunction(typeOrMap)) {\n // It cannot be a factory function if it takes no arguments,\n // so it must be a (zero argument) type (constructor)\n return (x: any) => {\n const bound = deserialize(x, typeOrMap);\n\n // The server cannot produce the undefined result\n if (bound === undefined) {\n throw Error(\"The model factory created a undefined result\");\n }\n\n return bound;\n }\n }\n\n return typeOrMap;\n}\n\nexport function getMapper<T>(deserialize: DeserializeFn<T>, typeOrMap: Type<T> | Mapper<T> | undefined): Mapper<T> {\n const nullableFactory = getNullableMapper(deserialize, typeOrMap);\n return (x: any) => {\n const result = nullableFactory(x);\n\n if (result === null) {\n throw Error(\"The model factory created a null result\");\n }\n\n return result;\n };\n}\n\nfunction isZeroArgumentFunction<T>(typeCtor: Function): typeCtor is { new(): T } {\n return typeCtor.length === 0;\n}"],"names":[],"version":3,"file":"msgpack.js.map"}
|
package/dist/msgpack.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;AAAA;;;ACKO,SAAS,yCAAiB,CAAI,WAA6B,EAAE,SAA0C,EAAoB;IAC9H,IAAI,CAAC,SAAS,EACV,OAAO,CAAC,CAAM,GAAQ,CAAC;IAAA,CAAC;IAG5B,IAAI,4CAAsB,CAAC,SAAS,CAAC,EACjC,4DAA4D;IAC5D,qDAAqD;IACrD,OAAO,CAAC,CAAM,GAAK;QACf,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,AAAC;QAExC,iDAAiD;QACjD,IAAI,KAAK,KAAK,SAAS,EACnB,MAAM,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAGhE,OAAO,KAAK,CAAC;KAChB,CAAA;IAGL,OAAO,SAAS,CAAC;CACpB;AAEM,SAAS,yCAAS,CAAI,WAA6B,EAAE,SAA0C,EAAa;IAC/G,MAAM,eAAe,GAAG,yCAAiB,CAAC,WAAW,EAAE,SAAS,CAAC,AAAC;IAClE,OAAO,CAAC,CAAM,GAAK;QACf,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,AAAC;QAElC,IAAI,MAAM,KAAK,IAAI,EACf,MAAM,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAG3D,OAAO,MAAM,CAAC;KACjB,CAAC;CACL;AAED,SAAS,4CAAsB,CAAI,QAAkB,EAA4B;IAC7E,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;CAChC;;;
|
|
1
|
+
{"mappings":";;;;AAAA;;;ACKO,SAAS,yCAAiB,CAAI,WAA6B,EAAE,SAA0C,EAAoB;IAC9H,IAAI,CAAC,SAAS,EACV,OAAO,CAAC,CAAM,GAAQ,CAAC;IAAA,CAAC;IAG5B,IAAI,4CAAsB,CAAC,SAAS,CAAC,EACjC,4DAA4D;IAC5D,qDAAqD;IACrD,OAAO,CAAC,CAAM,GAAK;QACf,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,AAAC;QAExC,iDAAiD;QACjD,IAAI,KAAK,KAAK,SAAS,EACnB,MAAM,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAGhE,OAAO,KAAK,CAAC;KAChB,CAAA;IAGL,OAAO,SAAS,CAAC;CACpB;AAEM,SAAS,yCAAS,CAAI,WAA6B,EAAE,SAA0C,EAAa;IAC/G,MAAM,eAAe,GAAG,yCAAiB,CAAC,WAAW,EAAE,SAAS,CAAC,AAAC;IAClE,OAAO,CAAC,CAAM,GAAK;QACf,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,AAAC;QAElC,IAAI,MAAM,KAAK,IAAI,EACf,MAAM,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAG3D,OAAO,MAAM,CAAC;KACjB,CAAC;CACL;AAED,SAAS,4CAAsB,CAAI,QAAkB,EAA4B;IAC7E,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;CAChC;;;ADxBD,kBAAW,CAAC,SAAS,CAAC,iBAAiB,GAAG,SAExC,YAA8B,EAC9B;IACA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,QAAQ,GAAK;QACzC,MAAM,WAAW,GAAG,yCAAS,CAAC,kBAAW,EAAE,YAAY,CAAC,AAAC;QACzD,MAAM,OAAO,GAAG,MAAM,kBAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAE,AAAC;QAC9D,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;KAC7B,CAAC,CAAC;CACJ,CAAC;AAEF,kBAAW,CAAC,SAAS,CAAC,sBAAsB,GAAG,SAE7C,YAA8B,EAC9B;IACA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,QAAQ,GAAK;QACzC,MAAM,KAAK,GAAQ,EAAE,AAAC;QACtB,MAAM,WAAW,GAAG,yCAAS,CAAC,kBAAW,EAAE,YAAY,CAAC,AAAC;QACzD,WAAW,MAAM,IAAI,IAAI,wBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAE,CACpE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAEhC,OAAO,KAAK,CAAC;KACd,CAAC,CAAC;CACJ,CAAC;AAEF,kBAAW,CAAC,SAAS,CAAC,sBAAsB,GAAG,SAE7C,YAA8B,EAC9B;IACA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAE5D,gBAAgB,OAAO,CAAC,QAAsB,EAAE;QAC9C,MAAM,WAAW,GAAG,yCAAS,CAAC,kBAAW,EAAE,YAAY,CAAC,AAAC;QACzD,WAAW,MAAM,IAAI,IAAI,wBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAE,CACpE,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;KAE3B;IAED,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,GAAK,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAAA,CAAC,CAAC;CAC1E,CAAC","sources":["plugins/msgpack/src/index.ts","src/mapping.ts"],"sourcesContent":["import { deserialize } from \"@utiliread/msgpack\";\r\nimport { HttpBuilder, HttpBuilderOfT, HttpResponse } from \"@utiliread/http\";\r\nimport { decodeArrayStream, decodeAsync } from \"@msgpack/msgpack\";\r\nimport type { TypeOrMapper } from \"../../../src/mapping\";\r\nimport { getMapper } from \"../../../src/mapping\";\r\n\r\n// https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation\r\ndeclare module \"@utiliread/http\" {\r\n interface HttpBuilder {\r\n expectMessagePack<T>(typeOrMapper?: TypeOrMapper<T>): HttpBuilderOfT<T>;\r\n expectMessagePackArray<T>(\r\n typeOrMapper?: TypeOrMapper<T>\r\n ): HttpBuilderOfT<T[]>;\r\n streamMessagePackArray<T>(\r\n typeOrMapper?: TypeOrMapper<T>\r\n ): HttpBuilderOfT<AsyncGenerator<T, void, unknown>>;\r\n }\r\n}\r\n\r\nHttpBuilder.prototype.expectMessagePack = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper?: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/x-msgpack\");\r\n return this.useHandler(async (response) => {\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n const decoded = await decodeAsync(response.rawResponse.body!);\r\n return itemFactory(decoded);\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.expectMessagePackArray = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper?: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/x-msgpack\");\r\n return this.useHandler(async (response) => {\r\n const items: T[] = [];\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n for await (const item of decodeArrayStream(response.rawResponse.body!)) {\r\n items.push(itemFactory(item));\r\n }\r\n return items;\r\n });\r\n};\r\n\r\nHttpBuilder.prototype.streamMessagePackArray = function <T>(\r\n this: HttpBuilder,\r\n typeOrMapper?: TypeOrMapper<T>\r\n) {\r\n this.message.headers.set(\"Accept\", \"application/x-msgpack\");\r\n\r\n async function* handler(response: HttpResponse) {\r\n const itemFactory = getMapper(deserialize, typeOrMapper);\r\n for await (const item of decodeArrayStream(response.rawResponse.body!)) {\r\n yield itemFactory(item);\r\n }\r\n }\r\n\r\n return this.useHandler((response) => Promise.resolve(handler(response)));\r\n};\r\n","type DeserializeFn<T> = (source: any, type: Type<T>) => T | null | undefined;\nexport type Type<T> = { new(): T };\nexport type Mapper<T> = ((source: any) => T);\nexport type TypeOrMapper<T> = Type<T> | Mapper<T>;\n\nexport function getNullableMapper<T>(deserialize: DeserializeFn<T>, typeOrMap: Type<T> | Mapper<T> | undefined): Mapper<T | null> {\n if (!typeOrMap) {\n return (x: any) => <T>x;\n }\n\n if (isZeroArgumentFunction(typeOrMap)) {\n // It cannot be a factory function if it takes no arguments,\n // so it must be a (zero argument) type (constructor)\n return (x: any) => {\n const bound = deserialize(x, typeOrMap);\n\n // The server cannot produce the undefined result\n if (bound === undefined) {\n throw Error(\"The model factory created a undefined result\");\n }\n\n return bound;\n }\n }\n\n return typeOrMap;\n}\n\nexport function getMapper<T>(deserialize: DeserializeFn<T>, typeOrMap: Type<T> | Mapper<T> | undefined): Mapper<T> {\n const nullableFactory = getNullableMapper(deserialize, typeOrMap);\n return (x: any) => {\n const result = nullableFactory(x);\n\n if (result === null) {\n throw Error(\"The model factory created a null result\");\n }\n\n return result;\n };\n}\n\nfunction isZeroArgumentFunction<T>(typeCtor: Function): typeCtor is { new(): T } {\n return typeCtor.length === 0;\n}"],"names":[],"version":3,"file":"msgpack.mjs.map"}
|
package/karma.config.js
CHANGED
|
@@ -1,31 +1,29 @@
|
|
|
1
|
-
const tsconfig = require(
|
|
1
|
+
const tsconfig = require("./tsconfig.json");
|
|
2
2
|
|
|
3
3
|
module.exports = function (config) {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
})
|
|
31
|
-
}
|
|
4
|
+
config.set({
|
|
5
|
+
frameworks: ["mocha", "chai", "karma-typescript"],
|
|
6
|
+
files: ["src/**/*.ts"],
|
|
7
|
+
preprocessors: {
|
|
8
|
+
"src/**/*.ts": ["karma-typescript"],
|
|
9
|
+
},
|
|
10
|
+
reporters: ["progress", "karma-typescript"],
|
|
11
|
+
browsers: ["ChromeHeadless", "ChromeDebugging"],
|
|
12
|
+
customLaunchers: {
|
|
13
|
+
ChromeDebugging: {
|
|
14
|
+
base: "Chrome",
|
|
15
|
+
flags: ["--remote-debugging-port=9222"],
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
karmaTypescriptConfig: {
|
|
19
|
+
bundlerOptions: {
|
|
20
|
+
entrypoints: /\.spec\.ts$/,
|
|
21
|
+
sourceMap: tsconfig.compilerOptions.sourceMap,
|
|
22
|
+
},
|
|
23
|
+
coverageOptions: {
|
|
24
|
+
instrumentation: false,
|
|
25
|
+
},
|
|
26
|
+
tsconfig: "./tsconfig.test.json",
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
};
|
package/package.json
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { HttpBuilder, HttpBuilderOfT
|
|
1
|
+
import { HttpBuilder, HttpBuilderOfT } from "@utiliread/http";
|
|
2
2
|
import type {
|
|
3
3
|
InfinitePaginationResult,
|
|
4
4
|
PaginationResult,
|
|
5
5
|
} from "../../../src/pagination";
|
|
6
6
|
import { deserialize, serialize } from "@utiliread/json";
|
|
7
|
+
import type { TypeOrMapper } from "../../../src/mapping";
|
|
7
8
|
import { getMapper, getNullableMapper } from "../../../src/mapping";
|
|
8
9
|
|
|
9
10
|
// https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { deserialize } from "@utiliread/msgpack";
|
|
2
|
-
import { HttpBuilder, HttpBuilderOfT, HttpResponse
|
|
2
|
+
import { HttpBuilder, HttpBuilderOfT, HttpResponse } from "@utiliread/http";
|
|
3
3
|
import { decodeArrayStream, decodeAsync } from "@msgpack/msgpack";
|
|
4
|
+
import type { TypeOrMapper } from "../../../src/mapping";
|
|
4
5
|
import { getMapper } from "../../../src/mapping";
|
|
5
6
|
|
|
6
7
|
// https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation
|
package/src/http.spec.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { expect } from "chai";
|
|
2
2
|
import { Http } from "./http";
|
|
3
|
-
import "./json";
|
|
4
3
|
|
|
5
4
|
describe("static http", () => {
|
|
6
5
|
it("can get", () => {
|
|
@@ -71,32 +70,6 @@ describe("instance http", () => {
|
|
|
71
70
|
const builder = http.get("/hello");
|
|
72
71
|
expect(builder.getUrl()).to.equal("base/hello");
|
|
73
72
|
});
|
|
74
|
-
|
|
75
|
-
it("can post json, with then expect", async () => {
|
|
76
|
-
const user = await new Http()
|
|
77
|
-
.post("https://reqres.in/api/users")
|
|
78
|
-
.withJson({
|
|
79
|
-
name: "morpheus",
|
|
80
|
-
job: "leader",
|
|
81
|
-
})
|
|
82
|
-
.expectJson<{ name: string; job: string }>()
|
|
83
|
-
.transfer();
|
|
84
|
-
|
|
85
|
-
expect(user.name).to.equal("morpheus");
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
it("can post json, expect then with", async () => {
|
|
89
|
-
const user = await new Http()
|
|
90
|
-
.post("https://reqres.in/api/users")
|
|
91
|
-
.expectJson<{ name: string; job: string }>()
|
|
92
|
-
.withJson({
|
|
93
|
-
name: "morpheus",
|
|
94
|
-
job: "leader",
|
|
95
|
-
})
|
|
96
|
-
.transfer();
|
|
97
|
-
|
|
98
|
-
expect(user.name).to.equal("morpheus");
|
|
99
|
-
}).timeout(5000);
|
|
100
73
|
});
|
|
101
74
|
|
|
102
75
|
function fakeFetch(input: RequestInfo, init?: RequestInit): Promise<Response> {
|
package/tsconfig.json
CHANGED