Skip to content

Commit

Permalink
Merge pull request #13270 from webpack/bugfix/parser-options-validation
Browse files Browse the repository at this point in the history
catch errors thrown during parser/generation creation
  • Loading branch information
sokra committed Apr 30, 2021
2 parents e9de77a + eea0aee commit e123bc0
Show file tree
Hide file tree
Showing 5 changed files with 49 additions and 23 deletions.
50 changes: 27 additions & 23 deletions lib/NormalModuleFactory.js
Original file line number Diff line number Diff line change
Expand Up @@ -520,29 +520,33 @@ class NormalModuleFactory extends ModuleFactory {
)
);
}
Object.assign(data.createData, {
layer:
layer === undefined ? contextInfo.issuerLayer || null : layer,
request: stringifyLoadersAndResource(
allLoaders,
resourceData.resource
),
userRequest,
rawRequest: request,
loaders: allLoaders,
resource: resourceData.resource,
matchResource: matchResourceData
? matchResourceData.resource
: undefined,
resourceResolveData: resourceData.data,
settings,
type,
parser: this.getParser(type, settings.parser),
parserOptions: settings.parser,
generator: this.getGenerator(type, settings.generator),
generatorOptions: settings.generator,
resolveOptions
});
try {
Object.assign(data.createData, {
layer:
layer === undefined ? contextInfo.issuerLayer || null : layer,
request: stringifyLoadersAndResource(
allLoaders,
resourceData.resource
),
userRequest,
rawRequest: request,
loaders: allLoaders,
resource: resourceData.resource,
matchResource: matchResourceData
? matchResourceData.resource
: undefined,
resourceResolveData: resourceData.data,
settings,
type,
parser: this.getParser(type, settings.parser),
parserOptions: settings.parser,
generator: this.getGenerator(type, settings.generator),
generatorOptions: settings.generator,
resolveOptions
});
} catch (e) {
return callback(e);
}
callback();
});
this.resolveRequestArray(
Expand Down
6 changes: 6 additions & 0 deletions test/configCases/errors/asset-options-validation/errors.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module.exports = [
[
/Invalid generator object\. Asset Modules Plugin has been initialized using a generator object that does not match the API schema/,
/generator has an unknown property 'filename'/
]
];
1 change: 1 addition & 0 deletions test/configCases/errors/asset-options-validation/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
import url from "./text.txt";
1 change: 1 addition & 0 deletions test/configCases/errors/asset-options-validation/text.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Hello World
14 changes: 14 additions & 0 deletions test/configCases/errors/asset-options-validation/webpack.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/** @type {import("../../../../").Configuration} */
module.exports = {
module: {
rules: [
{
test: /\.txt$/,
type: "asset/inline",
generator: {
filename: "[name].txt"
}
}
]
}
};

0 comments on commit e123bc0

Please sign in to comment.