From f2149b8cd17114d4a5b74cc76376aa43bf6d2129 Mon Sep 17 00:00:00 2001 From: mizdra Date: Tue, 29 Apr 2025 20:02:24 +0900 Subject: [PATCH 1/2] support class names in any format --- packages/codegen/src/runner.test.ts | 6 +-- packages/core/src/dts-creator.test.ts | 62 +++++++++++++-------------- packages/core/src/dts-creator.ts | 20 ++++----- 3 files changed, 44 insertions(+), 44 deletions(-) diff --git a/packages/codegen/src/runner.test.ts b/packages/codegen/src/runner.test.ts index cf73a31b..a640c3b4 100644 --- a/packages/codegen/src/runner.test.ts +++ b/packages/codegen/src/runner.test.ts @@ -42,7 +42,7 @@ describe('runCMK', () => { expect(await iff.readFile('generated/src/a.module.css.d.ts')).toMatchInlineSnapshot(` "// @ts-nocheck declare const styles = { - a1: '' as readonly string, + 'a1': '' as readonly string, }; export default styles; " @@ -50,7 +50,7 @@ describe('runCMK', () => { expect(await iff.readFile('generated/src/b.module.css.d.ts')).toMatchInlineSnapshot(` "// @ts-nocheck declare const styles = { - b1: '' as readonly string, + 'b1': '' as readonly string, }; export default styles; " @@ -137,7 +137,7 @@ describe('runCMK', () => { expect(await iff.readFile('generated/src/a.module.css.d.ts')).toMatchInlineSnapshot(` "// @ts-nocheck declare const styles = { - a1: '' as readonly string, + 'a1': '' as readonly string, }; export default styles; " diff --git a/packages/core/src/dts-creator.test.ts b/packages/core/src/dts-creator.test.ts index 5d3375c4..4b524ebc 100644 --- a/packages/core/src/dts-creator.test.ts +++ b/packages/core/src/dts-creator.test.ts @@ -59,8 +59,8 @@ describe('createDts', () => { }, "mapping": { "generatedOffsets": [ - 42, - 75, + 43, + 78, ], "lengths": [ 6, @@ -73,8 +73,8 @@ describe('createDts', () => { }, "text": "// @ts-nocheck declare const styles = { - local1: '' as readonly string, - local2: '' as readonly string, + 'local1': '' as readonly string, + 'local2': '' as readonly string, }; export default styles; ", @@ -118,27 +118,27 @@ describe('createDts', () => { 9, ], "generatedOffsets": [ - 141, - 213, + 144, + 221, ], "lengths": [ 9, 16, ], "sourceOffsets": [ - 89, - 154, + 90, + 160, ], }, "mapping": { "generatedOffsets": [ 59, - 89, - 114, - 141, - 154, - 186, - 213, + 90, + 116, + 144, + 160, + 193, + 221, ], "lengths": [ 16, @@ -162,8 +162,8 @@ describe('createDts', () => { "text": "// @ts-nocheck declare const styles = { ...(await import('./a.module.css')).default, - imported1: (await import('./b.module.css')).default.imported1, - aliasedImported2: (await import('./c.module.css')).default.imported2, + 'imported1': (await import('./b.module.css')).default['imported1'], + 'aliasedImported2': (await import('./c.module.css')).default['imported2'], }; export default styles; ", @@ -189,8 +189,8 @@ describe('createDts', () => { }, "mapping": { "generatedOffsets": [ - 42, - 92, + 43, + 94, ], "lengths": [ 6, @@ -203,7 +203,7 @@ describe('createDts', () => { }, "text": "// @ts-nocheck declare const styles = { - local1: '' as readonly string, + 'local1': '' as readonly string, ...(await import('./a.module.css')).default, }; export default styles; @@ -250,27 +250,27 @@ describe('createDts', () => { 9, ], "generatedOffsets": [ - 141, - 213, + 144, + 221, ], "lengths": [ 9, 16, ], "sourceOffsets": [ - 89, - 154, + 90, + 160, ], }, "mapping": { "generatedOffsets": [ 59, - 89, - 114, - 141, - 154, - 186, - 213, + 90, + 116, + 144, + 160, + 193, + 221, ], "lengths": [ 16, @@ -294,8 +294,8 @@ describe('createDts', () => { "text": "// @ts-nocheck declare const styles = { ...(await import('@/a.module.css')).default, - imported1: (await import('@/b.module.css')).default.imported1, - aliasedImported2: (await import('@/c.module.css')).default.imported2, + 'imported1': (await import('@/b.module.css')).default['imported1'], + 'aliasedImported2': (await import('@/c.module.css')).default['imported2'], }; export default styles; ", diff --git a/packages/core/src/dts-creator.ts b/packages/core/src/dts-creator.ts index c3233cb3..4fe243e2 100644 --- a/packages/core/src/dts-creator.ts +++ b/packages/core/src/dts-creator.ts @@ -43,11 +43,11 @@ interface LinkedCodeMapping extends CodeMapping { * ```ts * // @ts-nocheck * const styles = { - * local1: '' as readonly string, - * local2: '' as readonly string, + * 'local1': '' as readonly string, + * 'local2': '' as readonly string, * ...(await import('./a.module.css')).default, - * imported1: (await import('./b.module.css')).default.imported1, - * aliasedImported2: (await import('./b.module.css')).default.imported2, + * 'imported1': (await import('./b.module.css')).default.['imported1'], + * 'aliasedImported2': (await import('./b.module.css')).default['imported2'], * }; * export default styles; * ``` @@ -78,11 +78,11 @@ export function createDts( let text = `// @ts-nocheck\ndeclare const ${STYLES_EXPORT_NAME} = {\n`; for (const token of localTokens) { - text += ` `; + text += ` '`; mapping.sourceOffsets.push(token.loc.start.offset); mapping.generatedOffsets.push(text.length); mapping.lengths.push(token.name.length); - text += `${token.name}: '' as readonly string,\n`; + text += `${token.name}': '' as readonly string,\n`; } for (const tokenImporter of tokenImporters) { if (tokenImporter.type === 'import') { @@ -97,25 +97,25 @@ export function createDts( const localName = value.localName ?? value.name; const localLoc = value.localLoc ?? value.loc; - text += ` `; + text += ` '`; mapping.sourceOffsets.push(localLoc.start.offset); mapping.lengths.push(localName.length); mapping.generatedOffsets.push(text.length); linkedCodeMapping.sourceOffsets.push(text.length); linkedCodeMapping.lengths.push(localName.length); - text += `${localName}: (await import(`; + text += `${localName}': (await import(`; if (i === 0) { mapping.sourceOffsets.push(tokenImporter.fromLoc.start.offset - 1); mapping.lengths.push(tokenImporter.from.length + 2); mapping.generatedOffsets.push(text.length); } - text += `'${tokenImporter.from}')).default.`; + text += `'${tokenImporter.from}')).default['`; mapping.sourceOffsets.push(value.loc.start.offset); mapping.lengths.push(value.name.length); mapping.generatedOffsets.push(text.length); linkedCodeMapping.generatedOffsets.push(text.length); linkedCodeMapping.generatedLengths.push(value.name.length); - text += `${value.name},\n`; + text += `${value.name}'],\n`; }); } } From 73c18500c260381a1155306b3b2974d37c5b1f31 Mon Sep 17 00:00:00 2001 From: mizdra Date: Tue, 29 Apr 2025 20:10:59 +0900 Subject: [PATCH 2/2] update volar --- package-lock.json | 56 +++++++++++++-------------- packages/language-server/package.json | 2 +- packages/ts-plugin/package.json | 4 +- 3 files changed, 31 insertions(+), 31 deletions(-) diff --git a/package-lock.json b/package-lock.json index 85a16b81..6d77e40b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2300,23 +2300,23 @@ } }, "node_modules/@volar/language-core": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.11.tgz", - "integrity": "sha512-lN2C1+ByfW9/JRPpqScuZt/4OrUUse57GLI6TbLgTIqBVemdl1wNcZ1qYGEo2+Gw8coYLgCy7SuKqn6IrQcQgg==", + "version": "2.4.13", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.13.tgz", + "integrity": "sha512-MnQJ7eKchJx5Oz+YdbqyFUk8BN6jasdJv31n/7r6/WwlOOv7qzvot6B66887l2ST3bUW4Mewml54euzpJWA6bg==", "license": "MIT", "dependencies": { - "@volar/source-map": "2.4.11" + "@volar/source-map": "2.4.13" } }, "node_modules/@volar/language-server": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/@volar/language-server/-/language-server-2.4.11.tgz", - "integrity": "sha512-W9P8glH1M8LGREJ7yHRCANI5vOvTrRO15EMLdmh5WNF9sZYSEbQxiHKckZhvGIkbeR1WAlTl3ORTrJXUghjk7g==", + "version": "2.4.13", + "resolved": "https://registry.npmjs.org/@volar/language-server/-/language-server-2.4.13.tgz", + "integrity": "sha512-g8ucG5+FJgQT2r+Te1Pk+ppoPHCwzJ54gq/oN1utjtA3+iE9hp5E+M60Ks+hhGrexUPC/E3EABDQlCagmEal+Q==", "license": "MIT", "dependencies": { - "@volar/language-core": "2.4.11", - "@volar/language-service": "2.4.11", - "@volar/typescript": "2.4.11", + "@volar/language-core": "2.4.13", + "@volar/language-service": "2.4.13", + "@volar/typescript": "2.4.13", "path-browserify": "^1.0.1", "request-light": "^0.7.0", "vscode-languageserver": "^9.0.1", @@ -2326,30 +2326,30 @@ } }, "node_modules/@volar/language-service": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/@volar/language-service/-/language-service-2.4.11.tgz", - "integrity": "sha512-KIb6g8gjUkS2LzAJ9bJCLIjfsJjeRtmXlu7b2pDFGD3fNqdbC53cCAKzgWDs64xtQVKYBU13DLWbtSNFtGuMLQ==", + "version": "2.4.13", + "resolved": "https://registry.npmjs.org/@volar/language-service/-/language-service-2.4.13.tgz", + "integrity": "sha512-yngNLIxt1w3S60YLTRAa7MSE1IRmXcxGA9ttLjndY0Jc3owCFjeAWSPeXBILZBJOtdT8rP07JY1ozwUls/gvRg==", "license": "MIT", "dependencies": { - "@volar/language-core": "2.4.11", + "@volar/language-core": "2.4.13", "vscode-languageserver-protocol": "^3.17.5", "vscode-languageserver-textdocument": "^1.0.11", "vscode-uri": "^3.0.8" } }, "node_modules/@volar/source-map": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.11.tgz", - "integrity": "sha512-ZQpmafIGvaZMn/8iuvCFGrW3smeqkq/IIh9F1SdSx9aUl0J4Iurzd6/FhmjNO5g2ejF3rT45dKskgXWiofqlZQ==", + "version": "2.4.13", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.13.tgz", + "integrity": "sha512-l/EBcc2FkvHgz2ZxV+OZK3kMSroMr7nN3sZLF2/f6kWW66q8+tEL4giiYyFjt0BcubqJhBt6soYIrAPhg/Yr+Q==", "license": "MIT" }, "node_modules/@volar/typescript": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.11.tgz", - "integrity": "sha512-2DT+Tdh88Spp5PyPbqhyoYavYCPDsqbHLFwcUI9K1NlY1YgUJvujGdrqUp0zWxnW7KWNTr3xSpMuv2WnaTKDAw==", + "version": "2.4.13", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.13.tgz", + "integrity": "sha512-Ukz4xv84swJPupZeoFsQoeJEOm7U9pqsEnaGGgt5ni3SCTa22m8oJP5Nng3Wed7Uw5RBELdLxxORX8YhJPyOgQ==", "license": "MIT", "dependencies": { - "@volar/language-core": "2.4.11", + "@volar/language-core": "2.4.13", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } @@ -9746,7 +9746,7 @@ }, "packages/eslint-plugin": { "name": "@css-modules-kit/eslint-plugin", - "version": "0.1.0", + "version": "0.1.1", "license": "MIT", "dependencies": { "@css-modules-kit/core": "^0.2.0", @@ -9765,7 +9765,7 @@ "version": "0.0.1", "license": "MIT", "dependencies": { - "@volar/language-server": "^2.4.11", + "@volar/language-server": "^2.4.13", "volar-service-css": "^0.0.62" }, "engines": { @@ -9788,12 +9788,12 @@ }, "packages/ts-plugin": { "name": "@css-modules-kit/ts-plugin", - "version": "0.1.0", + "version": "0.1.1", "license": "MIT", "dependencies": { "@css-modules-kit/core": "^0.2.0", - "@volar/language-core": "^2.4.11", - "@volar/typescript": "^2.4.11" + "@volar/language-core": "^2.4.13", + "@volar/typescript": "^2.4.13" }, "engines": { "node": ">=22.0.0" @@ -9804,11 +9804,11 @@ }, "packages/vscode": { "name": "css-modules-kit-vscode", - "version": "0.0.3", + "version": "0.0.4", "license": "MIT", "dependencies": { "@css-modules-kit/language-server": "^0.0.1", - "@css-modules-kit/ts-plugin": "^0.1.0", + "@css-modules-kit/ts-plugin": "^0.1.1", "vscode-languageclient": "^9.0.1" }, "engines": { diff --git a/packages/language-server/package.json b/packages/language-server/package.json index 78c51abf..e8d3a7dc 100644 --- a/packages/language-server/package.json +++ b/packages/language-server/package.json @@ -36,7 +36,7 @@ "dist" ], "dependencies": { - "@volar/language-server": "^2.4.11", + "@volar/language-server": "^2.4.13", "volar-service-css": "^0.0.62" } } diff --git a/packages/ts-plugin/package.json b/packages/ts-plugin/package.json index 8c96194f..34bcb0c2 100644 --- a/packages/ts-plugin/package.json +++ b/packages/ts-plugin/package.json @@ -37,8 +37,8 @@ "dist" ], "dependencies": { - "@volar/language-core": "^2.4.11", - "@volar/typescript": "^2.4.11", + "@volar/language-core": "^2.4.13", + "@volar/typescript": "^2.4.13", "@css-modules-kit/core": "^0.2.0" }, "peerDependencies": {