@kiyasov/platform-hono 1.4.0 → 1.4.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/.prettierignore +1 -0
- package/.prettierrc +3 -0
- package/dist/build.d.ts +1 -0
- package/dist/build.js +28 -0
- package/dist/build.js.map +1 -0
- package/dist/cjs/index.d.ts +4 -4
- package/dist/cjs/src/adapters/hono-adapter.d.ts +22 -15
- package/dist/cjs/src/adapters/hono-adapter.js +60 -58
- package/dist/cjs/src/adapters/hono-adapter.js.map +1 -1
- package/dist/cjs/src/adapters/index.d.ts +1 -1
- package/dist/cjs/src/drivers/graphQLUpload/GraphQLUpload.d.ts +2 -2
- package/dist/cjs/src/drivers/graphQLUpload/GraphQLUpload.js +6 -6
- package/dist/cjs/src/drivers/graphQLUpload/GraphQLUpload.js.map +1 -1
- package/dist/cjs/src/drivers/graphQLUpload/Upload.d.ts +1 -1
- package/dist/cjs/src/drivers/graphQLUpload/fs-capacitor.d.ts +8 -8
- package/dist/cjs/src/drivers/graphQLUpload/fs-capacitor.js +30 -30
- package/dist/cjs/src/drivers/graphQLUpload/fs-capacitor.js.map +1 -1
- package/dist/cjs/src/drivers/graphQLUpload/index.d.ts +4 -4
- package/dist/cjs/src/drivers/graphQLUpload/processRequest.d.ts +2 -2
- package/dist/cjs/src/drivers/graphQLUpload/processRequest.js +6 -6
- package/dist/cjs/src/drivers/graphQLUpload/processRequest.js.map +1 -1
- package/dist/cjs/src/drivers/graphql.driver.d.ts +4 -4
- package/dist/cjs/src/drivers/graphql.driver.js +12 -12
- package/dist/cjs/src/drivers/graphql.driver.js.map +1 -1
- package/dist/cjs/src/drivers/index.d.ts +2 -2
- package/dist/cjs/src/drivers/services/plugins-explorer.service.d.ts +1 -1
- package/dist/cjs/src/drivers/services/plugins-explorer.service.js.map +1 -1
- package/dist/cjs/src/interfaces/hono.interface.d.ts +1 -1
- package/dist/cjs/src/interfaces/index.d.ts +2 -2
- package/dist/cjs/src/interfaces/nest-hono-application.interface.d.ts +4 -4
- package/dist/cjs/src/multer/decorators/index.d.ts +2 -2
- package/dist/cjs/src/multer/decorators/uploaded-files-decorator.d.ts +1 -1
- package/dist/cjs/src/multer/decorators/uploaded-files-decorator.js.map +1 -1
- package/dist/cjs/src/multer/fs/index.js +8 -8
- package/dist/cjs/src/multer/fs/index.js.map +1 -1
- package/dist/cjs/src/multer/index.d.ts +4 -4
- package/dist/cjs/src/multer/interceptors/any-files-interceptor.d.ts +2 -2
- package/dist/cjs/src/multer/interceptors/any-files-interceptor.js +5 -5
- package/dist/cjs/src/multer/interceptors/any-files-interceptor.js.map +1 -1
- package/dist/cjs/src/multer/interceptors/file-fields-interceptor.d.ts +3 -3
- package/dist/cjs/src/multer/interceptors/file-fields-interceptor.js +5 -5
- package/dist/cjs/src/multer/interceptors/file-fields-interceptor.js.map +1 -1
- package/dist/cjs/src/multer/interceptors/file-interceptor.d.ts +2 -2
- package/dist/cjs/src/multer/interceptors/file-interceptor.js +5 -5
- package/dist/cjs/src/multer/interceptors/file-interceptor.js.map +1 -1
- package/dist/cjs/src/multer/interceptors/files-interceptor.d.ts +2 -2
- package/dist/cjs/src/multer/interceptors/files-interceptor.js +5 -5
- package/dist/cjs/src/multer/interceptors/files-interceptor.js.map +1 -1
- package/dist/cjs/src/multer/interceptors/index.d.ts +4 -4
- package/dist/cjs/src/multer/multipart/exceptions.js.map +1 -1
- package/dist/cjs/src/multer/multipart/file.d.ts +1 -1
- package/dist/cjs/src/multer/multipart/file.js.map +1 -1
- package/dist/cjs/src/multer/multipart/filter.d.ts +1 -1
- package/dist/cjs/src/multer/multipart/handlers/any-files.d.ts +6 -4
- package/dist/cjs/src/multer/multipart/handlers/any-files.js +1 -1
- package/dist/cjs/src/multer/multipart/handlers/any-files.js.map +1 -1
- package/dist/cjs/src/multer/multipart/handlers/file-fields.d.ts +9 -6
- package/dist/cjs/src/multer/multipart/handlers/file-fields.js +8 -20
- package/dist/cjs/src/multer/multipart/handlers/file-fields.js.map +1 -1
- package/dist/cjs/src/multer/multipart/handlers/index.d.ts +1 -1
- package/dist/cjs/src/multer/multipart/handlers/multiple-files.d.ts +6 -4
- package/dist/cjs/src/multer/multipart/handlers/multiple-files.js +1 -1
- package/dist/cjs/src/multer/multipart/handlers/multiple-files.js.map +1 -1
- package/dist/cjs/src/multer/multipart/handlers/single-file.d.ts +6 -4
- package/dist/cjs/src/multer/multipart/handlers/single-file.js +6 -6
- package/dist/cjs/src/multer/multipart/handlers/single-file.js.map +1 -1
- package/dist/cjs/src/multer/multipart/index.d.ts +3 -3
- package/dist/cjs/src/multer/multipart/options.js.map +1 -1
- package/dist/cjs/src/multer/multipart/request.d.ts +8 -7
- package/dist/cjs/src/multer/multipart/request.js +6 -6
- package/dist/cjs/src/multer/multipart/request.js.map +1 -1
- package/dist/cjs/src/multer/storage/disk-storage.d.ts +2 -2
- package/dist/cjs/src/multer/storage/disk-storage.js +5 -5
- package/dist/cjs/src/multer/storage/disk-storage.js.map +1 -1
- package/dist/cjs/src/multer/storage/index.d.ts +3 -3
- package/dist/cjs/src/multer/storage/memory-storage.d.ts +4 -3
- package/dist/cjs/src/multer/storage/memory-storage.js +1 -1
- package/dist/cjs/src/multer/storage/memory-storage.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/build.d.ts +1 -0
- package/dist/esm/build.js +28 -0
- package/dist/esm/build.js.map +1 -0
- package/dist/esm/index.d.ts +4 -4
- package/dist/esm/index.js +4 -4
- package/dist/esm/src/adapters/hono-adapter.d.ts +22 -15
- package/dist/esm/src/adapters/hono-adapter.js +69 -67
- package/dist/esm/src/adapters/hono-adapter.js.map +1 -1
- package/dist/esm/src/adapters/index.d.ts +1 -1
- package/dist/esm/src/adapters/index.js +1 -1
- package/dist/esm/src/drivers/graphQLUpload/GraphQLUpload.d.ts +2 -2
- package/dist/esm/src/drivers/graphQLUpload/GraphQLUpload.js +7 -7
- package/dist/esm/src/drivers/graphQLUpload/GraphQLUpload.js.map +1 -1
- package/dist/esm/src/drivers/graphQLUpload/Upload.d.ts +1 -1
- package/dist/esm/src/drivers/graphQLUpload/fs-capacitor.d.ts +8 -8
- package/dist/esm/src/drivers/graphQLUpload/fs-capacitor.js +35 -35
- package/dist/esm/src/drivers/graphQLUpload/fs-capacitor.js.map +1 -1
- package/dist/esm/src/drivers/graphQLUpload/index.d.ts +4 -4
- package/dist/esm/src/drivers/graphQLUpload/index.js +4 -4
- package/dist/esm/src/drivers/graphQLUpload/processRequest.d.ts +2 -2
- package/dist/esm/src/drivers/graphQLUpload/processRequest.js +7 -7
- package/dist/esm/src/drivers/graphQLUpload/processRequest.js.map +1 -1
- package/dist/esm/src/drivers/graphql.driver.d.ts +4 -4
- package/dist/esm/src/drivers/graphql.driver.js +16 -16
- package/dist/esm/src/drivers/graphql.driver.js.map +1 -1
- package/dist/esm/src/drivers/index.d.ts +2 -2
- package/dist/esm/src/drivers/index.js +2 -2
- package/dist/esm/src/drivers/services/plugins-explorer.service.d.ts +1 -1
- package/dist/esm/src/drivers/services/plugins-explorer.service.js.map +1 -1
- package/dist/esm/src/interfaces/hono.interface.d.ts +1 -1
- package/dist/esm/src/interfaces/index.d.ts +2 -2
- package/dist/esm/src/interfaces/index.js +2 -2
- package/dist/esm/src/interfaces/nest-hono-application.interface.d.ts +4 -4
- package/dist/esm/src/multer/decorators/index.d.ts +2 -2
- package/dist/esm/src/multer/decorators/index.js +2 -2
- package/dist/esm/src/multer/decorators/uploaded-files-decorator.d.ts +1 -1
- package/dist/esm/src/multer/decorators/uploaded-files-decorator.js.map +1 -1
- package/dist/esm/src/multer/fs/index.js +7 -7
- package/dist/esm/src/multer/fs/index.js.map +1 -1
- package/dist/esm/src/multer/index.d.ts +4 -4
- package/dist/esm/src/multer/index.js +4 -4
- package/dist/esm/src/multer/interceptors/any-files-interceptor.d.ts +2 -2
- package/dist/esm/src/multer/interceptors/any-files-interceptor.js +7 -7
- package/dist/esm/src/multer/interceptors/any-files-interceptor.js.map +1 -1
- package/dist/esm/src/multer/interceptors/file-fields-interceptor.d.ts +3 -3
- package/dist/esm/src/multer/interceptors/file-fields-interceptor.js +7 -7
- package/dist/esm/src/multer/interceptors/file-fields-interceptor.js.map +1 -1
- package/dist/esm/src/multer/interceptors/file-interceptor.d.ts +2 -2
- package/dist/esm/src/multer/interceptors/file-interceptor.js +7 -7
- package/dist/esm/src/multer/interceptors/file-interceptor.js.map +1 -1
- package/dist/esm/src/multer/interceptors/files-interceptor.d.ts +2 -2
- package/dist/esm/src/multer/interceptors/files-interceptor.js +7 -7
- package/dist/esm/src/multer/interceptors/files-interceptor.js.map +1 -1
- package/dist/esm/src/multer/interceptors/index.d.ts +4 -4
- package/dist/esm/src/multer/interceptors/index.js +4 -4
- package/dist/esm/src/multer/multipart/exceptions.js.map +1 -1
- package/dist/esm/src/multer/multipart/file.d.ts +1 -1
- package/dist/esm/src/multer/multipart/file.js.map +1 -1
- package/dist/esm/src/multer/multipart/filter.d.ts +1 -1
- package/dist/esm/src/multer/multipart/handlers/any-files.d.ts +6 -4
- package/dist/esm/src/multer/multipart/handlers/any-files.js +3 -3
- package/dist/esm/src/multer/multipart/handlers/any-files.js.map +1 -1
- package/dist/esm/src/multer/multipart/handlers/file-fields.d.ts +9 -6
- package/dist/esm/src/multer/multipart/handlers/file-fields.js +11 -23
- package/dist/esm/src/multer/multipart/handlers/file-fields.js.map +1 -1
- package/dist/esm/src/multer/multipart/handlers/index.d.ts +1 -1
- package/dist/esm/src/multer/multipart/handlers/multiple-files.d.ts +6 -4
- package/dist/esm/src/multer/multipart/handlers/multiple-files.js +4 -4
- package/dist/esm/src/multer/multipart/handlers/multiple-files.js.map +1 -1
- package/dist/esm/src/multer/multipart/handlers/single-file.d.ts +6 -4
- package/dist/esm/src/multer/multipart/handlers/single-file.js +8 -8
- package/dist/esm/src/multer/multipart/handlers/single-file.js.map +1 -1
- package/dist/esm/src/multer/multipart/index.d.ts +3 -3
- package/dist/esm/src/multer/multipart/index.js +2 -2
- package/dist/esm/src/multer/multipart/options.js.map +1 -1
- package/dist/esm/src/multer/multipart/request.d.ts +8 -7
- package/dist/esm/src/multer/multipart/request.js +7 -7
- package/dist/esm/src/multer/multipart/request.js.map +1 -1
- package/dist/esm/src/multer/storage/disk-storage.d.ts +2 -2
- package/dist/esm/src/multer/storage/disk-storage.js +9 -9
- package/dist/esm/src/multer/storage/disk-storage.js.map +1 -1
- package/dist/esm/src/multer/storage/index.d.ts +3 -3
- package/dist/esm/src/multer/storage/index.js +3 -3
- package/dist/esm/src/multer/storage/memory-storage.d.ts +3 -3
- package/dist/esm/src/multer/storage/memory-storage.js +1 -1
- package/dist/esm/src/multer/storage/memory-storage.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/src/adapters/hono-adapter.d.ts +66 -0
- package/dist/src/adapters/hono-adapter.js +270 -0
- package/dist/src/adapters/hono-adapter.js.map +1 -0
- package/dist/src/adapters/index.d.ts +1 -0
- package/dist/src/adapters/index.js +2 -0
- package/dist/src/adapters/index.js.map +1 -0
- package/dist/src/drivers/constants/apollo.constants.d.ts +1 -0
- package/dist/src/drivers/constants/apollo.constants.js +2 -0
- package/dist/src/drivers/constants/apollo.constants.js.map +1 -0
- package/dist/src/drivers/constants/index.d.ts +1 -0
- package/dist/src/drivers/constants/index.js +2 -0
- package/dist/src/drivers/constants/index.js.map +1 -0
- package/dist/src/drivers/graphQLUpload/GraphQLUpload.d.ts +3 -0
- package/dist/src/drivers/graphQLUpload/GraphQLUpload.js +18 -0
- package/dist/src/drivers/graphQLUpload/GraphQLUpload.js.map +1 -0
- package/dist/src/drivers/graphQLUpload/Upload.d.ts +16 -0
- package/dist/src/drivers/graphQLUpload/Upload.js +17 -0
- package/dist/src/drivers/graphQLUpload/Upload.js.map +1 -0
- package/dist/src/drivers/graphQLUpload/fs-capacitor.d.ts +42 -0
- package/dist/src/drivers/graphQLUpload/fs-capacitor.js +185 -0
- package/dist/src/drivers/graphQLUpload/fs-capacitor.js.map +1 -0
- package/dist/src/drivers/graphQLUpload/index.d.ts +4 -0
- package/dist/src/drivers/graphQLUpload/index.js +5 -0
- package/dist/src/drivers/graphQLUpload/index.js.map +1 -0
- package/dist/src/drivers/graphQLUpload/processRequest.d.ts +2 -0
- package/dist/src/drivers/graphQLUpload/processRequest.js +47 -0
- package/dist/src/drivers/graphQLUpload/processRequest.js.map +1 -0
- package/dist/src/drivers/graphql.driver.d.ts +20 -0
- package/dist/src/drivers/graphql.driver.js +125 -0
- package/dist/src/drivers/graphql.driver.js.map +1 -0
- package/dist/src/drivers/index.d.ts +2 -0
- package/dist/src/drivers/index.js +3 -0
- package/dist/src/drivers/index.js.map +1 -0
- package/dist/src/drivers/services/plugins-explorer.service.d.ts +9 -0
- package/dist/src/drivers/services/plugins-explorer.service.js +22 -0
- package/dist/src/drivers/services/plugins-explorer.service.js.map +1 -0
- package/dist/src/interfaces/hono.interface.d.ts +4 -0
- package/dist/src/interfaces/hono.interface.js +2 -0
- package/dist/src/interfaces/hono.interface.js.map +1 -0
- package/dist/src/interfaces/index.d.ts +2 -0
- package/dist/src/interfaces/index.js +3 -0
- package/dist/src/interfaces/index.js.map +1 -0
- package/dist/src/interfaces/nest-hono-application.interface.d.ts +18 -0
- package/dist/src/interfaces/nest-hono-application.interface.js +2 -0
- package/dist/src/interfaces/nest-hono-application.interface.js.map +1 -0
- package/dist/src/multer/decorators/index.d.ts +2 -0
- package/dist/src/multer/decorators/index.js +3 -0
- package/dist/src/multer/decorators/index.js.map +1 -0
- package/dist/src/multer/decorators/uploaded-file-decorator.d.ts +1 -0
- package/dist/src/multer/decorators/uploaded-file-decorator.js +7 -0
- package/dist/src/multer/decorators/uploaded-file-decorator.js.map +1 -0
- package/dist/src/multer/decorators/uploaded-files-decorator.d.ts +1 -0
- package/dist/src/multer/decorators/uploaded-files-decorator.js +7 -0
- package/dist/src/multer/decorators/uploaded-files-decorator.js.map +1 -0
- package/dist/src/multer/fs/index.d.ts +2 -0
- package/dist/src/multer/fs/index.js +18 -0
- package/dist/src/multer/fs/index.js.map +1 -0
- package/dist/src/multer/index.d.ts +4 -0
- package/dist/src/multer/index.js +5 -0
- package/dist/src/multer/index.js.map +1 -0
- package/dist/src/multer/interceptors/any-files-interceptor.d.ts +3 -0
- package/dist/src/multer/interceptors/any-files-interceptor.js +27 -0
- package/dist/src/multer/interceptors/any-files-interceptor.js.map +1 -0
- package/dist/src/multer/interceptors/file-fields-interceptor.d.ts +4 -0
- package/dist/src/multer/interceptors/file-fields-interceptor.js +29 -0
- package/dist/src/multer/interceptors/file-fields-interceptor.js.map +1 -0
- package/dist/src/multer/interceptors/file-interceptor.d.ts +3 -0
- package/dist/src/multer/interceptors/file-interceptor.js +27 -0
- package/dist/src/multer/interceptors/file-interceptor.js.map +1 -0
- package/dist/src/multer/interceptors/files-interceptor.d.ts +3 -0
- package/dist/src/multer/interceptors/files-interceptor.js +27 -0
- package/dist/src/multer/interceptors/files-interceptor.js.map +1 -0
- package/dist/src/multer/interceptors/index.d.ts +4 -0
- package/dist/src/multer/interceptors/index.js +5 -0
- package/dist/src/multer/interceptors/index.js.map +1 -0
- package/dist/src/multer/multipart/exceptions.d.ts +1 -0
- package/dist/src/multer/multipart/exceptions.js +18 -0
- package/dist/src/multer/multipart/exceptions.js.map +1 -0
- package/dist/src/multer/multipart/file.d.ts +9 -0
- package/dist/src/multer/multipart/file.js +6 -0
- package/dist/src/multer/multipart/file.js.map +1 -0
- package/dist/src/multer/multipart/filter.d.ts +6 -0
- package/dist/src/multer/multipart/filter.js +18 -0
- package/dist/src/multer/multipart/filter.js.map +1 -0
- package/dist/src/multer/multipart/handlers/any-files.d.ts +10 -0
- package/dist/src/multer/multipart/handlers/any-files.js +29 -0
- package/dist/src/multer/multipart/handlers/any-files.js.map +1 -0
- package/dist/src/multer/multipart/handlers/file-fields.d.ts +17 -0
- package/dist/src/multer/multipart/handlers/file-fields.js +40 -0
- package/dist/src/multer/multipart/handlers/file-fields.js.map +1 -0
- package/dist/src/multer/multipart/handlers/index.d.ts +1 -0
- package/dist/src/multer/multipart/handlers/index.js +2 -0
- package/dist/src/multer/multipart/handlers/index.js.map +1 -0
- package/dist/src/multer/multipart/handlers/multiple-files.d.ts +10 -0
- package/dist/src/multer/multipart/handlers/multiple-files.js +36 -0
- package/dist/src/multer/multipart/handlers/multiple-files.js.map +1 -0
- package/dist/src/multer/multipart/handlers/single-file.d.ts +10 -0
- package/dist/src/multer/multipart/handlers/single-file.js +41 -0
- package/dist/src/multer/multipart/handlers/single-file.js.map +1 -0
- package/dist/src/multer/multipart/index.d.ts +3 -0
- package/dist/src/multer/multipart/index.js +3 -0
- package/dist/src/multer/multipart/index.js.map +1 -0
- package/dist/src/multer/multipart/options.d.ts +21 -0
- package/dist/src/multer/multipart/options.js +19 -0
- package/dist/src/multer/multipart/options.js.map +1 -0
- package/dist/src/multer/multipart/request.d.ts +15 -0
- package/dist/src/multer/multipart/request.js +17 -0
- package/dist/src/multer/multipart/request.js.map +1 -0
- package/dist/src/multer/storage/disk-storage.d.ts +31 -0
- package/dist/src/multer/storage/disk-storage.js +59 -0
- package/dist/src/multer/storage/disk-storage.js.map +1 -0
- package/dist/src/multer/storage/index.d.ts +3 -0
- package/dist/src/multer/storage/index.js +4 -0
- package/dist/src/multer/storage/index.js.map +1 -0
- package/dist/src/multer/storage/memory-storage.d.ts +19 -0
- package/dist/src/multer/storage/memory-storage.js +23 -0
- package/dist/src/multer/storage/memory-storage.js.map +1 -0
- package/dist/src/multer/storage/storage.d.ts +13 -0
- package/dist/src/multer/storage/storage.js +2 -0
- package/dist/src/multer/storage/storage.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/eslint.config.mjs +25 -0
- package/index.ts +4 -4
- package/package.json +20 -13
- package/src/adapters/hono-adapter.ts +113 -91
- package/src/adapters/index.ts +1 -1
- package/src/drivers/graphQLUpload/GraphQLUpload.ts +8 -7
- package/src/drivers/graphQLUpload/Upload.ts +1 -1
- package/src/drivers/graphQLUpload/fs-capacitor.ts +45 -45
- package/src/drivers/graphQLUpload/index.ts +4 -4
- package/src/drivers/graphQLUpload/processRequest.ts +11 -10
- package/src/drivers/graphql.driver.ts +24 -23
- package/src/drivers/index.ts +2 -2
- package/src/drivers/services/plugins-explorer.service.ts +2 -1
- package/src/interfaces/hono.interface.ts +1 -1
- package/src/interfaces/index.ts +2 -2
- package/src/interfaces/nest-hono-application.interface.ts +9 -9
- package/src/multer/decorators/index.ts +2 -2
- package/src/multer/decorators/uploaded-files-decorator.ts +1 -1
- package/src/multer/fs/index.ts +7 -11
- package/src/multer/index.ts +4 -4
- package/src/multer/interceptors/any-files-interceptor.ts +10 -13
- package/src/multer/interceptors/file-fields-interceptor.ts +10 -13
- package/src/multer/interceptors/file-interceptor.ts +10 -13
- package/src/multer/interceptors/files-interceptor.ts +10 -13
- package/src/multer/interceptors/index.ts +4 -4
- package/src/multer/multipart/exceptions.ts +1 -0
- package/src/multer/multipart/file.ts +2 -1
- package/src/multer/multipart/filter.ts +2 -2
- package/src/multer/multipart/handlers/any-files.ts +9 -7
- package/src/multer/multipart/handlers/file-fields.ts +47 -47
- package/src/multer/multipart/handlers/index.ts +1 -1
- package/src/multer/multipart/handlers/multiple-files.ts +11 -10
- package/src/multer/multipart/handlers/single-file.ts +26 -13
- package/src/multer/multipart/index.ts +3 -3
- package/src/multer/multipart/options.ts +1 -0
- package/src/multer/multipart/request.ts +33 -20
- package/src/multer/storage/disk-storage.ts +14 -14
- package/src/multer/storage/index.ts +3 -3
- package/src/multer/storage/memory-storage.ts +4 -3
- package/src/multer/storage/storage.ts +1 -0
- package/.yarn/install-state.gz +0 -0
- package/.yarnrc.yml +0 -1
- package/src/multer/crypto/index.ts +0 -4
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import pluginJs from '@eslint/js';
|
|
2
|
+
import perfectionist from 'eslint-plugin-perfectionist';
|
|
3
|
+
import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended';
|
|
4
|
+
import globals from 'globals';
|
|
5
|
+
import tseslint from 'typescript-eslint';
|
|
6
|
+
|
|
7
|
+
/** @type {import('eslint').Linter.Config[]} */
|
|
8
|
+
export default [
|
|
9
|
+
{
|
|
10
|
+
files: ['**/*.{js,mjs,cjs,ts}'],
|
|
11
|
+
ignores: ['node_modules', 'dist'],
|
|
12
|
+
},
|
|
13
|
+
{ languageOptions: { globals: globals.browser } },
|
|
14
|
+
pluginJs.configs.recommended,
|
|
15
|
+
...tseslint.configs.recommended,
|
|
16
|
+
eslintPluginPrettierRecommended,
|
|
17
|
+
{
|
|
18
|
+
plugins: {
|
|
19
|
+
perfectionist,
|
|
20
|
+
},
|
|
21
|
+
rules: {
|
|
22
|
+
'perfectionist/sort-imports': 'error',
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
];
|
package/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
4
|
-
export * from
|
|
1
|
+
export * from './src/adapters';
|
|
2
|
+
export * from './src/interfaces';
|
|
3
|
+
export * from './src/drivers';
|
|
4
|
+
export * from './src/multer';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kiyasov/platform-hono",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.2",
|
|
4
4
|
"description": "Nest adapter for Hono",
|
|
5
5
|
"author": "Islam Kiiasov",
|
|
6
6
|
"repository": {
|
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
"hono": "^4.7.1"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
+
"@eslint/js": "^9.20.0",
|
|
38
39
|
"@nestjs/cli": "^11.0.2",
|
|
39
40
|
"@nestjs/common": "^11.0.9",
|
|
40
41
|
"@nestjs/core": "^11.0.9",
|
|
@@ -45,24 +46,30 @@
|
|
|
45
46
|
"@types/busboy": "^1.5.4",
|
|
46
47
|
"autocannon": "^8.0.0",
|
|
47
48
|
"bun": "^1.2.2",
|
|
49
|
+
"eslint": "^9.20.1",
|
|
50
|
+
"eslint-config-prettier": "^10.0.1",
|
|
51
|
+
"eslint-plugin-perfectionist": "^4.9.0",
|
|
52
|
+
"eslint-plugin-prettier": "^5.2.3",
|
|
53
|
+
"globals": "^15.15.0",
|
|
48
54
|
"graphql": "^16.10.0",
|
|
49
55
|
"graphql-subscriptions": "^3.0.0",
|
|
56
|
+
"prettier": "^3.5.1",
|
|
50
57
|
"reflect-metadata": "^0.2.2",
|
|
51
58
|
"rimraf": "^6.0.1",
|
|
52
59
|
"rxjs": "^7.8.1",
|
|
53
60
|
"tsc": "^2.0.4",
|
|
54
|
-
"typescript": "^5.7.3"
|
|
61
|
+
"typescript": "^5.7.3",
|
|
62
|
+
"typescript-eslint": "^8.24.0"
|
|
55
63
|
},
|
|
56
64
|
"scripts": {
|
|
57
|
-
"build:esm": "node_modules
|
|
58
|
-
"build:cjs": "node_modules
|
|
59
|
-
"build": "
|
|
60
|
-
"dev": "cd example &&
|
|
61
|
-
"dev:bun": "cd example && nest start -w --copy-files --exec \"bun run\"",
|
|
62
|
-
"benchmark": "
|
|
63
|
-
"benchmark:bun": "
|
|
64
|
-
"benchmark:bun:file": "
|
|
65
|
-
"benchmark:node:file": "
|
|
66
|
-
}
|
|
67
|
-
"packageManager": "yarn@4.4.0"
|
|
65
|
+
"build:esm": "bun ./node_modules/typescript/bin/tsc --p tsconfig.esm.json",
|
|
66
|
+
"build:cjs": "bun ./node_modules/typescript/bin/tsc --p tsconfig.cjs.json",
|
|
67
|
+
"build": "bun run build:esm && bun run build:cjs",
|
|
68
|
+
"dev": "cd example && bun nest start -w --copy-files",
|
|
69
|
+
"dev:bun": "cd example && nest start -w --copy-files --exec \"bun run --inspect\"",
|
|
70
|
+
"benchmark": "bun dev & ( sleep 5 && autocannon -c 200 -d 5 -p 10 http://localhost:3000 )",
|
|
71
|
+
"benchmark:bun": "bun dev:bun & ( sleep 5 && autocannon -c 200 -d 5 -p 10 http://localhost:3000 )",
|
|
72
|
+
"benchmark:bun:file": "bun run dev:bun & ( sleep 5 && bun run ./benchmarks/benchmark.mjs)",
|
|
73
|
+
"benchmark:node:file": "bun run dev & ( sleep 5 && node ./benchmarks/benchmark.mjs)"
|
|
74
|
+
}
|
|
68
75
|
}
|
|
@@ -1,26 +1,27 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import {
|
|
1
|
+
import { HttpBindings, createAdaptorServer } from '@hono/node-server';
|
|
2
|
+
import {
|
|
3
|
+
ServeStaticOptions,
|
|
4
|
+
serveStatic,
|
|
5
|
+
} from '@hono/node-server/serve-static';
|
|
6
|
+
import { RESPONSE_ALREADY_SENT } from '@hono/node-server/utils/response';
|
|
7
|
+
import { RequestMethod } from '@nestjs/common';
|
|
8
|
+
import { HttpStatus, Logger } from '@nestjs/common';
|
|
7
9
|
import {
|
|
8
10
|
ErrorHandler,
|
|
9
11
|
NestApplicationOptions,
|
|
10
12
|
RequestHandler,
|
|
11
|
-
} from
|
|
12
|
-
import {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
} from
|
|
16
|
-
import {
|
|
17
|
-
import
|
|
18
|
-
import {
|
|
19
|
-
import
|
|
20
|
-
import
|
|
21
|
-
|
|
22
|
-
import
|
|
23
|
-
import { HonoRequest, TypeBodyParser } from "../interfaces";
|
|
13
|
+
} from '@nestjs/common/interfaces';
|
|
14
|
+
import { AbstractHttpAdapter } from '@nestjs/core/adapters/http-adapter';
|
|
15
|
+
import { Context, Next, Hono } from 'hono';
|
|
16
|
+
import { bodyLimit } from 'hono/body-limit';
|
|
17
|
+
import { cors } from 'hono/cors';
|
|
18
|
+
import { RedirectStatusCode, StatusCode } from 'hono/utils/http-status';
|
|
19
|
+
import * as http from 'http';
|
|
20
|
+
import { Http2SecureServer, Http2Server } from 'http2';
|
|
21
|
+
import * as https from 'https';
|
|
22
|
+
import { Server } from 'node:net';
|
|
23
|
+
|
|
24
|
+
import { HonoRequest, TypeBodyParser } from '../interfaces';
|
|
24
25
|
|
|
25
26
|
type HonoHandler = RequestHandler<HonoRequest, Context>;
|
|
26
27
|
|
|
@@ -35,11 +36,14 @@ export class HonoAdapter extends AbstractHttpAdapter<
|
|
|
35
36
|
HonoRequest,
|
|
36
37
|
Context
|
|
37
38
|
> {
|
|
38
|
-
protected readonly instance: Hono<{ Bindings: HttpBindings }>;
|
|
39
39
|
private _isParserRegistered: boolean;
|
|
40
40
|
|
|
41
|
+
protected readonly instance: Hono<{ Bindings: HttpBindings }>;
|
|
42
|
+
|
|
41
43
|
constructor() {
|
|
42
|
-
|
|
44
|
+
const honoInstance = new Hono<{ Bindings: HttpBindings }>();
|
|
45
|
+
super(honoInstance);
|
|
46
|
+
this.instance = honoInstance;
|
|
43
47
|
}
|
|
44
48
|
|
|
45
49
|
get isParserRegistered(): boolean {
|
|
@@ -48,42 +52,42 @@ export class HonoAdapter extends AbstractHttpAdapter<
|
|
|
48
52
|
|
|
49
53
|
private getRouteAndHandler(
|
|
50
54
|
pathOrHandler: string | HonoHandler,
|
|
51
|
-
handler?: HonoHandler
|
|
55
|
+
handler?: HonoHandler,
|
|
52
56
|
): [string, HonoHandler] {
|
|
53
|
-
|
|
54
|
-
handler = typeof pathOrHandler ===
|
|
57
|
+
const path = typeof pathOrHandler === 'function' ? '' : pathOrHandler;
|
|
58
|
+
handler = typeof pathOrHandler === 'function' ? pathOrHandler : handler;
|
|
55
59
|
return [path, handler];
|
|
56
60
|
}
|
|
57
61
|
|
|
58
62
|
private createRouteHandler(routeHandler: HonoHandler) {
|
|
59
63
|
return async (ctx: Context, next: Next) => {
|
|
60
|
-
ctx.req[
|
|
64
|
+
ctx.req['params'] = ctx.req.param();
|
|
61
65
|
await routeHandler(ctx.req, ctx, next);
|
|
62
66
|
return this.send(ctx);
|
|
63
67
|
};
|
|
64
68
|
}
|
|
65
69
|
|
|
66
70
|
private async send(ctx: Ctx) {
|
|
67
|
-
if (typeof ctx ===
|
|
71
|
+
if (typeof ctx === 'function') {
|
|
68
72
|
ctx = await ctx();
|
|
69
73
|
}
|
|
70
74
|
|
|
71
|
-
const body = ctx.get(
|
|
72
|
-
let responseContentType = await this.getHeader(ctx,
|
|
75
|
+
const body = ctx.get('body');
|
|
76
|
+
let responseContentType = await this.getHeader(ctx, 'Content-Type');
|
|
73
77
|
|
|
74
|
-
if (!responseContentType || responseContentType.startsWith(
|
|
78
|
+
if (!responseContentType || responseContentType.startsWith('text/plain')) {
|
|
75
79
|
if (body instanceof Buffer) {
|
|
76
|
-
responseContentType =
|
|
77
|
-
} else if (typeof body ===
|
|
78
|
-
responseContentType =
|
|
80
|
+
responseContentType = 'application/octet-stream';
|
|
81
|
+
} else if (typeof body === 'object') {
|
|
82
|
+
responseContentType = 'application/json';
|
|
79
83
|
}
|
|
80
84
|
|
|
81
|
-
this.setHeader(ctx,
|
|
85
|
+
this.setHeader(ctx, 'Content-Type', responseContentType);
|
|
82
86
|
}
|
|
83
87
|
|
|
84
88
|
if (
|
|
85
|
-
responseContentType ===
|
|
86
|
-
typeof body ===
|
|
89
|
+
responseContentType === 'application/json' &&
|
|
90
|
+
typeof body === 'object'
|
|
87
91
|
) {
|
|
88
92
|
return ctx.json(body);
|
|
89
93
|
}
|
|
@@ -94,7 +98,7 @@ export class HonoAdapter extends AbstractHttpAdapter<
|
|
|
94
98
|
public all(pathOrHandler: string | HonoHandler, handler?: HonoHandler) {
|
|
95
99
|
const [routePath, routeHandler] = this.getRouteAndHandler(
|
|
96
100
|
pathOrHandler,
|
|
97
|
-
handler
|
|
101
|
+
handler,
|
|
98
102
|
);
|
|
99
103
|
this.instance.all(routePath, this.createRouteHandler(routeHandler));
|
|
100
104
|
}
|
|
@@ -102,7 +106,7 @@ export class HonoAdapter extends AbstractHttpAdapter<
|
|
|
102
106
|
public get(pathOrHandler: string | HonoHandler, handler?: HonoHandler) {
|
|
103
107
|
const [routePath, routeHandler] = this.getRouteAndHandler(
|
|
104
108
|
pathOrHandler,
|
|
105
|
-
handler
|
|
109
|
+
handler,
|
|
106
110
|
);
|
|
107
111
|
this.instance.get(routePath, this.createRouteHandler(routeHandler));
|
|
108
112
|
}
|
|
@@ -110,7 +114,7 @@ export class HonoAdapter extends AbstractHttpAdapter<
|
|
|
110
114
|
public post(pathOrHandler: string | HonoHandler, handler?: HonoHandler) {
|
|
111
115
|
const [routePath, routeHandler] = this.getRouteAndHandler(
|
|
112
116
|
pathOrHandler,
|
|
113
|
-
handler
|
|
117
|
+
handler,
|
|
114
118
|
);
|
|
115
119
|
this.instance.post(routePath, this.createRouteHandler(routeHandler));
|
|
116
120
|
}
|
|
@@ -118,7 +122,7 @@ export class HonoAdapter extends AbstractHttpAdapter<
|
|
|
118
122
|
public put(pathOrHandler: string | HonoHandler, handler?: HonoHandler) {
|
|
119
123
|
const [routePath, routeHandler] = this.getRouteAndHandler(
|
|
120
124
|
pathOrHandler,
|
|
121
|
-
handler
|
|
125
|
+
handler,
|
|
122
126
|
);
|
|
123
127
|
this.instance.put(routePath, this.createRouteHandler(routeHandler));
|
|
124
128
|
}
|
|
@@ -126,7 +130,7 @@ export class HonoAdapter extends AbstractHttpAdapter<
|
|
|
126
130
|
public delete(pathOrHandler: string | HonoHandler, handler?: HonoHandler) {
|
|
127
131
|
const [routePath, routeHandler] = this.getRouteAndHandler(
|
|
128
132
|
pathOrHandler,
|
|
129
|
-
handler
|
|
133
|
+
handler,
|
|
130
134
|
);
|
|
131
135
|
this.instance.delete(routePath, this.createRouteHandler(routeHandler));
|
|
132
136
|
}
|
|
@@ -134,7 +138,7 @@ export class HonoAdapter extends AbstractHttpAdapter<
|
|
|
134
138
|
public use(pathOrHandler: string | HonoHandler, handler?: HonoHandler) {
|
|
135
139
|
const [routePath, routeHandler] = this.getRouteAndHandler(
|
|
136
140
|
pathOrHandler,
|
|
137
|
-
handler
|
|
141
|
+
handler,
|
|
138
142
|
);
|
|
139
143
|
this.instance.use(routePath, this.createRouteHandler(routeHandler));
|
|
140
144
|
}
|
|
@@ -142,7 +146,7 @@ export class HonoAdapter extends AbstractHttpAdapter<
|
|
|
142
146
|
public patch(pathOrHandler: string | HonoHandler, handler?: HonoHandler) {
|
|
143
147
|
const [routePath, routeHandler] = this.getRouteAndHandler(
|
|
144
148
|
pathOrHandler,
|
|
145
|
-
handler
|
|
149
|
+
handler,
|
|
146
150
|
);
|
|
147
151
|
this.instance.patch(routePath, this.createRouteHandler(routeHandler));
|
|
148
152
|
}
|
|
@@ -150,35 +154,36 @@ export class HonoAdapter extends AbstractHttpAdapter<
|
|
|
150
154
|
public options(pathOrHandler: string | HonoHandler, handler?: HonoHandler) {
|
|
151
155
|
const [routePath, routeHandler] = this.getRouteAndHandler(
|
|
152
156
|
pathOrHandler,
|
|
153
|
-
handler
|
|
157
|
+
handler,
|
|
154
158
|
);
|
|
155
159
|
this.instance.options(routePath, this.createRouteHandler(routeHandler));
|
|
156
160
|
}
|
|
157
161
|
|
|
162
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
158
163
|
public async reply(ctx: Ctx, body: any, statusCode?: StatusCode) {
|
|
159
|
-
if (typeof ctx ===
|
|
164
|
+
if (typeof ctx === 'function') {
|
|
160
165
|
ctx = await ctx();
|
|
161
166
|
}
|
|
162
167
|
|
|
163
168
|
if (statusCode) ctx.status(statusCode);
|
|
164
169
|
|
|
165
|
-
const responseContentType = await this.getHeader(ctx,
|
|
170
|
+
const responseContentType = await this.getHeader(ctx, 'Content-Type');
|
|
166
171
|
|
|
167
172
|
if (
|
|
168
|
-
!responseContentType?.startsWith(
|
|
173
|
+
!responseContentType?.startsWith('application/json') &&
|
|
169
174
|
body?.statusCode >= HttpStatus.BAD_REQUEST
|
|
170
175
|
) {
|
|
171
176
|
Logger.warn(
|
|
172
|
-
"Content-Type doesn't match Reply body, you might need a custom ExceptionFilter for non-JSON responses"
|
|
177
|
+
"Content-Type doesn't match Reply body, you might need a custom ExceptionFilter for non-JSON responses",
|
|
173
178
|
);
|
|
174
|
-
this.setHeader(ctx,
|
|
179
|
+
this.setHeader(ctx, 'Content-Type', 'application/json');
|
|
175
180
|
}
|
|
176
181
|
|
|
177
|
-
ctx.set(
|
|
182
|
+
ctx.set('body', body);
|
|
178
183
|
}
|
|
179
184
|
|
|
180
185
|
public async status(ctx: Ctx, statusCode: StatusCode) {
|
|
181
|
-
if (typeof ctx ===
|
|
186
|
+
if (typeof ctx === 'function') {
|
|
182
187
|
ctx = await ctx();
|
|
183
188
|
}
|
|
184
189
|
|
|
@@ -189,12 +194,12 @@ export class HonoAdapter extends AbstractHttpAdapter<
|
|
|
189
194
|
return RESPONSE_ALREADY_SENT;
|
|
190
195
|
}
|
|
191
196
|
|
|
192
|
-
public render(
|
|
193
|
-
throw new Error(
|
|
197
|
+
public render() {
|
|
198
|
+
throw new Error('Method not implemented.');
|
|
194
199
|
}
|
|
195
200
|
|
|
196
201
|
public async redirect(ctx: Ctx, statusCode: RedirectStatusCode, url: string) {
|
|
197
|
-
if (typeof ctx ===
|
|
202
|
+
if (typeof ctx === 'function') {
|
|
198
203
|
ctx = await ctx();
|
|
199
204
|
}
|
|
200
205
|
|
|
@@ -216,16 +221,16 @@ export class HonoAdapter extends AbstractHttpAdapter<
|
|
|
216
221
|
}
|
|
217
222
|
|
|
218
223
|
public useStaticAssets(path: string, options: ServeStaticOptions) {
|
|
219
|
-
Logger.log(
|
|
224
|
+
Logger.log('Registering static assets middleware');
|
|
220
225
|
this.instance.use(path, serveStatic(options));
|
|
221
226
|
}
|
|
222
227
|
|
|
223
|
-
public setViewEngine(
|
|
224
|
-
throw new Error(
|
|
228
|
+
public setViewEngine() {
|
|
229
|
+
throw new Error('Method not implemented.');
|
|
225
230
|
}
|
|
226
231
|
|
|
227
232
|
public async isHeadersSent(ctx: Ctx): Promise<boolean> {
|
|
228
|
-
if (typeof ctx ===
|
|
233
|
+
if (typeof ctx === 'function') {
|
|
229
234
|
ctx = await ctx();
|
|
230
235
|
}
|
|
231
236
|
|
|
@@ -233,7 +238,7 @@ export class HonoAdapter extends AbstractHttpAdapter<
|
|
|
233
238
|
}
|
|
234
239
|
|
|
235
240
|
public async getHeader?(ctx: Ctx, name: string) {
|
|
236
|
-
if (typeof ctx ===
|
|
241
|
+
if (typeof ctx === 'function') {
|
|
237
242
|
ctx = await ctx();
|
|
238
243
|
}
|
|
239
244
|
|
|
@@ -241,7 +246,7 @@ export class HonoAdapter extends AbstractHttpAdapter<
|
|
|
241
246
|
}
|
|
242
247
|
|
|
243
248
|
public async setHeader(ctx: Ctx, name: string, value: string) {
|
|
244
|
-
if (typeof ctx ===
|
|
249
|
+
if (typeof ctx === 'function') {
|
|
245
250
|
ctx = await ctx();
|
|
246
251
|
}
|
|
247
252
|
|
|
@@ -249,7 +254,7 @@ export class HonoAdapter extends AbstractHttpAdapter<
|
|
|
249
254
|
}
|
|
250
255
|
|
|
251
256
|
public async appendHeader?(ctx: Ctx, name: string, value: string) {
|
|
252
|
-
if (typeof ctx ===
|
|
257
|
+
if (typeof ctx === 'function') {
|
|
253
258
|
ctx = await ctx();
|
|
254
259
|
}
|
|
255
260
|
|
|
@@ -257,7 +262,7 @@ export class HonoAdapter extends AbstractHttpAdapter<
|
|
|
257
262
|
}
|
|
258
263
|
|
|
259
264
|
public async getRequestHostname(ctx: Ctx): Promise<string> {
|
|
260
|
-
if (typeof ctx ===
|
|
265
|
+
if (typeof ctx === 'function') {
|
|
261
266
|
ctx = await ctx();
|
|
262
267
|
}
|
|
263
268
|
|
|
@@ -272,17 +277,27 @@ export class HonoAdapter extends AbstractHttpAdapter<
|
|
|
272
277
|
return request.url;
|
|
273
278
|
}
|
|
274
279
|
|
|
275
|
-
public enableCors(options:
|
|
280
|
+
public enableCors(options: {
|
|
281
|
+
origin:
|
|
282
|
+
| string
|
|
283
|
+
| string[]
|
|
284
|
+
| ((origin: string, c: Context) => string | undefined | null);
|
|
285
|
+
allowMethods?: string[];
|
|
286
|
+
allowHeaders?: string[];
|
|
287
|
+
maxAge?: number;
|
|
288
|
+
credentials?: boolean;
|
|
289
|
+
exposeHeaders?: string[];
|
|
290
|
+
}) {
|
|
276
291
|
this.instance.use(cors(options));
|
|
277
292
|
}
|
|
278
293
|
|
|
279
294
|
public useBodyParser(
|
|
280
295
|
type: TypeBodyParser,
|
|
281
296
|
rawBody?: boolean,
|
|
282
|
-
bodyLimit?: number
|
|
297
|
+
bodyLimit?: number,
|
|
283
298
|
) {
|
|
284
299
|
Logger.log(
|
|
285
|
-
`Registering body parser middleware for type: ${type} | bodyLimit: ${bodyLimit}
|
|
300
|
+
`Registering body parser middleware for type: ${type} | bodyLimit: ${bodyLimit}`,
|
|
286
301
|
);
|
|
287
302
|
this.instance.use(this.bodyLimit(bodyLimit));
|
|
288
303
|
|
|
@@ -297,36 +312,40 @@ export class HonoAdapter extends AbstractHttpAdapter<
|
|
|
297
312
|
|
|
298
313
|
public initHttpServer(options: NestApplicationOptions) {
|
|
299
314
|
this.instance.use(async (ctx, next) => {
|
|
300
|
-
ctx.req[
|
|
301
|
-
ctx.req.header(
|
|
302
|
-
ctx.req.header(
|
|
303
|
-
ctx.req.header(
|
|
304
|
-
ctx.req.header(
|
|
305
|
-
ctx.req.header(
|
|
306
|
-
ctx.req.header(
|
|
307
|
-
ctx.req.header(
|
|
308
|
-
ctx.req.header(
|
|
309
|
-
ctx.req.header(
|
|
310
|
-
ctx.req.header(
|
|
311
|
-
|
|
312
|
-
ctx.req[
|
|
313
|
-
|
|
314
|
-
|
|
315
|
+
ctx.req['ip'] =
|
|
316
|
+
ctx.req.header('cf-connecting-ip') ??
|
|
317
|
+
ctx.req.header('x-forwarded-for') ??
|
|
318
|
+
ctx.req.header('x-real-ip') ??
|
|
319
|
+
ctx.req.header('forwarded') ??
|
|
320
|
+
ctx.req.header('true-client-ip') ??
|
|
321
|
+
ctx.req.header('x-client-ip') ??
|
|
322
|
+
ctx.req.header('x-cluster-client-ip') ??
|
|
323
|
+
ctx.req.header('x-forwarded') ??
|
|
324
|
+
ctx.req.header('forwarded-for') ??
|
|
325
|
+
ctx.req.header('via');
|
|
326
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
327
|
+
ctx.req['query'] = ctx.req.query() as any;
|
|
328
|
+
ctx.req['headers'] = Object.fromEntries(ctx.req.raw.headers);
|
|
329
|
+
|
|
330
|
+
const contentType = ctx.req.header('content-type');
|
|
315
331
|
|
|
316
332
|
if (
|
|
317
|
-
contentType?.startsWith(
|
|
318
|
-
contentType?.startsWith(
|
|
333
|
+
contentType?.startsWith('multipart/form-data') ||
|
|
334
|
+
contentType?.startsWith('application/x-www-form-urlencoded')
|
|
319
335
|
) {
|
|
336
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
320
337
|
(ctx.req as any).body = await ctx.req.parseBody({
|
|
321
338
|
all: true,
|
|
322
339
|
});
|
|
323
340
|
} else if (
|
|
324
|
-
contentType?.startsWith(
|
|
325
|
-
contentType?.startsWith(
|
|
341
|
+
contentType?.startsWith('application/json') ||
|
|
342
|
+
contentType?.startsWith('text/plain')
|
|
326
343
|
) {
|
|
327
344
|
if (options.rawBody) {
|
|
345
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
328
346
|
(ctx.req as any).rawBody = Buffer.from(await ctx.req.text());
|
|
329
347
|
}
|
|
348
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
330
349
|
(ctx.req as any).body = await ctx.req.json();
|
|
331
350
|
}
|
|
332
351
|
|
|
@@ -344,7 +363,7 @@ export class HonoAdapter extends AbstractHttpAdapter<
|
|
|
344
363
|
}
|
|
345
364
|
|
|
346
365
|
public getType(): string {
|
|
347
|
-
return
|
|
366
|
+
return 'hono';
|
|
348
367
|
}
|
|
349
368
|
|
|
350
369
|
public registerParserMiddleware(_prefix?: string, rawBody?: boolean) {
|
|
@@ -352,15 +371,16 @@ export class HonoAdapter extends AbstractHttpAdapter<
|
|
|
352
371
|
return;
|
|
353
372
|
}
|
|
354
373
|
|
|
355
|
-
Logger.log(
|
|
356
|
-
this.useBodyParser(
|
|
357
|
-
this.useBodyParser(
|
|
358
|
-
this.useBodyParser(
|
|
374
|
+
Logger.log('Registering parser middleware');
|
|
375
|
+
this.useBodyParser('application/x-www-form-urlencoded', rawBody);
|
|
376
|
+
this.useBodyParser('application/json', rawBody);
|
|
377
|
+
this.useBodyParser('text/plain', rawBody);
|
|
359
378
|
|
|
360
379
|
this._isParserRegistered = true;
|
|
361
380
|
}
|
|
362
381
|
|
|
363
382
|
public async createMiddlewareFactory(requestMethod: RequestMethod) {
|
|
383
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
364
384
|
return (path: string, callback: Function) => {
|
|
365
385
|
const routeMethodsMap = {
|
|
366
386
|
[RequestMethod.ALL]: this.instance.all,
|
|
@@ -374,16 +394,18 @@ export class HonoAdapter extends AbstractHttpAdapter<
|
|
|
374
394
|
const routeMethod = (
|
|
375
395
|
routeMethodsMap[requestMethod] || this.instance.get
|
|
376
396
|
).bind(this.instance);
|
|
397
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
377
398
|
routeMethod(path, async (ctx: Context, next: Function) => {
|
|
378
399
|
await callback(ctx.req, ctx, next);
|
|
379
400
|
});
|
|
380
401
|
};
|
|
381
402
|
}
|
|
382
403
|
|
|
383
|
-
public applyVersionFilter(): () => () =>
|
|
384
|
-
throw new Error(
|
|
404
|
+
public applyVersionFilter(): () => () => unknown {
|
|
405
|
+
throw new Error('Versioning not yet supported in Hono');
|
|
385
406
|
}
|
|
386
407
|
|
|
408
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
387
409
|
public listen(port: string | number, ...args: any[]): ServerType {
|
|
388
410
|
return this.httpServer.listen(port, ...args);
|
|
389
411
|
}
|
|
@@ -392,7 +414,7 @@ export class HonoAdapter extends AbstractHttpAdapter<
|
|
|
392
414
|
return bodyLimit({
|
|
393
415
|
maxSize,
|
|
394
416
|
onError: () => {
|
|
395
|
-
throw new Error(
|
|
417
|
+
throw new Error('Body too large');
|
|
396
418
|
},
|
|
397
419
|
});
|
|
398
420
|
}
|
package/src/adapters/index.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from
|
|
1
|
+
export * from './hono-adapter';
|
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { ASTNode, GraphQLError, GraphQLScalarType } from 'graphql';
|
|
2
|
+
|
|
3
|
+
import { Upload } from './Upload';
|
|
3
4
|
|
|
4
5
|
export const GraphQLUpload = new GraphQLScalarType({
|
|
5
|
-
name:
|
|
6
|
-
description:
|
|
6
|
+
name: 'Upload',
|
|
7
|
+
description: 'The `Upload` scalar type represents a file upload.',
|
|
7
8
|
parseValue(value: { promise: Promise<Upload> }) {
|
|
8
9
|
if (value instanceof Upload) return value.promise;
|
|
9
|
-
throw new GraphQLError(
|
|
10
|
+
throw new GraphQLError('Upload value invalid.');
|
|
10
11
|
},
|
|
11
12
|
parseLiteral(node: ASTNode | ASTNode[]) {
|
|
12
|
-
throw new GraphQLError(
|
|
13
|
+
throw new GraphQLError('Upload literal unsupported.', { nodes: node });
|
|
13
14
|
},
|
|
14
15
|
serialize() {
|
|
15
|
-
throw new GraphQLError(
|
|
16
|
+
throw new GraphQLError('Upload serialization unsupported.');
|
|
16
17
|
},
|
|
17
18
|
});
|