webpack-dev-middleware
Advanced tools
Comparing version 4.0.0-rc.1 to 4.0.0-rc.2
@@ -5,2 +5,9 @@ # Changelog | ||
## [4.0.0-rc.2](https://github.com/webpack/webpack-dev-middleware/compare/v4.0.0-rc.1...v4.0.0-rc.2) (2020-06-30) | ||
### Bug Fixes | ||
* prefer mime type option over built-in ([#670](https://github.com/webpack/webpack-dev-middleware/issues/670)) ([7fa2c15](https://github.com/webpack/webpack-dev-middleware/commit/7fa2c151cfc84001a0116e07532c464aefe9f56c)) | ||
## [4.0.0-rc.1](https://github.com/webpack/webpack-dev-middleware/compare/v4.0.0-rc.0...v4.0.0-rc.1) (2020-02-20) | ||
@@ -7,0 +14,0 @@ |
@@ -40,5 +40,7 @@ "use strict"; | ||
types | ||
} = _mimeTypes.default; | ||
_mimeTypes.default.types = { ...mimeTypes, | ||
...types | ||
} = _mimeTypes.default; // mimeTypes from user provided options should take priority | ||
// over existing, known types | ||
_mimeTypes.default.types = { ...types, | ||
...mimeTypes | ||
}; | ||
@@ -45,0 +47,0 @@ } |
@@ -21,8 +21,16 @@ "use strict"; | ||
function wrapper(context) { | ||
return function middleware(req, res, next) { | ||
// fixes #282. credit @cexoso. in certain edge situations res.locals is undefined. | ||
return async function middleware(req, res, next) { | ||
const acceptedMethods = context.options.methods || ['GET', 'HEAD']; // fixes #282. credit @cexoso. in certain edge situations res.locals is undefined. | ||
// eslint-disable-next-line no-param-reassign | ||
res.locals = res.locals || {}; | ||
function goNext() { | ||
if (!acceptedMethods.includes(req.method)) { | ||
await goNext(); | ||
return; | ||
} | ||
(0, _ready.default)(context, processRequest, req); | ||
async function goNext() { | ||
if (!context.options.serverSideRender) { | ||
@@ -43,54 +51,42 @@ return next(); | ||
const acceptedMethods = context.options.methods || ['GET', 'HEAD']; | ||
async function processRequest() { | ||
const filename = (0, _getFilenameFromUrl.default)(context, req.url); | ||
const { | ||
headers | ||
} = context.options; | ||
let content; | ||
if (acceptedMethods.indexOf(req.method) === -1) { | ||
return goNext(); | ||
} | ||
if (!filename) { | ||
await goNext(); | ||
return; | ||
} | ||
return new Promise(resolve => { | ||
// eslint-disable-next-line consistent-return | ||
function processRequest() { | ||
const filename = (0, _getFilenameFromUrl.default)(context, req.url); | ||
try { | ||
content = context.outputFileSystem.readFileSync(filename); | ||
} catch (_ignoreError) { | ||
await goNext(); | ||
return; | ||
} | ||
if (!filename) { | ||
return resolve(goNext()); | ||
} | ||
if (!res.get('Content-Type')) { | ||
// content-type name(like application/javascript; charset=utf-8) or false | ||
const contentType = _mimeTypes.default.contentType(_path.default.extname(filename)); | ||
let content; | ||
try { | ||
content = context.outputFileSystem.readFileSync(filename); | ||
} catch (_ignoreError) { | ||
return resolve(goNext()); | ||
if (contentType) { | ||
res.set('Content-Type', contentType); | ||
} | ||
} | ||
content = (0, _handleRangeHeaders.default)(content, req, res); | ||
if (!res.get('Content-Type')) { | ||
const contentType = _mimeTypes.default.contentType(_path.default.extname(filename)); | ||
if (contentType) { | ||
res.set('Content-Type', contentType); | ||
} | ||
if (headers) { | ||
for (const name of Object.keys(headers)) { | ||
res.set(name, headers[name]); | ||
} | ||
} // Buffer | ||
const { | ||
headers | ||
} = context.options; | ||
if (headers) { | ||
for (const name in headers) { | ||
if ({}.hasOwnProperty.call(headers, name)) { | ||
res.set(name, context.options.headers[name]); | ||
} | ||
} | ||
} | ||
content = (0, _handleRangeHeaders.default)(content, req, res); // send Buffer | ||
res.send(content); | ||
resolve(); | ||
} | ||
(0, _ready.default)(context, processRequest, req); | ||
}); | ||
res.send(content); | ||
} | ||
}; | ||
} |
@@ -6,3 +6,3 @@ "use strict"; | ||
}); | ||
exports.default = void 0; | ||
exports.default = getFilenameFromUrl; | ||
@@ -40,3 +40,3 @@ var _path = _interopRequireDefault(require("path")); | ||
var _default = (context, url) => { | ||
function getFilenameFromUrl(context, url) { | ||
const { | ||
@@ -109,4 +109,2 @@ options | ||
return filename; | ||
}; | ||
exports.default = _default; | ||
} |
@@ -34,3 +34,3 @@ "use strict"; | ||
} else { | ||
outputFileSystem = (0, _memfs.createFsFromVolume)(new _memfs.Volume()); // Todo remove when we drop webpack@4 support | ||
outputFileSystem = (0, _memfs.createFsFromVolume)(new _memfs.Volume()); // TODO: remove when we drop webpack@4 support | ||
@@ -49,4 +49,2 @@ outputFileSystem.join = _path.default.join.bind(_path.default); | ||
context.outputFileSystem = outputFileSystem; | ||
} | ||
module.exports = setupOutputFileSystem; | ||
} |
{ | ||
"name": "webpack-dev-middleware", | ||
"version": "4.0.0-rc.1", | ||
"version": "4.0.0-rc.2", | ||
"description": "A development middleware for webpack", | ||
@@ -11,2 +11,6 @@ "license": "MIT", | ||
"main": "dist/index.js", | ||
"funding": { | ||
"type": "opencollective", | ||
"url": "https://opencollective.com/webpack" | ||
}, | ||
"engines": { | ||
@@ -38,36 +42,35 @@ "node": ">= 10.13" | ||
"dependencies": { | ||
"mem": "^6.0.1", | ||
"memfs": "^3.1.1", | ||
"mime-types": "^2.1.26", | ||
"mem": "^6.1.0", | ||
"memfs": "^3.2.0", | ||
"mime-types": "^2.1.27", | ||
"range-parser": "^1.2.1", | ||
"schema-utils": "^2.6.4" | ||
"schema-utils": "^2.7.0" | ||
}, | ||
"devDependencies": { | ||
"@babel/cli": "^7.8.4", | ||
"@babel/core": "^7.8.4", | ||
"@babel/preset-env": "^7.8.4", | ||
"@commitlint/cli": "^8.3.5", | ||
"@commitlint/config-conventional": "^8.3.4", | ||
"@babel/cli": "^7.10.3", | ||
"@babel/core": "^7.10.3", | ||
"@babel/preset-env": "^7.10.3", | ||
"@commitlint/cli": "^9.0.1", | ||
"@commitlint/config-conventional": "^9.0.1", | ||
"@webpack-contrib/defaults": "^6.3.0", | ||
"@webpack-contrib/eslint-config-webpack": "^3.0.0", | ||
"babel-jest": "^25.1.0", | ||
"commitlint-azure-pipelines-cli": "^1.0.3", | ||
"cross-env": "^7.0.0", | ||
"babel-jest": "^26.1.0", | ||
"chokidar": "^3.4.0", | ||
"cross-env": "^7.0.2", | ||
"del": "^5.1.0", | ||
"del-cli": "^3.0.0", | ||
"eslint": "^6.8.0", | ||
"eslint-config-prettier": "^6.10.0", | ||
"eslint-plugin-import": "^2.20.1", | ||
"eslint-plugin-prettier": "^3.1.2", | ||
"del-cli": "^3.0.1", | ||
"eslint": "^7.3.1", | ||
"eslint-config-prettier": "^6.11.0", | ||
"eslint-plugin-import": "^2.22.0", | ||
"eslint-plugin-prettier": "^3.1.4", | ||
"express": "^4.17.1", | ||
"file-loader": "^5.1.0", | ||
"husky": "^4.2.3", | ||
"jest": "^25.1.0", | ||
"jest-junit": "^10.0.0", | ||
"lint-staged": "^10.0.7", | ||
"file-loader": "^6.0.0", | ||
"husky": "^4.2.5", | ||
"jest": "^26.1.0", | ||
"lint-staged": "^10.2.11", | ||
"npm-run-all": "^4.1.5", | ||
"prettier": "^1.19.1", | ||
"standard-version": "^7.1.0", | ||
"prettier": "^2.0.5", | ||
"standard-version": "^8.0.0", | ||
"supertest": "^4.0.2", | ||
"webpack": "^4.41.6" | ||
"webpack": "^4.43.0" | ||
}, | ||
@@ -74,0 +77,0 @@ "keywords": [ |
@@ -347,3 +347,3 @@ <div align="center"> | ||
[CONTRIBUTING](./.github/CONTRIBUTING.md) | ||
[CONTRIBUTING](./CONTRIBUTING.md) | ||
@@ -360,4 +360,4 @@ ## License | ||
[deps-url]: https://david-dm.org/webpack/webpack-dev-middleware | ||
[tests]: https://dev.azure.com/webpack/webpack-dev-middleware/_apis/build/status/webpack.webpack-dev-middleware?branchName=master | ||
[tests-url]: https://dev.azure.com/webpack/webpack-dev-middleware/_build/latest?definitionId=8&branchName=master | ||
[tests]: https://github.com/webpack/webpack-dev-middleware/workflows/webpack-dev-middleware/badge.svg | ||
[tests-url]: https://github.com/webpack/webpack-dev-middleware/actions | ||
[cover]: https://codecov.io/gh/webpack/webpack-dev-middleware/branch/master/graph/badge.svg | ||
@@ -364,0 +364,0 @@ [cover-url]: https://codecov.io/gh/webpack/webpack-dev-middleware |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
40444
26
481
Updatedmem@^6.1.0
Updatedmemfs@^3.2.0
Updatedmime-types@^2.1.27
Updatedschema-utils@^2.7.0