@kiyasov/platform-hono 1.1.0 → 1.1.2
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/.yarn/install-state.gz +0 -0
- package/Readme.md +14 -1
- package/benchmarks/benchmark.mjs +51 -0
- package/bun.lockb +0 -0
- package/dist/cjs/src/drivers/graphQLUpload/GraphQLUpload.js.map +1 -1
- package/dist/cjs/src/drivers/graphql.driver.d.ts +0 -3
- package/dist/cjs/src/drivers/graphql.driver.js +0 -7
- package/dist/cjs/src/drivers/graphql.driver.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/src/drivers/graphQLUpload/GraphQLUpload.js.map +1 -1
- package/dist/esm/src/drivers/graphql.driver.d.ts +0 -3
- package/dist/esm/src/drivers/graphql.driver.js +0 -7
- package/dist/esm/src/drivers/graphql.driver.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +16 -6
- package/src/adapters/hono-adapter.ts +54 -52
- package/src/drivers/graphql.driver.ts +0 -9
- package/dist/cjs/src/drivers/services/processRequest.d.ts +0 -2
- package/dist/cjs/src/drivers/services/processRequest.js +0 -45
- package/dist/cjs/src/drivers/services/processRequest.js.map +0 -1
- package/dist/esm/src/drivers/services/processRequest.d.ts +0 -2
- package/dist/esm/src/drivers/services/processRequest.js +0 -41
- package/dist/esm/src/drivers/services/processRequest.js.map +0 -1
package/.yarn/install-state.gz
CHANGED
|
Binary file
|
package/Readme.md
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
# Hono NestJS Adapter
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/@kiyasov/platform-hono)
|
|
4
|
+
[](https://www.npmjs.com/package/@kiyasov/platform-hono)
|
|
5
|
+
|
|
3
6
|
This package allows you to use Hono with the NestJS framework.
|
|
4
7
|
|
|
5
8
|
## Components
|
|
@@ -8,12 +11,22 @@ This package allows you to use Hono with the NestJS framework.
|
|
|
8
11
|
|
|
9
12
|
## How to Use
|
|
10
13
|
|
|
14
|
+
### Setup
|
|
15
|
+
|
|
16
|
+
To install [`@kiyasov/platform-hono`](https://www.npmjs.com/package/@kiyasov/platform-hono):
|
|
17
|
+
|
|
18
|
+
```shell
|
|
19
|
+
npm install @kiyasov/platform-hono
|
|
20
|
+
# or
|
|
21
|
+
yarn add @kiyasov/platform-hono
|
|
22
|
+
```
|
|
23
|
+
|
|
11
24
|
### Create Application
|
|
12
25
|
|
|
13
26
|
```typescript
|
|
14
27
|
import { NestFactory } from "@nestjs/core";
|
|
15
28
|
import { AppModule } from "./app.module";
|
|
16
|
-
import { HonoAdapter } from "
|
|
29
|
+
import { HonoAdapter } from "@kiyasov/platform-hono";
|
|
17
30
|
|
|
18
31
|
const app = await NestFactory.create<NestHonoApplication>(
|
|
19
32
|
AppModule,
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import autocannon from "autocannon";
|
|
2
|
+
import { PassThrough } from "stream";
|
|
3
|
+
|
|
4
|
+
// Example base64-encoded image (black square 100x100 pixels)
|
|
5
|
+
const base64Content =
|
|
6
|
+
"iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAIAAAD/gAIDAAAABmJLR0QA/wD/AP+gvaeTAAAAJ0lEQVR4nO3BAQEAAACCIP+vbkhAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwH8GAAF3Xq9HAAAAAElFTkSuQmCC";
|
|
7
|
+
|
|
8
|
+
// Create the request body with the base64 string
|
|
9
|
+
const formData = `--boundary
|
|
10
|
+
Content-Disposition: form-data; name="file"; filename="square.png"
|
|
11
|
+
Content-Type: image/png
|
|
12
|
+
|
|
13
|
+
${base64Content}
|
|
14
|
+
--boundary--`;
|
|
15
|
+
|
|
16
|
+
// Set up headers
|
|
17
|
+
const headers = {
|
|
18
|
+
"Content-Type": "multipart/form-data; boundary=boundary",
|
|
19
|
+
"Content-Length": Buffer.byteLength(formData),
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const pass = new PassThrough();
|
|
23
|
+
pass.end(formData);
|
|
24
|
+
|
|
25
|
+
const chunks = [];
|
|
26
|
+
|
|
27
|
+
pass.on("data", (chunk) => chunks.push(chunk));
|
|
28
|
+
pass.on("end", () => {
|
|
29
|
+
const formBuffer = Buffer.concat(chunks);
|
|
30
|
+
const instance = autocannon({
|
|
31
|
+
url: "http://localhost:3000/uploadFile",
|
|
32
|
+
method: "POST",
|
|
33
|
+
headers: headers,
|
|
34
|
+
body: formBuffer,
|
|
35
|
+
connections: 200,
|
|
36
|
+
duration: 5,
|
|
37
|
+
pipelining: 10,
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
autocannon.track(instance, { renderProgressBar: true });
|
|
41
|
+
|
|
42
|
+
process.once("SIGINT", () => {
|
|
43
|
+
instance.stop();
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
pass.on("error", (err) => {
|
|
48
|
+
console.error("Error reading data from the stream", err);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
pass.resume();
|
package/bun.lockb
ADDED
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphQLUpload.js","sourceRoot":"","sources":["../../../../../src/drivers/graphQLUpload/GraphQLUpload.ts"],"names":[],"mappings":";;;AAAA,qCAAkC;AAClC,qCAAmE;
|
|
1
|
+
{"version":3,"file":"GraphQLUpload.js","sourceRoot":"","sources":["../../../../../src/drivers/graphQLUpload/GraphQLUpload.ts"],"names":[],"mappings":";;;AAAA,qCAAkC;AAClC,qCAAmE;AAEtD,QAAA,aAAa,GAAG,IAAI,2BAAiB,CAAC;IACjD,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,oDAAoD;IACjE,UAAU,CAAC,KAAmC;QAC5C,IAAI,KAAK,YAAY,eAAM;YAAE,OAAO,KAAK,CAAC,OAAO,CAAC;QAClD,MAAM,IAAI,sBAAY,CAAC,uBAAuB,CAAC,CAAC;IAClD,CAAC;IACD,YAAY,CAAC,IAAyB;QACpC,MAAM,IAAI,sBAAY,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,SAAS;QACP,MAAM,IAAI,sBAAY,CAAC,mCAAmC,CAAC,CAAC;IAC9D,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import { ApolloServer, BaseContext } from "@apollo/server";
|
|
3
2
|
import { ModulesContainer } from "@nestjs/core";
|
|
4
3
|
import { AbstractGraphQLDriver } from "@nestjs/graphql";
|
|
5
4
|
import { ApolloDriverConfig } from "@nestjs/apollo";
|
|
6
|
-
import http from "http";
|
|
7
5
|
export declare class HonoGraphQLDriver<T extends Record<string, any> = ApolloDriverConfig> extends AbstractGraphQLDriver {
|
|
8
6
|
protected apolloServer: ApolloServer<BaseContext>;
|
|
9
7
|
private _subscriptionService?;
|
|
@@ -17,7 +15,6 @@ export declare class HonoGraphQLDriver<T extends Record<string, any> = ApolloDri
|
|
|
17
15
|
stop(): Promise<void>;
|
|
18
16
|
private httpHeadersToMap;
|
|
19
17
|
private parseBody;
|
|
20
|
-
headersToRecord(headers: Headers): http.IncomingHttpHeaders;
|
|
21
18
|
private logError;
|
|
22
19
|
private parseFormURL;
|
|
23
20
|
}
|
|
@@ -111,13 +111,6 @@ class HonoGraphQLDriver extends graphql_1.AbstractGraphQLDriver {
|
|
|
111
111
|
}
|
|
112
112
|
return {};
|
|
113
113
|
}
|
|
114
|
-
headersToRecord(headers) {
|
|
115
|
-
const obj = {};
|
|
116
|
-
headers.forEach((value, key) => {
|
|
117
|
-
obj[key] = value;
|
|
118
|
-
});
|
|
119
|
-
return obj;
|
|
120
|
-
}
|
|
121
114
|
logError(e) {
|
|
122
115
|
if (e instanceof Error) {
|
|
123
116
|
common_1.Logger.error(e.stack || e.message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql.driver.js","sourceRoot":"","sources":["../../../../src/drivers/graphql.driver.ts"],"names":[],"mappings":";;;AAAA,2CAAsE;AAEtE,6CAIyB;AACzB,2EAA0F;AAI1F,2CAAwC;
|
|
1
|
+
{"version":3,"file":"graphql.driver.js","sourceRoot":"","sources":["../../../../src/drivers/graphql.driver.ts"],"names":[],"mappings":";;;AAAA,2CAAsE;AAEtE,6CAIyB;AACzB,2EAA0F;AAI1F,2CAAwC;AAExC,kFAA6E;AAC7E,mDAAiD;AAEjD,MAAa,iBAEX,SAAQ,+BAAqB;IAK7B,YAAY,gBAAkC;QAC5C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,sBAAsB,GAAG,IAAI,iDAAsB,CAAC,gBAAgB,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAU;QACpB,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;QAC7C,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;QAE3C,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAEjC,IAAI,OAAO,CAAC,2BAA2B,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YACjE,MAAM,oBAAoB,GACxB,OAAO,CAAC,aAAa,IAAI,EAAE,4BAA4B,EAAE,EAAE,EAAE,CAAC;YAChE,IAAI,CAAC,oBAAoB,GAAG,IAAI,gCAAsB,CACpD;gBACE,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,GAAG,oBAAoB;aACxB,EACD,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,aAAa,EAAE,CAClD,CAAC;QACJ,CAAC;IACH,CAAC;IAES,KAAK,CAAC,YAAY,CAC1B,OAAU,EACV,EAAE,YAAY,KAAoC,EAAE;QAEpD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QACtD,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;QAC7C,MAAM,GAAG,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,qBAAqB,GAAG,IAAA,mDAAiC,EAAC;YAC9D,UAAU,EAAE,WAAW,CAAC,aAAa,EAAE;SACxC,CAAC,CAAC;QAEH,YAAY,EAAE,EAAE,CAAC;QAEjB,MAAM,MAAM,GAAG,IAAI,qBAAY,CAAC;YAC9B,QAAQ;YACR,SAAS;YACT,MAAM;YACN,GAAG,OAAO;YACV,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC;SAC/D,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QAErB,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAY,EAAE,EAAE;YACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAE3C,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAiB,CAAC,CAAC;YAEhE,MAAM,eAAe,GAAG,OAAO,EAAE,OAAO,IAAI,cAAc,CAAC;YAE3D,MAAM,mBAAmB,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC;gBACjE,kBAAkB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM;oBACtB,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;oBACnD,MAAM,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM;iBACpC;gBACD,OAAO,EAAE,GAAG,EAAE,CACZ,eAAe,CAAC,GAAG,EAAE;oBACnB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM;oBACtB,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG;oBAChB,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;oBACtB,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;iBACjD,CAAC;aACL,CAAC,CAAC;YAEH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,mBAAmB,CAAC;YAEtD,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,OAAO,EAAE,CAAC;gBAC/C,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YACrC,CAAC;YAED,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAE,MAAqB,CAAC,CAAC;YAEhE,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC7B,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;YAED,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC;gBACxC,KAAK,CAAC,KAAK,CAAC,UAAU;oBACpB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;wBAC7C,UAAU,CAAC,OAAO,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBACtD,CAAC;oBACD,UAAU,CAAC,KAAK,EAAE,CAAC;gBACrB,CAAC;aACF,CAAC,CAAC;YAEH,OAAO,IAAI,QAAQ,CAAC,cAAc,EAAE;gBAClC,OAAO,EAAE,EAAE,cAAc,EAAE,0BAA0B,EAAE;aACxD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;IAC7B,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,MAAM,IAAI,CAAC,oBAAoB,EAAE,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC;IAClC,CAAC;IAEO,gBAAgB,CAAC,OAAgB;QACvC,MAAM,GAAG,GAAG,IAAI,kBAAS,EAAE,CAAC;QAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACrD,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,GAAY;QAClC,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;QACpB,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAE/C,IAAI,WAAW,KAAK,qBAAqB;YACvC,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;QACrC,IAAI,WAAW,KAAK,kBAAkB;YACpC,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,WAAW,KAAK,mCAAmC;YACrD,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,WAAW,EAAE,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACnD,OAAO,IAAA,8BAAc,EAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,QAAQ,CAAC,CAAU;QACzB,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;YACvB,eAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,GAAgB;QACzC,MAAM,YAAY,GAAG,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3D,OAAO,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;IACpD,CAAC;CACF;AA1JD,8CA0JC"}
|