Skip to content

Commit f149b0a

Browse files
authored
docs: add plugin mode support and wrappers for Koa, Hapi, and Hono integrations
1 parent 4a799c0 commit f149b0a

1 file changed

Lines changed: 59 additions & 3 deletions

File tree

README.md

Lines changed: 59 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -477,6 +477,37 @@ instance.waitUntilValid(() => {
477477
});
478478
```
479479

480+
### `plugin(compiler, options)`
481+
482+
Creates middleware instance in plugin mode.
483+
484+
In plugin mode, stats output is written through webpack infrastructure logger
485+
(`compiler.getInfrastructureLogger`) instead of `console.log`.
486+
487+
```js
488+
const webpack = require("webpack");
489+
const middleware = require("webpack-dev-middleware");
490+
491+
const compiler = webpack({
492+
/* Webpack configuration */
493+
});
494+
495+
const instance = middleware.plugin(compiler, {
496+
/* webpack-dev-middleware options */
497+
});
498+
```
499+
500+
### Plugin wrappers
501+
502+
The following wrappers enable plugin mode for framework integrations:
503+
504+
- `middleware.koaPluginWrapper(compiler, options)`
505+
- `middleware.hapiPluginWrapper()`
506+
- `middleware.honoPluginWrapper(compiler, options)`
507+
508+
They are equivalent to `koaWrapper`/`hapiWrapper`/`honoWrapper`, but use plugin
509+
mode logging behavior.
510+
480511
### `forwardError`
481512

482513
Type: `boolean`
@@ -721,11 +752,17 @@ const devMiddlewareOptions = {
721752
};
722753
const app = new Koa();
723754

724-
app.use(middleware.koaWrapper(compiler, devMiddlewareOptions));
755+
app.use(middleware.koaPluginWrapper(compiler, devMiddlewareOptions));
725756

726757
app.listen(3000);
727758
```
728759

760+
Non-plugin variant:
761+
762+
```js
763+
app.use(middleware.koaWrapper(compiler, devMiddlewareOptions));
764+
```
765+
729766
### Hapi
730767

731768
```js
@@ -740,7 +777,7 @@ const devMiddlewareOptions = {};
740777
const server = Hapi.server({ port: 3000, host: "localhost" });
741778

742779
await server.register({
743-
plugin: devMiddleware.hapiPlugin(),
780+
plugin: devMiddleware.hapiPluginWrapper(),
744781
options: {
745782
// The `compiler` option is required
746783
compiler,
@@ -758,6 +795,19 @@ process.on("unhandledRejection", (err) => {
758795
});
759796
```
760797

798+
Non-plugin variant:
799+
800+
```js
801+
await server.register({
802+
plugin: devMiddleware.hapiWrapper(),
803+
options: {
804+
// The `compiler` option is required
805+
compiler,
806+
...devMiddlewareOptions,
807+
},
808+
});
809+
```
810+
761811
### Fastify
762812

763813
Fastify interop will require the use of `fastify-express` instead of `middie` for providing middleware support. As the authors of `fastify-express` recommend, this should only be used as a stopgap while full Fastify support is worked on.
@@ -794,11 +844,17 @@ const devMiddlewareOptions = {
794844

795845
const app = new Hono();
796846

797-
app.use(devMiddleware.honoWrapper(compiler, devMiddlewareOptions));
847+
app.use(devMiddleware.honoPluginWrapper(compiler, devMiddlewareOptions));
798848

799849
serve(app);
800850
```
801851

852+
Non-plugin variant:
853+
854+
```js
855+
app.use(devMiddleware.honoWrapper(compiler, devMiddlewareOptions));
856+
```
857+
802858
## Contributing
803859

804860
Please take a moment to read our contributing guidelines if you haven't yet done so.

0 commit comments

Comments
 (0)