From 97e0042990f59c1f00b43c6dd333c1d33c6a397a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Wed, 17 Jul 2024 18:23:03 +0200 Subject: [PATCH] chore: working tests-example --- examples/tool/package.json | 94 +++++++++---------- examples/tool/tsup.config.ts | 6 +- packages/adapter-express/src/common.ts | 2 + packages/adapter-express/src/index.ts | 21 ++--- packages/adapter-hattip/src/common.ts | 3 + packages/adapter-hattip/src/index.ts | 8 +- packages/adapter-hono/src/common.ts | 3 + packages/adapter-hono/src/index.ts | 8 +- packages/universal-middleware/package.json | 1 + packages/universal-middleware/src/plugin.ts | 91 +++++++++++++++--- .../universal-middleware/test/esbuild.test.ts | 8 ++ .../universal-middleware/test/rollup.test.ts | 6 ++ pnpm-lock.yaml | 94 +++++++++++++++++++ tests-examples/tests-tool/package.json | 4 +- tests-examples/tests-tool/src/hono-entry.ts | 6 +- 15 files changed, 267 insertions(+), 88 deletions(-) diff --git a/examples/tool/package.json b/examples/tool/package.json index 8d76bcca..8f7d6e03 100644 --- a/examples/tool/package.json +++ b/examples/tool/package.json @@ -8,64 +8,64 @@ ], "exports": { "./dummy-handler": { - "types": "dist/dummy.d.ts", - "import": "dist/dummy.js", - "default": "dist/dummy.js" + "types": "./dist/dummy.d.ts", + "import": "./dist/dummy.js", + "default": "./dist/dummy.js" }, "./middlewares/context-middleware": { - "types": "dist/middlewares/context.d.ts", - "import": "dist/middlewares/context.js", - "default": "dist/middlewares/context.js" + "types": "./dist/middlewares/context.d.ts", + "import": "./dist/middlewares/context.js", + "default": "./dist/middlewares/context.js" }, "./middlewares/headers-middleware": { - "types": "dist/middlewares/headers.d.ts", - "import": "dist/middlewares/headers.js", - "default": "dist/middlewares/headers.js" + "types": "./dist/middlewares/headers.d.ts", + "import": "./dist/middlewares/headers.js", + "default": "./dist/middlewares/headers.js" }, "./dummy-handler-hono": { - "types": "dist/handlers/universal-hono-handler-handler.d.ts", - "import": "dist/handlers/universal-hono-handler-handler.js", - "default": "dist/handlers/universal-hono-handler-handler.js" + "types": "./dist/handlers/universal-hono-handler-handler.d.ts", + "import": "./dist/handlers/universal-hono-handler-handler.js", + "default": "./dist/handlers/universal-hono-handler-handler.js" }, "./dummy-handler-express": { - "types": "dist/handlers/universal-express-handler-handler.d.ts", - "import": "dist/handlers/universal-express-handler-handler.js", - "default": "dist/handlers/universal-express-handler-handler.js" + "types": "./dist/handlers/universal-express-handler-handler.d.ts", + "import": "./dist/handlers/universal-express-handler-handler.js", + "default": "./dist/handlers/universal-express-handler-handler.js" }, "./dummy-handler-hattip": { - "types": "dist/handlers/universal-hattip-handler-handler.d.ts", - "import": "dist/handlers/universal-hattip-handler-handler.js", - "default": "dist/handlers/universal-hattip-handler-handler.js" + "types": "./dist/handlers/universal-hattip-handler-handler.d.ts", + "import": "./dist/handlers/universal-hattip-handler-handler.js", + "default": "./dist/handlers/universal-hattip-handler-handler.js" }, "./middlewares/context-middleware-hono": { - "types": "dist/middlewares/universal-hono-middleware-context.middleware.d.ts", - "import": "dist/middlewares/universal-hono-middleware-context.middleware.js", - "default": "dist/middlewares/universal-hono-middleware-context.middleware.js" + "types": "./dist/middlewares/universal-hono-middleware-context.middleware.d.ts", + "import": "./dist/middlewares/universal-hono-middleware-context.middleware.js", + "default": "./dist/middlewares/universal-hono-middleware-context.middleware.js" }, "./middlewares/context-middleware-express": { - "types": "dist/middlewares/universal-express-middleware-context.middleware.d.ts", - "import": "dist/middlewares/universal-express-middleware-context.middleware.js", - "default": "dist/middlewares/universal-express-middleware-context.middleware.js" + "types": "./dist/middlewares/universal-express-middleware-context.middleware.d.ts", + "import": "./dist/middlewares/universal-express-middleware-context.middleware.js", + "default": "./dist/middlewares/universal-express-middleware-context.middleware.js" }, "./middlewares/context-middleware-hattip": { - "types": "dist/middlewares/universal-hattip-middleware-context.middleware.d.ts", - "import": "dist/middlewares/universal-hattip-middleware-context.middleware.js", - "default": "dist/middlewares/universal-hattip-middleware-context.middleware.js" + "types": "./dist/middlewares/universal-hattip-middleware-context.middleware.d.ts", + "import": "./dist/middlewares/universal-hattip-middleware-context.middleware.js", + "default": "./dist/middlewares/universal-hattip-middleware-context.middleware.js" }, "./middlewares/headers-middleware-hono": { - "types": "dist/middlewares/universal-hono-middleware-headers.middleware.d.ts", - "import": "dist/middlewares/universal-hono-middleware-headers.middleware.js", - "default": "dist/middlewares/universal-hono-middleware-headers.middleware.js" + "types": "./dist/middlewares/universal-hono-middleware-headers.middleware.d.ts", + "import": "./dist/middlewares/universal-hono-middleware-headers.middleware.js", + "default": "./dist/middlewares/universal-hono-middleware-headers.middleware.js" }, "./middlewares/headers-middleware-express": { - "types": "dist/middlewares/universal-express-middleware-headers.middleware.d.ts", - "import": "dist/middlewares/universal-express-middleware-headers.middleware.js", - "default": "dist/middlewares/universal-express-middleware-headers.middleware.js" + "types": "./dist/middlewares/universal-express-middleware-headers.middleware.d.ts", + "import": "./dist/middlewares/universal-express-middleware-headers.middleware.js", + "default": "./dist/middlewares/universal-express-middleware-headers.middleware.js" }, "./middlewares/headers-middleware-hattip": { - "types": "dist/middlewares/universal-hattip-middleware-headers.middleware.d.ts", - "import": "dist/middlewares/universal-hattip-middleware-headers.middleware.js", - "default": "dist/middlewares/universal-hattip-middleware-headers.middleware.js" + "types": "./dist/middlewares/universal-hattip-middleware-headers.middleware.d.ts", + "import": "./dist/middlewares/universal-hattip-middleware-headers.middleware.js", + "default": "./dist/middlewares/universal-hattip-middleware-headers.middleware.js" } }, "author": "Joël Charles ", @@ -77,28 +77,18 @@ "test:typecheck": "tsc -p tsconfig.json --noEmit" }, "devDependencies": { - "universal-middleware": "*", + "@hono/node-server": "^1.12.0", "@swc/core": "^1.6.13", "@types/node": "^20.14.10", "rimraf": "^6.0.0", "tsup": "^8.1.0", - "typescript": "^5.5.3" + "typescript": "^5.5.3", + "universal-middleware": "*" }, - "peerDependencies": { + "optionalDependencies": { "@universal-middleware/express": "^0", - "@universal-middleware/hono": "^0", - "@universal-middleware/hattip": "^0" - }, - "peerDependenciesMeta": { - "@universal-middleware/express": { - "optional": true - }, - "@universal-middleware/hono": { - "optional": true - }, - "@universal-middleware/hattip": { - "optional": true - } + "@universal-middleware/hattip": "^0", + "@universal-middleware/hono": "^0" }, "sideEffects": false } diff --git a/examples/tool/tsup.config.ts b/examples/tool/tsup.config.ts index 7df073e6..56e3ed5f 100644 --- a/examples/tool/tsup.config.ts +++ b/examples/tool/tsup.config.ts @@ -12,11 +12,7 @@ export default defineConfig([ platform: "neutral", target: "es2022", dts: true, - esbuildPlugins: [ - universalMiddleware({ - buildEnd: console.log, - }), - ], + esbuildPlugins: [universalMiddleware()], esbuildOptions(opts) { opts.outbase = "src"; }, diff --git a/packages/adapter-express/src/common.ts b/packages/adapter-express/src/common.ts index 3360910c..aaff8b54 100644 --- a/packages/adapter-express/src/common.ts +++ b/packages/adapter-express/src/common.ts @@ -62,6 +62,8 @@ export type NodeMiddleware = ( next?: (err?: unknown) => void, ) => void; +export type NodeHandler = NodeMiddleware; + /** Adapter options */ export interface NodeAdapterHandlerOptions extends NodeRequestAdapterOptions {} export interface NodeAdapterMiddlewareOptions diff --git a/packages/adapter-express/src/index.ts b/packages/adapter-express/src/index.ts index 8c2b5ae9..cacf267f 100644 --- a/packages/adapter-express/src/index.ts +++ b/packages/adapter-express/src/index.ts @@ -1,14 +1,11 @@ -import type { DecoratedRequest, DecoratedServerResponse } from "./common.js"; - -export type { DecoratedRequest, DecoratedServerResponse }; - -/** Connect/Express style request listener/middleware */ -export type NodeMiddleware = ( - req: DecoratedRequest, - res: DecoratedServerResponse, - next?: () => void, -) => void; - -export { createHandler, createMiddleware, getContext } from "./common.js"; +export { + createHandler, + createMiddleware, + getContext, + type DecoratedRequest, + type DecoratedServerResponse, + type NodeMiddleware, + type NodeHandler, +} from "./common.js"; export { createRequestAdapter } from "./request.js"; export { sendResponse } from "./response.js"; diff --git a/packages/adapter-hattip/src/common.ts b/packages/adapter-hattip/src/common.ts index fe73c6b5..b7004717 100644 --- a/packages/adapter-hattip/src/common.ts +++ b/packages/adapter-hattip/src/common.ts @@ -13,6 +13,9 @@ declare module "@hattip/core" { } } +export type { HattipHandler }; +export type HattipMiddleware = RequestHandler; + /** * Creates a request handler to be passed to hattip */ diff --git a/packages/adapter-hattip/src/index.ts b/packages/adapter-hattip/src/index.ts index 2f74b9ca..e5a3fb9e 100644 --- a/packages/adapter-hattip/src/index.ts +++ b/packages/adapter-hattip/src/index.ts @@ -1 +1,7 @@ -export { createHandler, createMiddleware, getContext } from "./common.js"; +export { + createHandler, + createMiddleware, + getContext, + type HattipHandler, + type HattipMiddleware, +} from "./common.js"; diff --git a/packages/adapter-hono/src/common.ts b/packages/adapter-hono/src/common.ts index 2c087bad..dac8284c 100644 --- a/packages/adapter-hono/src/common.ts +++ b/packages/adapter-hono/src/common.ts @@ -14,6 +14,9 @@ interface UniversalEnv { Variables: Env["Variables"] & Record; } +export type HonoHandler = Handler; +export type HonoMiddleware = MiddlewareHandler; + export const contextSymbol = Symbol("unContext"); /** diff --git a/packages/adapter-hono/src/index.ts b/packages/adapter-hono/src/index.ts index 2f74b9ca..328a98b9 100644 --- a/packages/adapter-hono/src/index.ts +++ b/packages/adapter-hono/src/index.ts @@ -1 +1,7 @@ -export { createHandler, createMiddleware, getContext } from "./common.js"; +export { + createHandler, + createMiddleware, + getContext, + type HonoHandler, + type HonoMiddleware, +} from "./common.js"; diff --git a/packages/universal-middleware/package.json b/packages/universal-middleware/package.json index 1360d86d..847f7bfe 100644 --- a/packages/universal-middleware/package.json +++ b/packages/universal-middleware/package.json @@ -56,6 +56,7 @@ "@universal-middleware/express": "^0.1.0", "@universal-middleware/hattip": "^0.1.0", "@universal-middleware/hono": "^0.1.1", + "oxc-transform": "^0.20.0", "package-up": "^5.0.0", "unplugin": "^1.11.0" }, diff --git a/packages/universal-middleware/src/plugin.ts b/packages/universal-middleware/src/plugin.ts index 5b350d35..fac8fe60 100644 --- a/packages/universal-middleware/src/plugin.ts +++ b/packages/universal-middleware/src/plugin.ts @@ -1,7 +1,7 @@ -import { join, parse, posix, resolve } from "node:path"; +import { dirname, join, parse, posix, resolve } from "node:path"; import { type UnpluginFactory } from "unplugin"; import { packageUp } from "package-up"; -import { readFile, writeFile } from "node:fs/promises"; +import { mkdir, readFile, writeFile } from "node:fs/promises"; export interface Options { servers?: (typeof defaultWrappers)[number][]; @@ -9,12 +9,14 @@ export interface Options { entryExportNames?: string; ignoreRecommendations?: boolean; doNotEditPackageJson?: boolean; + dts?: boolean; buildEnd?: (report: Report[]) => void | Promise; } export interface Report { in: string; out: string; + dts?: string; type: "handler" | "middleware"; exports: string; } @@ -22,6 +24,7 @@ export interface Report { interface BundleInfo { in: string; out: string; + dts: string; id: string; dir: string; name: string; @@ -170,6 +173,36 @@ export default ${fn}(${type}); return { code }; } +const typesByServer: Record = { + hono: { + middleware: "HonoMiddleware", + handler: "HonoHandler", + }, + express: { + middleware: "NodeMiddleware", + handler: "NodeHandler", + }, + hattip: { + middleware: "HattipMiddleware", + handler: "HattipHandler", + }, +}; + +function loadDts( + id: string, + resolve?: (handler: string, type: string) => string, +) { + const [, , server, type, handler] = id.split(":"); + + const fn = type === "handler" ? "createHandler" : "createMiddleware"; + const t = typesByServer[server][type as "middleware" | "handler"]; + const code = `import { ${fn}, type ${t} } from "@universal-middleware/${server}"; +import ${type} from "${resolve ? resolve(handler, type) : handler}"; +export default ${fn}(${type}) as ${t}; +`; + return { code }; +} + function findDuplicateReports(reports: Report[]): Map { const exportCounts: Record = {}; const duplicates = new Map(); @@ -223,6 +256,7 @@ function genBundleInfo( { in: v, out: dest!, + dts: dest!.replace(/\.js$/, ".d.ts"), id: k, dir: parsed.dir, name: parsed.name, @@ -273,14 +307,40 @@ function fixBundleExports( return bundle; } -function genReport(bundle: Record) { +async function generateDts(content: string, outFile: string) { + const { isolatedDeclaration } = await import("oxc-transform"); + + const code = isolatedDeclaration("file.ts", content); + + await mkdir(dirname(outFile), { recursive: true }); + + await writeFile(outFile, code.sourceText); +} + +async function genDts(bundle: Record, options?: Options) { + if (options?.dts === false) return; + + for (const value of Object.values(bundle)) { + if (!value.in.startsWith(namespace)) continue; + + await generateDts(loadDts(value.in).code, value.dts); + } +} + +function genReport(bundle: Record, options?: Options) { const reports = Object.values(bundle).reduce((acc, curr) => { - acc.push({ + const report: Report = { in: curr.in, out: curr.out, type: curr.type, exports: curr.exports, - }); + }; + + if (options?.dts !== false) { + report.dts = curr.dts; + } + + acc.push(report); return acc; }, [] as Report[]); @@ -304,9 +364,9 @@ export async function readAndEditPackageJson(reports: Report[]) { const packageJson = JSON.parse(await readFile(packageJsonPath, "utf8")); - packageJson.peerDependencies ??= {}; + packageJson.optionalDependencies ??= {}; for (const external of externals) { - packageJson.peerDependencies[external] = versionRange; + packageJson.optionalDependencies[external] = versionRange; } packageJson.exports ??= {}; @@ -314,9 +374,9 @@ export async function readAndEditPackageJson(reports: Report[]) { for (const report of reports) { // No CJS support packageJson.exports[report.exports] = { - types: report.out.replace(/\.js$/, ".d.ts"), - import: report.out, - default: report.out, + types: report.dts ? "./" + report.dts : undefined, + import: "./" + report.out, + default: "./" + report.out, }; } @@ -393,8 +453,13 @@ const universalMiddleware: UnpluginFactory = ( entryExportNames, }); - // Add dist folder to `out` - Object.values(mapping).forEach((v) => (v.out = join(out, v.out))); + // Add dist folder to `out` and `dts` + Object.values(mapping).forEach((v) => { + v.out = join(out, v.out); + v.dts = join(out, v.dts); + }); + + await genDts(mapping, options); const report = genReport(mapping); @@ -528,6 +593,8 @@ const universalMiddleware: UnpluginFactory = ( (v) => (v.exports = "./" + posix.relative(outdir, v.exports)), ); + await genDts(mapping, options); + const report = genReport(mapping); if (!options?.doNotEditPackageJson) { diff --git a/packages/universal-middleware/test/esbuild.test.ts b/packages/universal-middleware/test/esbuild.test.ts index 5b0e2460..0247b1cb 100644 --- a/packages/universal-middleware/test/esbuild.test.ts +++ b/packages/universal-middleware/test/esbuild.test.ts @@ -13,6 +13,7 @@ describe("esbuild", () => { plugins: [ plugin({ doNotEditPackageJson: true, + dts: false, buildEnd(report) { expect(report).toHaveLength(expectNbOutput(1)); const exports = report.map((r) => r.exports); @@ -59,6 +60,7 @@ describe("esbuild", () => { plugins: [ plugin({ doNotEditPackageJson: true, + dts: false, buildEnd(report) { expect(report).toHaveLength(expectNbOutput(2)); const exports = report.map((r) => r.exports); @@ -110,6 +112,7 @@ describe("esbuild", () => { plugins: [ plugin({ doNotEditPackageJson: true, + dts: false, buildEnd(report) { expect(report).toHaveLength(expectNbOutput(2)); const exports = report.map((r) => r.exports); @@ -173,6 +176,7 @@ describe("esbuild", () => { plugins: [ plugin({ doNotEditPackageJson: true, + dts: false, buildEnd(report) { expect(report).toHaveLength(expectNbOutput(2)); const exports = report.map((r) => r.exports); @@ -236,6 +240,7 @@ describe("esbuild", () => { plugins: [ plugin({ doNotEditPackageJson: true, + dts: false, buildEnd(report) { expect(report).toHaveLength(expectNbOutput(2)); const exports = report.map((r) => r.exports); @@ -288,6 +293,7 @@ describe("esbuild", () => { plugins: [ plugin({ doNotEditPackageJson: true, + dts: false, servers: ["hono"], buildEnd(report) { expect(report).toHaveLength(4); @@ -338,6 +344,7 @@ describe("esbuild", () => { plugins: [ plugin({ doNotEditPackageJson: true, + dts: false, }), ], outdir: "dist", @@ -359,6 +366,7 @@ describe("esbuild", () => { plugins: [ plugin({ doNotEditPackageJson: true, + dts: false, serversExportNames: "[name]-[type]-[server]", }), ], diff --git a/packages/universal-middleware/test/rollup.test.ts b/packages/universal-middleware/test/rollup.test.ts index c9e65680..335ee8b2 100644 --- a/packages/universal-middleware/test/rollup.test.ts +++ b/packages/universal-middleware/test/rollup.test.ts @@ -15,6 +15,7 @@ describe("rollup", () => { plugins: [ plugin({ doNotEditPackageJson: true, + dts: false, buildEnd(report) { expect(report).toHaveLength(expectNbOutput(1)); const exports = report.map((r) => r.exports); @@ -66,6 +67,7 @@ describe("rollup", () => { plugins: [ plugin({ doNotEditPackageJson: true, + dts: false, buildEnd(report) { expect(report).toHaveLength(expectNbOutput(2)); const exports = report.map((r) => r.exports); @@ -118,6 +120,7 @@ describe("rollup", () => { plugins: [ plugin({ doNotEditPackageJson: true, + dts: false, buildEnd(report) { expect(report).toHaveLength(expectNbOutput(2)); const exports = report.map((r) => r.exports); @@ -182,6 +185,7 @@ describe("rollup", () => { plugins: [ plugin({ doNotEditPackageJson: true, + dts: false, buildEnd(report) { expect(report).toHaveLength(expectNbOutput(2)); const exports = report.map((r) => r.exports); @@ -246,6 +250,7 @@ describe("rollup", () => { plugins: [ plugin({ doNotEditPackageJson: true, + dts: false, servers: ["hono"], buildEnd(report) { expect(report).toHaveLength(4); @@ -297,6 +302,7 @@ describe("rollup", () => { plugins: [ plugin({ doNotEditPackageJson: true, + dts: false, serversExportNames: "[name]-[type]-[server]", }), nodeResolve(), diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5fd9d8ba..7b141a2b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -117,7 +117,20 @@ importers: version: 5.5.3 examples/tool: + optionalDependencies: + '@universal-middleware/express': + specifier: link:../../packages/adapter-express + version: link:../../packages/adapter-express + '@universal-middleware/hattip': + specifier: link:../../packages/adapter-hattip + version: link:../../packages/adapter-hattip + '@universal-middleware/hono': + specifier: link:../../packages/adapter-hono + version: link:../../packages/adapter-hono devDependencies: + '@hono/node-server': + specifier: ^1.12.0 + version: 1.12.0 '@swc/core': specifier: ^1.6.13 version: 1.6.13 @@ -338,6 +351,9 @@ importers: '@universal-middleware/hono': specifier: link:../adapter-hono version: link:../adapter-hono + oxc-transform: + specifier: ^0.20.0 + version: 0.20.0 package-up: specifier: ^5.0.0 version: 5.0.0 @@ -870,6 +886,46 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@oxc-transform/binding-darwin-arm64@0.20.0': + resolution: {integrity: sha512-n/l4CtYDmsiaYGzdcJef4vfPYidTwr30aLhnR4f8kli4rFBot+y0YyGOCMu5DqLm7aU0AJCYBxuLgxNSbuKO7g==} + cpu: [arm64] + os: [darwin] + + '@oxc-transform/binding-darwin-x64@0.20.0': + resolution: {integrity: sha512-EPj50sDrAAMYHiebsRNwrYoboVcUBbwA9EcPq9qeWoIN3OOLLflKwqQPHrKMljaVfJ2Ou+US+R3HRfgFIP29mw==} + cpu: [x64] + os: [darwin] + + '@oxc-transform/binding-linux-arm64-gnu@0.20.0': + resolution: {integrity: sha512-68zon+g2RuyrBBpXSfOGXw7fBRRbhHawTnrDS94zwlpgnLDWwP5v2kYJsQdqPa/TWmsBD805GaV9k+eR+ZlY3w==} + cpu: [arm64] + os: [linux] + + '@oxc-transform/binding-linux-arm64-musl@0.20.0': + resolution: {integrity: sha512-2QhGPf+RTtiRqzRh/aLVWUq1PbDV2JxwuOuRtXNvwhLKIbnaxx804NmX35cIAmbp+qaFU9QwWgNn7DUH4hHNmQ==} + cpu: [arm64] + os: [linux] + + '@oxc-transform/binding-linux-x64-gnu@0.20.0': + resolution: {integrity: sha512-ZOYLq61tKwGR5aPXgyU1FEpPPsIzLBR9+96Bxe1SFgGLZzLCerqdX57iot01kgDboeVgjGujvddN7S5UwPD8GA==} + cpu: [x64] + os: [linux] + + '@oxc-transform/binding-linux-x64-musl@0.20.0': + resolution: {integrity: sha512-IjJL50EDnoZVh5fkZVSEsiVo6fw7L/HHUQagsH9EE8704+jqDyb+35rHyTJCz7+ZqjZH7XEocd7Pqs5hBsr4WQ==} + cpu: [x64] + os: [linux] + + '@oxc-transform/binding-win32-arm64-msvc@0.20.0': + resolution: {integrity: sha512-ue4EypVlAmmt5n+/TjeXdSwmSpyPWu6pIGiJD8JmCloBGG/TmaEIgrAfxm+ZT9fVJjgTteVT8YOsaBA93RMPpA==} + cpu: [arm64] + os: [win32] + + '@oxc-transform/binding-win32-x64-msvc@0.20.0': + resolution: {integrity: sha512-294vMmuW8nymZFtfDZ/ydVXdKCdLBo5ehwb80BvuV/yGt3qvv8zvokptquhjCWVorCzfKS4YVtTCGxG7rODmWA==} + cpu: [x64] + os: [win32] + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -2267,6 +2323,9 @@ packages: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} + oxc-transform@0.20.0: + resolution: {integrity: sha512-KxTCwHuHLfUBKS0p290AoH41XMP6c1ut5lnYj+eMQeNuj2sQ23zz3R9anD8VGGtm8ZsKrXlY0qWXsaZ7vBTVTw==} + p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} @@ -3286,6 +3345,30 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 + '@oxc-transform/binding-darwin-arm64@0.20.0': + optional: true + + '@oxc-transform/binding-darwin-x64@0.20.0': + optional: true + + '@oxc-transform/binding-linux-arm64-gnu@0.20.0': + optional: true + + '@oxc-transform/binding-linux-arm64-musl@0.20.0': + optional: true + + '@oxc-transform/binding-linux-x64-gnu@0.20.0': + optional: true + + '@oxc-transform/binding-linux-x64-musl@0.20.0': + optional: true + + '@oxc-transform/binding-win32-arm64-msvc@0.20.0': + optional: true + + '@oxc-transform/binding-win32-x64-msvc@0.20.0': + optional: true + '@pkgjs/parseargs@0.11.0': optional: true @@ -4747,6 +4830,17 @@ snapshots: type-check: 0.4.0 word-wrap: 1.2.5 + oxc-transform@0.20.0: + optionalDependencies: + '@oxc-transform/binding-darwin-arm64': 0.20.0 + '@oxc-transform/binding-darwin-x64': 0.20.0 + '@oxc-transform/binding-linux-arm64-gnu': 0.20.0 + '@oxc-transform/binding-linux-arm64-musl': 0.20.0 + '@oxc-transform/binding-linux-x64-gnu': 0.20.0 + '@oxc-transform/binding-linux-x64-musl': 0.20.0 + '@oxc-transform/binding-win32-arm64-msvc': 0.20.0 + '@oxc-transform/binding-win32-x64-msvc': 0.20.0 + p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 diff --git a/tests-examples/tests-tool/package.json b/tests-examples/tests-tool/package.json index 775c102a..beb53a29 100644 --- a/tests-examples/tests-tool/package.json +++ b/tests-examples/tests-tool/package.json @@ -7,9 +7,7 @@ "repository": "https://github.com/magne4000/universal-handler", "license": "MIT", "scripts": { - "build": "rimraf dist && tsup", - "dev": "tsup --watch", - "prepack": "pnpm build", + "dev": "tsx src/hono-entry.ts", "test": "vitest run", "test:run-hono:node": "tsx tests/entry-hono.ts", "test:run-hono:bun": "bun tests/entry-hono.ts", diff --git a/tests-examples/tests-tool/src/hono-entry.ts b/tests-examples/tests-tool/src/hono-entry.ts index e9c030c7..79502287 100644 --- a/tests-examples/tests-tool/src/hono-entry.ts +++ b/tests-examples/tests-tool/src/hono-entry.ts @@ -1,7 +1,9 @@ import { Hono } from "hono"; +import { serve } from "@hono/node-server"; +import handler from "@universal-middleware-examples/tool/dummy-handler-hono"; const app = new Hono(); -app.get("/", (c) => c.text("Hono!")); +app.get("/", handler); -export default app; +serve(app);