Skip to content

Commit

Permalink
fix: don't poll HTTP on startup to prevent dependency cycle between f…
Browse files Browse the repository at this point in the history
…ramework dev server and Netlify Dev (#5558)

* fix: break infinite loop on Astro dev server startup

* fix: update snapshots

* fix: remove HTTP polling from everything

* fix: test
  • Loading branch information
Skn0tt committed Mar 26, 2024
1 parent c5ab0db commit 0291702
Show file tree
Hide file tree
Showing 37 changed files with 41 additions and 44 deletions.
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/angular.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ export class Angular extends BaseFramework implements Framework {
dev = {
port: 4200,
command: 'ng serve',
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
3 changes: 3 additions & 0 deletions packages/build-info/src/frameworks/astro.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ test.each([
expect(detected?.[0].build.directory).toBe('dist')
expect(detected?.[0].dev?.command).toBe('astro dev')
expect(detected?.[0].dev?.port).toBe(4321)
// Astro makes passthrough requests to the dev server, which will be an infinite loop before the dev server started.
// we can prevent this by only checking the TCP port, and not HTTP.
expect(detected?.[0].dev?.pollingStrategies).toEqual([{ name: 'TCP' }])
})

test('should return 3000 for less than 3.0.0', async () => {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/astro.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ export class Astro extends BaseFramework implements Framework {
dev = {
port: 4321,
command: 'astro dev',
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/brunch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export class Brunch extends BaseFramework implements Framework {
dev = {
command: 'brunch watch --server',
port: 3333,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/cecil.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export class Cecil extends BaseFramework implements Framework {
dev = {
command: 'cecil serve',
port: 8000,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/docpad.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export class DocPad extends BaseFramework implements Framework {
dev = {
command: 'docpad run',
port: 9778,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/docusaurus.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ export class Docusaurus extends BaseFramework implements Framework {
dev = {
command: 'docusaurus start',
port: 3000,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/eleventy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export class Eleventy extends BaseFramework implements Framework {
dev = {
command: 'eleventy --serve',
port: 8080,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/ember.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export class Ember extends BaseFramework implements Framework {
dev = {
command: 'ember serve',
port: 4200,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/expo.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export class Expo extends BaseFramework implements Framework {
dev = {
command: 'expo start --web',
port: 19006,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/gatsby.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ test('should detect a simple Gatsby 4 project', async ({ fs }) => {
packagePath: '',
plugins_from_config_file: [],
plugins_recommended: [],
pollingStrategies: ['TCP', 'HTTP'],
pollingStrategies: ['TCP'],
},
])
})
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/gatsby.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ export class Gatsby extends BaseFramework implements Framework {
dev = {
command: 'gatsby develop',
port: 8000,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/gridsome.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export class Gridsome extends BaseFramework implements Framework {
dev = {
command: 'gridsome develop',
port: 8080,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/harp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export class Harp extends BaseFramework implements Framework {
dev = {
command: 'harp server',
port: 9000,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/hexo.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export class Hexo extends BaseFramework implements Framework {
dev = {
command: 'hexo server',
port: 4000,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/hugo.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export class Hugo extends BaseFramework implements Framework {
dev = {
command: 'hugo server -w',
port: 1313,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/jekyll.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export class Jekyll extends BaseFramework implements Framework {
dev = {
command: 'bundle exec jekyll serve -w',
port: 4000,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/middleman.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export class Middleman extends BaseFramework implements Framework {
dev = {
command: 'bundle exec middleman server',
port: 4567,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/nuxt.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export class Nuxt extends BaseFramework implements Framework {
dev = {
command: 'nuxt',
port: 3000,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
clearPublishDirectory: true,
}

Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/observable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export class Observable extends BaseFramework implements Framework {
dev = {
command: 'observable preview',
port: 3000,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/parcel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export class Parcel extends BaseFramework implements Framework {
dev = {
command: 'parcel',
port: 1234,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/phenomic.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export class Phenomic extends BaseFramework implements Framework {
dev = {
command: 'phenomic start',
port: 3333,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/quasar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export class Quasar extends BaseFramework implements Framework {
dev = {
command: 'quasar dev -p 8081',
port: 8081,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/react-static.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export class ReactStatic extends BaseFramework implements Framework {
dev = {
command: 'react-static start',
port: 3000,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/react.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export class CreateReactApp extends BaseFramework implements Framework {
dev = {
command: 'react-scripts start',
port: 3000,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/roots.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export class Roots extends BaseFramework implements Framework {
dev = {
command: 'roots watch',
port: 1111,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/sapper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export class Sapper extends BaseFramework implements Framework {
dev = {
command: 'sapper dev',
port: 3000,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/stencil.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export class Stencil extends BaseFramework implements Framework {
dev = {
command: 'stencil build --dev --watch --serve',
port: 3333,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/svelte-kit.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export class SvelteKit extends BaseFramework implements Framework {
dev = {
command: 'vite dev',
port: 5173,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/svelte.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ export class Svelte extends BaseFramework implements Framework {
dev = {
command: 'npm run dev',
port: 5000,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/vue.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export class Vue extends BaseFramework implements Framework {
dev = {
command: 'vue-cli-service serve',
port: 8080,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/vuepress.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export class VuePress extends BaseFramework implements Framework {
dev = {
command: 'vuepress dev',
port: 8080,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/wintersmith.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export class Wintersmith extends BaseFramework implements Framework {
dev = {
command: 'wintersmith preview',
port: 8080,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/wmr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export class WMR extends BaseFramework implements Framework {
dev = {
command: 'wmr',
port: 8080,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
2 changes: 1 addition & 1 deletion packages/build-info/src/frameworks/zola.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export class Zola extends BaseFramework implements Framework {
dev = {
command: 'zola serve',
port: 1111,
pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }],
pollingStrategies: [{ name: 'TCP' }],
}

build = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,6 @@ exports[`should retrieve the build info for providing a rootDir 1`] = `
"plugins_recommended": [],
"pollingStrategies": [
"TCP",
"HTTP",
],
},
{
Expand Down Expand Up @@ -124,9 +123,6 @@ exports[`should retrieve the build info for providing a rootDir and a nested pro
{
"name": "TCP",
},
{
"name": "HTTP",
},
],
"port": 3000,
},
Expand Down Expand Up @@ -203,7 +199,6 @@ exports[`should retrieve the build info for providing a rootDir and a nested pro
"plugins_recommended": [],
"pollingStrategies": [
"TCP",
"HTTP",
],
},
],
Expand Down Expand Up @@ -278,7 +273,6 @@ exports[`should retrieve the build info for providing a rootDir and the same pro
"plugins_recommended": [],
"pollingStrategies": [
"TCP",
"HTTP",
],
},
{
Expand Down
8 changes: 4 additions & 4 deletions packages/framework-info/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ console.log(await listFrameworks({ projectDir: './path/to/gatsby/website' }))
// dev: {
// commands: ['gatsby develop'],
// port: 8000,
// pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }]
// pollingStrategies: [{ name: 'TCP' }]
// },
// build: {
// commands: ['gatsby build'],
Expand All @@ -50,7 +50,7 @@ console.log(await listFrameworks({ projectDir: './path/to/vue/website' }))
// dev: {
// commands: ['npm run serve'],
// port: 8080,
// pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }]
// pollingStrategies: [{ name: 'TCP' }]
// },
// build: {
// commands: ['vue-cli-service build'],
Expand All @@ -72,7 +72,7 @@ console.log(await getFramework('vue', { projectDir: './path/to/vue/website' }))
// dev: {
// commands: ['npm run serve'],
// port: 8080,
// pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }]
// pollingStrategies: [{ name: 'TCP' }]
// },
// build: {
// commands: ['vue-cli-service build'],
Expand All @@ -90,7 +90,7 @@ console.log(getFrameworkById('vue'))
// dev: {
// commands: ['npm run serve'],
// port: 8080,
// pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }]
// pollingStrategies: [{ name: 'TCP' }]
// },
// build: {
// commands: ['vue-cli-service build'],
Expand Down

0 comments on commit 0291702

Please sign in to comment.