@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.
@@ -1 +1 @@
1
- {"mappings":"AESA,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, TypeOrMapper } 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 { 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"}
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":"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","sources":["plugins/json/src/index.ts","src/mapping.ts"],"sourcesContent":["import { HttpBuilder, HttpBuilderOfT, TypeOrMapper } 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 { 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"}
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":"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","sources":["plugins/json/src/index.ts","src/mapping.ts"],"sourcesContent":["import { HttpBuilder, HttpBuilderOfT, TypeOrMapper } 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 { 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"}
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"}
@@ -1 +1 @@
1
- {"mappings":"ACSA,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":["src/src/mapping.ts","src/plugins/msgpack/src/index.ts","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 { getMapper } from \"../../../src/mapping\";\r\nimport type { Mapper, Type } from \"../../../src/mapping\";\r\n\r\ntype TypeOrMapper<T> = Type<T> | Mapper<T>;\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"}
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"}
@@ -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;;;ADzBD,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, TypeOrMapper } from \"@utiliread/http\";\r\nimport { decodeArrayStream, decodeAsync } from \"@msgpack/msgpack\";\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"}
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"}
@@ -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;;;ADzBD,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, TypeOrMapper } from \"@utiliread/http\";\r\nimport { decodeArrayStream, decodeAsync } from \"@msgpack/msgpack\";\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"}
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('./tsconfig.json');
1
+ const tsconfig = require("./tsconfig.json");
2
2
 
3
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
- }
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@utiliread/http",
3
- "version": "1.17.0",
3
+ "version": "1.17.3",
4
4
  "source": "src/index.ts",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -1,9 +1,10 @@
1
- import { HttpBuilder, HttpBuilderOfT, TypeOrMapper } from "@utiliread/http";
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,3 +1,6 @@
1
1
  {
2
- "extends": "../../tsconfig.json"
2
+ "extends": "../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "rootDirs": ["src"],
5
+ }
3
6
  }
@@ -1,3 +1,6 @@
1
1
  {
2
- "extends": "../../tsconfig.json"
2
+ "extends": "../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "rootDirs": ["src"],
5
+ }
3
6
  }
@@ -1,6 +1,7 @@
1
1
  import { deserialize } from "@utiliread/msgpack";
2
- import { HttpBuilder, HttpBuilderOfT, HttpResponse, TypeOrMapper } from "@utiliread/http";
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
@@ -1,3 +1,6 @@
1
1
  {
2
- "extends": "../../tsconfig.json"
2
+ "extends": "../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "rootDirs": ["src"],
5
+ }
3
6
  }
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
@@ -1,9 +1,11 @@
1
1
  {
2
2
  "compilerOptions": {
3
3
  "target": "ES2018",
4
+ "moduleResolution": "Node",
4
5
  "strict": true,
5
6
  "stripInternal": true,
7
+ "rootDirs": ["src"],
6
8
  "lib": ["ES2018", "DOM"]
7
9
  },
8
- "exclude": ["dist/*", "*.d.ts"]
10
+ "exclude": ["dist"]
9
11
  }
@@ -0,0 +1,7 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "module": "commonjs",
5
+ "outDir": "dist/test"
6
+ }
7
+ }