Skip to content

Commit deb10b9

Browse files
authored
fix: rule.issuerLayer (#8572)
1 parent 3a9ee55 commit deb10b9

File tree

11 files changed

+84
-10
lines changed

11 files changed

+84
-10
lines changed

crates/rspack_core/src/utils/module_rules.rs

+18-10
Original file line numberDiff line numberDiff line change
@@ -127,18 +127,26 @@ pub async fn module_rule_matcher<'a>(
127127
}
128128
}
129129

130-
if let Some(issuer_rule) = &module_rule.issuer
131-
&& let Some(issuer) = issuer
132-
&& !issuer_rule.try_match(issuer.into()).await?
133-
{
134-
return Ok(false);
130+
if let Some(issuer_rule) = &module_rule.issuer {
131+
match issuer {
132+
Some(issuer) => {
133+
if !issuer_rule.try_match(issuer.into()).await? {
134+
return Ok(false);
135+
}
136+
}
137+
None => return Ok(false),
138+
}
135139
}
136140

137-
if let Some(issuer_layer_rule) = &module_rule.issuer_layer
138-
&& let Some(issuer_layer) = issuer_layer
139-
&& !issuer_layer_rule.try_match(issuer_layer.into()).await?
140-
{
141-
return Ok(false);
141+
if let Some(issuer_layer_rule) = &module_rule.issuer_layer {
142+
match issuer_layer {
143+
Some(issuer_layer) => {
144+
if !issuer_layer_rule.try_match(issuer_layer.into()).await? {
145+
return Ok(false);
146+
}
147+
}
148+
None => return Ok(false),
149+
};
142150
}
143151

144152
if let Some(dependency_rule) = &module_rule.dependency
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import { color } from 'foo';
2+
3+
it("should import default export", () => {
4+
expect(color).toBe('light');
5+
});

packages/rspack-test-tools/tests/configCases/issuer/empty-entry-layer/node_modules/foo/dark.js

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/rspack-test-tools/tests/configCases/issuer/empty-entry-layer/node_modules/foo/index.js

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/rspack-test-tools/tests/configCases/issuer/empty-entry-layer/node_modules/foo/package.json

+9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/** @type {import("@rspack/core").Configuration} */
2+
module.exports = {
3+
entry: "./index.js",
4+
module: {
5+
rules: [
6+
{
7+
issuer: /dark/,
8+
resolve: {
9+
conditionNames: [
10+
'dark',
11+
'...'
12+
]
13+
}
14+
}
15+
]
16+
}
17+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import { color } from 'foo';
2+
3+
it("should import default export", () => {
4+
expect(color).toBe('light');
5+
});

packages/rspack-test-tools/tests/configCases/layer/empty-entry-layer/node_modules/foo/dark.js

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/rspack-test-tools/tests/configCases/layer/empty-entry-layer/node_modules/foo/index.js

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/rspack-test-tools/tests/configCases/layer/empty-entry-layer/node_modules/foo/package.json

+9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/** @type {import("@rspack/core").Configuration} */
2+
module.exports = {
3+
entry: "./index.js",
4+
module: {
5+
rules: [
6+
{
7+
issuerLayer: 'dark',
8+
resolve: {
9+
conditionNames: [
10+
'dark',
11+
'...'
12+
]
13+
}
14+
}
15+
]
16+
}
17+
};

0 commit comments

Comments
 (0)