Socket
Socket
Sign inDemoInstall

webpack-dev-middleware

Package Overview
Dependencies
279
Maintainers
1
Versions
113
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.5.1 to 1.6.0

52

middleware.js

@@ -27,3 +27,3 @@ /*

.replace(/\\\[[a-z]+\\\]/ig, ".+");
options.filename = new RegExp("^" + str + "$");
options.filename = new RegExp("^[\/]{0,1}" + str + "$");
}

@@ -99,3 +99,3 @@ }

if(!options.noInfo && !options.quiet)
console.log("webpack: wait until bundle finished: " + req.url);
console.log("webpack: wait until bundle finished: " + (req.url || fn.name));
callbacks.push(fn);

@@ -146,5 +146,33 @@ }

function handleRangeHeaders(content, req, res) {
if (req.headers['Accept-Ranges']) res.setHeader('Accept-Ranges', 'bytes');
if (req.headers.range) {
var ranges = parseRange(content.length, req.headers.range);
// unsatisfiable
if (-1 == ranges) {
res.setHeader('Content-Range', 'bytes */' + content.length);
res.statusCode = 416;
return content;
}
// valid (syntactically invalid/multiple ranges are treated as a regular response)
if (-2 != ranges && ranges.length === 1) {
// Content-Range
res.statusCode = 206;
var length = content.length;
res.setHeader(
'Content-Range',
'bytes ' + ranges[0].start + '-' + ranges[0].end + '/' + length
);
content = content.slice(ranges[0].start, ranges[0].end + 1);
}
}
return content;
}
// The middleware function
function webpackDevMiddleware(req, res, next) {
var filename = getFilenameFromUrl(req.url);
var filename = getFilenameFromUrl(req.path);
if (filename === false) return next();

@@ -184,2 +212,3 @@

var content = fs.readFileSync(filename);
content = handleRangeHeaders(content, req, res);
res.setHeader("Access-Control-Allow-Origin", "*"); // To support XHR, etc.

@@ -200,5 +229,18 @@ res.setHeader("Content-Type", mime.lookup(filename));

webpackDevMiddleware.invalidate = function() {
if(watching) watching.invalidate();
webpackDevMiddleware.waitUntilValid = function(callback) {
callback = callback || function(){};
if (!watching || !watching.running) callback();
else ready(callback, {});
};
webpackDevMiddleware.invalidate = function(callback) {
callback = callback || function(){};
if(watching) {
ready(callback, {});
watching.invalidate();
} else {
callback();
}
};
webpackDevMiddleware.close = function(callback) {

@@ -205,0 +247,0 @@ callback = callback || function(){};

7

package.json
{
"name": "webpack-dev-middleware",
"version": "1.5.1",
"version": "1.6.0",
"author": "Tobias Koppers @sokra",
"description": "Offers a dev middleware for webpack, which arguments a live bundle to a directory",
"peerDependencies": {
"webpack": ">=1.0.0 <3"
"webpack": "1 || ^2.1.0-beta"
},
"dependencies": {
"memory-fs": "~0.3.0",
"mime": "^1.3.4"
"mime": "^1.3.4",
"range-parser": "^1.0.3"
},

@@ -13,0 +14,0 @@ "licenses": [

@@ -69,1 +69,38 @@ # webpack-dev-middleware

```
## Advanced API
This part shows how you might interact with the middleware during runtime:
* `close(callback)` - stop watching for file changes
```js
var webpackDevMiddlewareInstance = webpackMiddleware(/* see example usage */);
app.use(webpackDevMiddlewareInstance);
// After 10 seconds stop watching for file changes:
setTimeout(function(){
webpackDevMiddlewareInstance.close();
}, 10000);
```
* `invalidate()` - recompile the bundle - e.g. after you changed the configuration
```js
var compiler = webpack(/* see example usage */);
var webpackDevMiddlewareInstance = webpackMiddleware(compiler);
app.use(webpackDevMiddlewareInstance);
setTimeout(function(){
// After a short delay the configuration is changed
// in this example we will just add a banner plugin:
compiler.apply(new webpack.BannerPlugin('A new banner'));
// Recompile the bundle with the banner plugin:
webpackDevMiddlewareInstance.invalidate();
}, 1000);
```
* `waitUntilValid(callback)` - executes the `callback` if the bundle is valid or after it is valid again:
```js
var webpackDevMiddlewareInstance = webpackMiddleware(/* see example usage */);
app.use(webpackDevMiddlewareInstance);
webpackDevMiddleware.waitUntilValid(function(){
console.log('Package is in a valid state');
});
```
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc