@roots/bud-server
Version:
Development server for @roots/bud
36 lines (32 loc) • 1.14 kB
text/typescript
import type {Bud} from '@roots/bud-framework'
import type {MiddlewareFactory} from '@roots/bud-server/middleware'
import type {
IncomingMessage,
ServerResponse,
} from '@roots/bud-support/webpack-dev-middleware'
import WebpackDevMiddleware from '@roots/bud-support/webpack-dev-middleware'
export const factory: MiddlewareFactory = (app: Bud) => {
if (!app.compiler) return undefined
return WebpackDevMiddleware<IncomingMessage, ServerResponse>(
app.compiler.instance as any,
app.hooks.filter(`dev.middleware.dev.options`, {
headers: app.hooks.filter(`dev.middleware.dev.options.headers`, [
{key: `Access-Control-Allow-Origin`, value: `*`},
{key: `Access-Control-Allow-Headers`, value: `*`},
{key: `x-powered-by`, value: `@roots/bud`},
]),
index: app.hooks.filter(
`dev.middleware.dev.options.index`,
undefined,
),
publicPath: app.hooks.filter(
`dev.middleware.dev.options.publicPath`,
app.publicPath(),
),
writeToDisk: app.hooks.filter(
`dev.middleware.dev.options.writeToDisk`,
true,
),
}),
)
}