From 3f7e17614965246768484ea2876bdc23ba5b7a12 Mon Sep 17 00:00:00 2001 From: reduckted Date: Wed, 29 Nov 2017 19:10:47 +1000 Subject: [PATCH] Added the missing getFilenameFromUrl method and fileSystem property to webpack-dev-middleware. --- types/webpack-dev-middleware/index.d.ts | 6 ++++- .../webpack-dev-middleware-tests.ts | 22 +++++++++++++++---- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/types/webpack-dev-middleware/index.d.ts b/types/webpack-dev-middleware/index.d.ts index 77174b938b..e88cec98ef 100644 --- a/types/webpack-dev-middleware/index.d.ts +++ b/types/webpack-dev-middleware/index.d.ts @@ -1,11 +1,13 @@ -// Type definitions for webpack-dev-middleware 1.9 +// Type definitions for webpack-dev-middleware 1.12 // Project: https://github.com/webpack/webpack-dev-middleware // Definitions by: Benjamin Lim +// reduckted // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.2 import { NextHandleFunction } from 'connect'; import * as webpack from 'webpack'; +import MemoryFileSystem = require('memory-fs'); export = WebpackDevMiddleware; @@ -49,5 +51,7 @@ declare namespace WebpackDevMiddleware { close(callback?: () => void): void; invalidate(callback?: (stats: webpack.Stats) => void): void; waitUntilValid(callback?: (stats: webpack.Stats) => void): void; + getFilenameFromUrl: (url: string) => string | false; + fileSystem: MemoryFileSystem; } } diff --git a/types/webpack-dev-middleware/webpack-dev-middleware-tests.ts b/types/webpack-dev-middleware/webpack-dev-middleware-tests.ts index a4b1d57822..8df4675595 100644 --- a/types/webpack-dev-middleware/webpack-dev-middleware-tests.ts +++ b/types/webpack-dev-middleware/webpack-dev-middleware-tests.ts @@ -29,8 +29,22 @@ webpackDevMiddlewareInstance = webpackDevMiddleware(compiler, { const app = express(); app.use([webpackDevMiddlewareInstance]); -webpackDevMiddlewareInstance.close(); -webpackDevMiddlewareInstance.invalidate(); -webpackDevMiddlewareInstance.waitUntilValid(() => { - console.log('Package is in a valid state'); +webpackDevMiddlewareInstance.close(() => { + console.log('closed'); }); + +webpackDevMiddlewareInstance.invalidate((stats) => { + console.log(stats.toJson()); +}); + +webpackDevMiddlewareInstance.waitUntilValid((stats) => { + console.log('Package is in a valid state:' + stats.toJson()); +}); + +const fs = webpackDevMiddlewareInstance.fileSystem; +fs.mkdirpSync('foo'); + +let filename = webpackDevMiddlewareInstance.getFilenameFromUrl('url'); +if (filename !== false) { + filename = filename.substr(0); +}