diff --git a/.changeset/orange-zebras-sell.md b/.changeset/orange-zebras-sell.md new file mode 100644 index 00000000..9a0d5db8 --- /dev/null +++ b/.changeset/orange-zebras-sell.md @@ -0,0 +1,5 @@ +--- +'@watching/cli': patch +--- + +Fix development server diff --git a/app/package.json b/app/package.json index b6bc0384..94a03cdc 100644 --- a/app/package.json +++ b/app/package.json @@ -26,7 +26,7 @@ "devDependencies": { "@lemon/css": "workspace:*", "@lemon/zest": "workspace:*", - "@lemonmade/graphql-live": "^0.4.1", + "@lemonmade/graphql-live": "^0.4.2", "@lemonmade/remote-ui": "^0.3.3", "@lemonmade/remote-ui-preact": "^0.4.1", "@lemonmade/remote-ui-react": "^0.3.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index f12cdab1..1c9c2f0b 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -46,7 +46,7 @@ "build": "rollup --config configuration/rollup.config.js" }, "dependencies": { - "@lemonmade/graphql-live": "^0.4.1", + "@lemonmade/graphql-live": "^0.4.2", "@quilted/cli-kit": "^0.1.12", "@quilted/graphql": "^3.0.1", "@quilted/graphql-tools": "^0.2.0", diff --git a/packages/cli/source/commands/develop/develop.ts b/packages/cli/source/commands/develop/develop.ts index f9417406..304d6240 100644 --- a/packages/cli/source/commands/develop/develop.ts +++ b/packages/cli/source/commands/develop/develop.ts @@ -4,6 +4,8 @@ import * as path from 'path'; import type {Server} from 'http'; import {emitKeypressEvents} from 'readline'; import {stat, readFile} from 'fs/promises'; +import {setMaxListeners} from 'events'; + import { on, EventEmitter, @@ -75,6 +77,10 @@ export async function develop({ui, proxy}: {ui: Ui; proxy?: string}) { await ensureRootOutputDirectory(app); const devServer = await createDevServer(app, {ui}); + + // The development server adds lots of event listeners to abort controllers, + // which causes unnecessary warnings in Node. + setMaxListeners(Number.POSITIVE_INFINITY); const result = await devServer.listen(); const localUrl = new URL(proxy ?? `http://localhost:${result.port}`); @@ -313,8 +319,9 @@ async function createDevServer(app: LocalApp, {ui}: {ui: Ui}) { return new Response(await readFile(assetPath, {encoding: 'utf8'}), { headers: { 'Cache-Control': 'no-store', - 'Timing-Allow-Origin': '*', 'Content-Type': mime.getType(assetPath)!, + 'Timing-Allow-Origin': '*', + 'Access-Control-Allow-Origin': '*', }, }); } else { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 63fc3ee7..07918df2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -145,8 +145,8 @@ importers: specifier: workspace:* version: link:../packages/zest '@lemonmade/graphql-live': - specifier: ^0.4.1 - version: 0.4.1(graphql@16.8.1) + specifier: ^0.4.2 + version: 0.4.2(graphql@16.8.1) '@lemonmade/remote-ui': specifier: ^0.3.3 version: 0.3.3(@preact/signals-core@1.5.0)(preact@10.19.2) @@ -335,8 +335,8 @@ importers: packages/cli: dependencies: '@lemonmade/graphql-live': - specifier: ^0.4.1 - version: 0.4.1(graphql@16.8.1) + specifier: ^0.4.2 + version: 0.4.2(graphql@16.8.1) '@quilted/cli-kit': specifier: ^0.1.12 version: 0.1.12 @@ -3666,8 +3666,8 @@ packages: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 - /@lemonmade/graphql-live@0.4.1(graphql@16.8.1): - resolution: {integrity: sha512-N4n+ezyBhOCeIhejwi/rQEFTKmN1JOXy6UHPrFBgSqV/jRmvSs9KTmukOFUi9B2AFYbO9alU7YoctV7ycjtYXg==} + /@lemonmade/graphql-live@0.4.2(graphql@16.8.1): + resolution: {integrity: sha512-wIGOQkXF510AT87G6aW1OtMVR3wDMTMtZhoY0MINajljyOHfvij8qeJWfkJ42974N7WPZDOFqXy2YKEfdbo0YQ==} engines: {node: '>=14.0.0'} peerDependencies: graphql: ^16.0.0