diff --git a/app/utils/log.ts b/app/utils/log.ts new file mode 100644 index 0000000..ec733cb --- /dev/null +++ b/app/utils/log.ts @@ -0,0 +1,31 @@ +// MARK: Side-Effects +// This module contains a side-effect because everything running here +// is static and logger is later modified in `app/server/index.ts` to +// disable debug logging if the `HEADPLANE_DEBUG_LOG` specifies as such. + +const levels = ['info', 'warn', 'error', 'debug'] as const; +type Category = 'server' | 'config' | 'agent' | 'api'; + +export interface Logger + extends Record< + (typeof levels)[number], + (category: Category, message: string, ...args: unknown[]) => void + > { + debugEnabled: boolean; +} + +export default { + debugEnabled: true, + ...Object.fromEntries( + levels.map((level) => [ + level, + (category: Category, message: string, ...args: unknown[]) => { + const date = new Date().toISOString(); + console.log( + `${date} [${category}] ${level.toUpperCase()}: ${message}`, + ...args, + ); + }, + ]), + ), +} as Logger; diff --git a/package.json b/package.json index 31abd7b..f66e27f 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "@kubernetes/client-node": "^0.22.3", "@primer/octicons-react": "^19.14.0", "@react-aria/toast": "3.0.0-beta.18", - "@react-router/node": "^7.0.0", + "@react-router/node": "^7.3.0", "@react-stately/toast": "3.0.0-beta.7", "@shopify/lang-jsonc": "^1.0.0", "@types/react": "^19.0.2", @@ -39,7 +39,8 @@ "react-codemirror-merge": "^4.23.7", "react-dom": "19.0.0", "react-error-boundary": "^5.0.0", - "react-router": "^7.0.0", + "react-router": "^7.3.0", + "react-router-hono-server": "^2.11.0", "react-stately": "^3.35.0", "remix-utils": "^8.0.0", "tailwind-merge": "^2.6.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5a52aed..d05f7e7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -38,8 +38,8 @@ importers: specifier: 3.0.0-beta.18 version: 3.0.0-beta.18(react@19.0.0) '@react-router/node': - specifier: ^7.0.0 - version: 7.1.1(react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.2) + specifier: ^7.3.0 + version: 7.3.0(react-router@7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.2) '@react-stately/toast': specifier: 3.0.0-beta.7 version: 3.0.0-beta.7(react@19.0.0) @@ -98,14 +98,17 @@ importers: specifier: ^5.0.0 version: 5.0.0(react@19.0.0) react-router: - specifier: ^7.0.0 - version: 7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^7.3.0 + version: 7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react-router-hono-server: + specifier: ^2.11.0 + version: 2.11.0(@react-router/dev@7.1.1(@types/node@22.10.7)(jiti@1.21.7)(react-router@7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.39.0)(tsx@4.19.2)(typescript@5.7.2)(vite@6.0.6(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0))(yaml@2.7.0))(@types/react@19.0.2)(bufferutil@4.0.9)(react-router@7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(utf-8-validate@5.0.10)(vite@6.0.6(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)) react-stately: specifier: ^3.35.0 version: 3.35.0(react@19.0.0) remix-utils: specifier: ^8.0.0 - version: 8.0.0(react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(zod@3.24.1) + version: 8.0.0(react-router@7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(zod@3.24.1) tailwind-merge: specifier: ^2.6.0 version: 2.6.0 @@ -133,7 +136,7 @@ importers: version: 1.9.4 '@react-router/dev': specifier: ^7.0.0 - version: 7.1.1(@types/node@22.10.7)(jiti@1.21.7)(react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.39.0)(tsx@4.19.2)(typescript@5.7.2)(vite@6.0.6(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0))(yaml@2.7.0) + version: 7.1.1(@types/node@22.10.7)(jiti@1.21.7)(react-router@7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.39.0)(tsx@4.19.2)(typescript@5.7.2)(vite@6.0.6(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0))(yaml@2.7.0) '@types/websocket': specifier: ^1.0.10 version: 1.0.10 @@ -157,7 +160,7 @@ importers: version: 7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react-scan: specifier: ^0.1.0 - version: 0.1.0(react-dom@19.0.0(react@19.0.0))(react-router-dom@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(rollup@4.29.1) + version: 0.1.0(react-dom@19.0.0(react@19.0.0))(react-router-dom@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-router@7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(rollup@4.29.1) tailwindcss: specifier: ^3.4.17 version: 3.4.17 @@ -456,6 +459,9 @@ packages: peerDependencies: react: '>=16.8.0' + '@drizzle-team/brocli@0.11.0': + resolution: {integrity: sha512-hD3pekGiPg0WPCCGAZmusBBJsDqGUR66Y452YgQsZOnkdQ7ViEPKuyP4huUGEZQefp8g34RRodXYmJ2TbCH+tg==} + '@esbuild/aix-ppc64@0.23.1': resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} engines: {node: '>=18'} @@ -768,6 +774,32 @@ packages: '@formatjs/intl-localematcher@0.5.8': resolution: {integrity: sha512-I+WDNWWJFZie+jkfkiK5Mp4hEDyRSEvmyfYadflOno/mmKJKcB17fEpEH0oJu/OWhhCJ8kJBDz2YMd/6cDl7Mg==} + '@hono/node-server@1.13.8': + resolution: {integrity: sha512-fsn8ucecsAXUoVxrUil0m13kOEq4mkX4/4QozCqmY+HpGfKl74OYSn8JcMA8GnG0ClfdRI4/ZSeG7zhFaVg+wg==} + engines: {node: '>=18.14.1'} + peerDependencies: + hono: ^4 + + '@hono/node-ws@1.1.0': + resolution: {integrity: sha512-uHaz1EPguJqsUmA+Jmhdi/DTRAMs2Fvcy7qno9E48rlK3WBtyGQw4u4DKlc+o18Nh1DGz2oA1n9hCzEyhVBeLw==} + engines: {node: '>=18.14.1'} + peerDependencies: + '@hono/node-server': ^1.11.1 + hono: ^4.6.0 + + '@hono/vite-dev-server@0.17.0': + resolution: {integrity: sha512-EvGOIj1MoY9uV94onXXz88yWaTxzUK+Mv8LiIEsR/9eSFoVUnHVR0B7l7iNIsxfHYRN7tbPDMWBSnD2RQun3yw==} + engines: {node: '>=18.14.1'} + peerDependencies: + hono: '*' + miniflare: '*' + wrangler: '*' + peerDependenciesMeta: + miniflare: + optional: true + wrangler: + optional: true + '@internationalized/date@3.6.0': resolution: {integrity: sha512-+z6ti+CcJnRlLHok/emGEsWQhe7kfSmEW+/6qCzvKY67YPh7YOBfvc7+/+NXq+zJlbArg30tYpqLjNgcAYv2YQ==} @@ -1197,6 +1229,16 @@ packages: typescript: optional: true + '@react-router/node@7.3.0': + resolution: {integrity: sha512-Vhww6DH0cVusO2yGhZuKmboGvFHuYOeIYEW0gpf0gFshbU0tR7MNAnOZS2Cud48hxVUSrEtgl0Kbs5BN+RQKJg==} + engines: {node: '>=20.0.0'} + peerDependencies: + react-router: 7.3.0 + typescript: ^5.1.0 + peerDependenciesMeta: + typescript: + optional: true + '@react-stately/calendar@3.7.0': resolution: {integrity: sha512-N15zKubP2S7eWfPSJjKVlmJA7YpWzrIGx52BFhwLSQAZcV+OPcMgvOs71WtB7PLwl6DUYQGsgc0B3tcHzzvdvQ==} peerDependencies: @@ -1661,6 +1703,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.14.1: + resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} + engines: {node: '>=0.4.0'} + hasBin: true + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -2036,6 +2083,10 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + hono@4.7.4: + resolution: {integrity: sha512-Pst8FuGqz3L7tFF+u9Pu70eI0xa5S3LPUmrNd5Jm8nTHze9FxLTK9Kaj5g/k4UcwuJSXTP65SyHOPLrffpcAJg==} + engines: {node: '>=16.9.0'} + hosted-git-info@6.1.3: resolution: {integrity: sha512-HVJyzUrLIL1c0QmviVh5E8VGyUS7xCFPS6yydaVd1UegW+ibV/CohqTH9MkOLDp5o+rb82DMo77PTuc9F/8GKw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -2544,6 +2595,26 @@ packages: react: '>=18' react-dom: '>=18' + react-router-hono-server@2.11.0: + resolution: {integrity: sha512-zn0kJUUamgxYS7mMDLv0kHCJE1UTX0bYNdfJeBLjw0xr/gnre0ttEZ2LTsFM8re1P2iMQ64mftpnSyeXIPijOA==} + engines: {node: '>=22.12.0'} + hasBin: true + peerDependencies: + '@cloudflare/workers-types': ^4.20241112.0 + '@react-router/dev': ^7.2.0 + '@types/react': ^18.3.10 || ^19.0.0 + miniflare: ^3.20241205.0 + react-router: ^7.2.0 + vite: ^5.1.0 || ^6.0.0 + wrangler: ^3.91.0 + peerDependenciesMeta: + '@cloudflare/workers-types': + optional: true + miniflare: + optional: true + wrangler: + optional: true + react-router@7.1.1: resolution: {integrity: sha512-39sXJkftkKWRZ2oJtHhCxmoCrBCULr/HAH4IT5DHlgu/Q0FCPV0S4Lx+abjDTx/74xoZzNYDYbOZWlJjruyuDQ==} engines: {node: '>=20.0.0'} @@ -2554,6 +2625,16 @@ packages: react-dom: optional: true + react-router@7.3.0: + resolution: {integrity: sha512-466f2W7HIWaNXTKM5nHTqNxLrHTyXybm7R0eBlVSt0k/u55tTCDO194OIx/NrYD4TS5SXKTNekXfT37kMKUjgw==} + engines: {node: '>=20.0.0'} + peerDependencies: + react: '>=18' + react-dom: '>=18' + peerDependenciesMeta: + react-dom: + optional: true + react-scan@0.1.0: resolution: {integrity: sha512-J40gyP7HgOJqrRqzoZrvZxwLLAE1EC1jn2flZqZi5OH0IX3x9KNnEmbiDxpCsXPzGPd5JWreU1cxXZtnmzANgQ==} hasBin: true @@ -2865,6 +2946,10 @@ packages: resolution: {integrity: sha512-BUgJXc752Kou3oOIuU1i+yZZypyZRqNPW0vqoMPl8VaoalSfeR0D8/t4iAS3yirs79SSMTxTag+ZC86uswv+Cw==} engines: {node: '>=18.17'} + undici@6.21.2: + resolution: {integrity: sha512-uROZWze0R0itiAKVPsYhFov9LxrPMHLMEQFszeI2gCN6bnIIZ8twzBCJcN2LJrBBLfrP0t1FW0g+JmKVl8Vk1g==} + engines: {node: '>=18.17'} + undici@7.2.0: resolution: {integrity: sha512-klt+0S55GBViA9nsq48/NSCo4YX5mjydjypxD7UmHh/brMu8h/Mhd/F7qAeoH2NOO8SDTk6kjnTFc4WpzmfYpQ==} engines: {node: '>=20.18.1'} @@ -3403,6 +3488,8 @@ snapshots: react: 19.0.0 tslib: 2.6.2 + '@drizzle-team/brocli@0.11.0': {} + '@esbuild/aix-ppc64@0.23.1': optional: true @@ -3577,6 +3664,25 @@ snapshots: dependencies: tslib: 2.8.1 + '@hono/node-server@1.13.8(hono@4.7.4)': + dependencies: + hono: 4.7.4 + + '@hono/node-ws@1.1.0(@hono/node-server@1.13.8(hono@4.7.4))(bufferutil@4.0.9)(hono@4.7.4)(utf-8-validate@5.0.10)': + dependencies: + '@hono/node-server': 1.13.8(hono@4.7.4) + hono: 4.7.4 + ws: 8.18.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@hono/vite-dev-server@0.17.0(hono@4.7.4)': + dependencies: + '@hono/node-server': 1.13.8(hono@4.7.4) + hono: 4.7.4 + minimatch: 9.0.5 + '@internationalized/date@3.6.0': dependencies: '@swc/helpers': 0.5.15 @@ -4346,7 +4452,7 @@ snapshots: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-router/dev@7.1.1(@types/node@22.10.7)(jiti@1.21.7)(react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.39.0)(tsx@4.19.2)(typescript@5.7.2)(vite@6.0.6(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0))(yaml@2.7.0)': + '@react-router/dev@7.1.1(@types/node@22.10.7)(jiti@1.21.7)(react-router@7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.39.0)(tsx@4.19.2)(typescript@5.7.2)(vite@6.0.6(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0))(yaml@2.7.0)': dependencies: '@babel/core': 7.26.0 '@babel/generator': 7.26.3 @@ -4357,7 +4463,7 @@ snapshots: '@babel/traverse': 7.26.4 '@babel/types': 7.26.3 '@npmcli/package-json': 4.0.1 - '@react-router/node': 7.1.1(react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.2) + '@react-router/node': 7.1.1(react-router@7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.2) arg: 5.0.2 babel-dead-code-elimination: 1.0.8 chokidar: 4.0.3 @@ -4373,7 +4479,7 @@ snapshots: picomatch: 2.3.1 prettier: 2.8.8 react-refresh: 0.14.2 - react-router: 7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react-router: 7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) semver: 7.6.3 set-cookie-parser: 2.7.1 valibot: 0.41.0(typescript@5.7.2) @@ -4397,16 +4503,26 @@ snapshots: - tsx - yaml - '@react-router/node@7.1.1(react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.2)': + '@react-router/node@7.1.1(react-router@7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.2)': dependencies: '@mjackson/node-fetch-server': 0.2.0 - react-router: 7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react-router: 7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) source-map-support: 0.5.21 stream-slice: 0.1.2 undici: 6.21.0 optionalDependencies: typescript: 5.7.2 + '@react-router/node@7.3.0(react-router@7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.2)': + dependencies: + '@mjackson/node-fetch-server': 0.2.0 + react-router: 7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + source-map-support: 0.5.21 + stream-slice: 0.1.2 + undici: 6.21.2 + optionalDependencies: + typescript: 5.7.2 + '@react-stately/calendar@3.7.0(react@19.0.0)': dependencies: '@internationalized/date': 3.7.0 @@ -4952,6 +5068,9 @@ snapshots: acorn@8.14.0: optional: true + acorn@8.14.1: + optional: true + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -5352,6 +5471,8 @@ snapshots: dependencies: function-bind: 1.1.2 + hono@4.7.4: {} + hosted-git-info@6.1.3: dependencies: lru-cache: 7.18.3 @@ -5815,6 +5936,21 @@ snapshots: react-dom: 19.0.0(react@19.0.0) react-router: 7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react-router-hono-server@2.11.0(@react-router/dev@7.1.1(@types/node@22.10.7)(jiti@1.21.7)(react-router@7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.39.0)(tsx@4.19.2)(typescript@5.7.2)(vite@6.0.6(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0))(yaml@2.7.0))(@types/react@19.0.2)(bufferutil@4.0.9)(react-router@7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(utf-8-validate@5.0.10)(vite@6.0.6(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)): + dependencies: + '@drizzle-team/brocli': 0.11.0 + '@hono/node-server': 1.13.8(hono@4.7.4) + '@hono/node-ws': 1.1.0(@hono/node-server@1.13.8(hono@4.7.4))(bufferutil@4.0.9)(hono@4.7.4)(utf-8-validate@5.0.10) + '@hono/vite-dev-server': 0.17.0(hono@4.7.4) + '@react-router/dev': 7.1.1(@types/node@22.10.7)(jiti@1.21.7)(react-router@7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.39.0)(tsx@4.19.2)(typescript@5.7.2)(vite@6.0.6(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0))(yaml@2.7.0) + '@types/react': 19.0.2 + hono: 4.7.4 + react-router: 7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + vite: 6.0.6(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: '@types/cookie': 0.6.0 @@ -5825,7 +5961,17 @@ snapshots: optionalDependencies: react-dom: 19.0.0(react@19.0.0) - react-scan@0.1.0(react-dom@19.0.0(react@19.0.0))(react-router-dom@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(rollup@4.29.1): + react-router@7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + '@types/cookie': 0.6.0 + cookie: 1.0.2 + react: 19.0.0 + set-cookie-parser: 2.7.1 + turbo-stream: 2.4.0 + optionalDependencies: + react-dom: 19.0.0(react@19.0.0) + + react-scan@0.1.0(react-dom@19.0.0(react@19.0.0))(react-router-dom@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-router@7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(rollup@4.29.1): dependencies: '@babel/core': 7.26.0 '@babel/generator': 7.26.3 @@ -5846,7 +5992,7 @@ snapshots: react-dom: 19.0.0(react@19.0.0) tsx: 4.19.2 optionalDependencies: - react-router: 7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react-router: 7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react-router-dom: 7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) unplugin: 2.1.0 transitivePeerDependencies: @@ -5906,12 +6052,12 @@ snapshots: regenerator-runtime@0.14.1: {} - remix-utils@8.0.0(react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(zod@3.24.1): + remix-utils@8.0.0(react-router@7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(zod@3.24.1): dependencies: type-fest: 4.31.0 optionalDependencies: react: 19.0.0 - react-router: 7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react-router: 7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) zod: 3.24.1 request@2.88.2: @@ -6134,7 +6280,7 @@ snapshots: terser@5.39.0: dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.14.0 + acorn: 8.14.1 commander: 2.20.3 source-map-support: 0.5.21 optional: true @@ -6196,6 +6342,8 @@ snapshots: undici@6.21.0: {} + undici@6.21.2: {} + undici@7.2.0: {} universalify@2.0.1: {} diff --git a/vite.config.ts b/vite.config.ts index 1ba3986..f42793f 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,9 +1,9 @@ import { readFile } from 'node:fs/promises'; import { reactRouter } from '@react-router/dev/vite'; import autoprefixer from 'autoprefixer'; +import { reactRouterHonoServer } from 'react-router-hono-server/dev'; import tailwindcss from 'tailwindcss'; import { defineConfig } from 'vite'; -import babel from 'vite-plugin-babel'; import tsconfigPaths from 'vite-tsconfig-paths'; const prefix = process.env.__INTERNAL_PREFIX || '/admin'; @@ -20,7 +20,7 @@ if (!version) { export default defineConfig({ base: `${prefix}/`, - plugins: [reactRouter(), tsconfigPaths()], + plugins: [reactRouterHonoServer(), reactRouter(), tsconfigPaths()], css: { postcss: { plugins: [tailwindcss, autoprefixer],