Skip to content

Commit 1f98ebf

Browse files
committed
Merge remote-tracking branch 'upstream/master' into fix/style-modules-as-needed
2 parents 03b8b41 + e7663b7 commit 1f98ebf

File tree

2 files changed

+45
-10
lines changed
  • packages/language-core/lib/codegen/script
  • test-workspace/tsc/passedFixtures/vue3/cssModule

2 files changed

+45
-10
lines changed

packages/language-core/lib/codegen/script/scriptSetup.ts

+14-10
Original file line numberDiff line numberDiff line change
@@ -193,27 +193,31 @@ function* generateSetupFunction(
193193
}
194194
}
195195
if (scriptSetupRanges.cssModules.length) {
196-
for (const { define: { arg, exp } } of scriptSetupRanges.cssModules) {
196+
for (const { define } of scriptSetupRanges.cssModules) {
197197
setupCodeModifies.push([
198-
arg ? [
198+
[`(`],
199+
define.start,
200+
define.start
201+
], [
202+
define.arg ? [
199203
` as Omit<__VLS_StyleModules, '$style'>[`,
200-
generateSfcBlockSection(scriptSetup, arg.start, arg.end, codeFeatures.all),
201-
`]`
204+
generateSfcBlockSection(scriptSetup, define.arg.start, define.arg.end, codeFeatures.all),
205+
`])`
202206
] : [
203207
` as __VLS_StyleModules[`,
204-
['', scriptSetup.name, exp.start, codeFeatures.verification],
208+
['', scriptSetup.name, define.exp.start, codeFeatures.verification],
205209
`'$style'`,
206-
['', scriptSetup.name, exp.end, codeFeatures.verification],
207-
`]`
210+
['', scriptSetup.name, define.exp.end, codeFeatures.verification],
211+
`])`
208212
],
209-
exp.end,
210-
exp.end
213+
define.end,
214+
define.end
211215
]);
212216
}
213217
}
214218
const isTs = options.lang !== 'js' && options.lang !== 'jsx';
215219
for (const { define } of scriptSetupRanges.templateRefs) {
216-
if (!define?.arg) {
220+
if (!define.arg) {
217221
continue;
218222
}
219223
if (isTs) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<script lang="ts" setup>
2+
import { useCssModule } from 'vue';
3+
import { exactType } from '../../shared';
4+
5+
const style = useCssModule();
6+
exactType(style, {} as Record<string, string> & {
7+
style: string;
8+
});
9+
10+
const foo = useCssModule('foo');
11+
exactType(foo, {} as Record<string, string> & {
12+
foo: string;
13+
});
14+
15+
const bar = useCssModule('bar');
16+
exactType(bar, {} as Record<string, string> & {
17+
bar: string;
18+
});
19+
</script>
20+
21+
<style module>
22+
.style { }
23+
</style>
24+
25+
<style module="foo">
26+
.foo { }
27+
</style>
28+
29+
<style module="bar">
30+
.bar { }
31+
</style>

0 commit comments

Comments
 (0)