diff --git a/src/utils.js b/src/utils.js index 3454110..8cc032c 100644 --- a/src/utils.js +++ b/src/utils.js @@ -7,7 +7,7 @@ const camelCase = require("camelcase"); * @returns {string[]} */ const getCssModuleKeys = (content) => { - const keyRegex = /"([\w-]+)":/g; + const keyRegex = /"([^"\n]+)":/g; let match; const cssModuleKeys = []; diff --git a/test/utils.test.js b/test/utils.test.js index 8170bdd..2daa072 100644 --- a/test/utils.test.js +++ b/test/utils.test.js @@ -60,4 +60,23 @@ describe("getCssModuleKeys", () => { const actual = getCssModuleKeys(content); expect(actual).toEqual([]); }); + + it("CSS module with special class names", () => { + const content = `.locals = { + "øæå": "nordic", + "+~@": "special", + "f\\'o\\'o": "escaped", + };`; + const actual = getCssModuleKeys(content); + expect(actual).toEqual(["øæå", "+~@", "f\\'o\\'o"]); + }); + + it("CSS module with newline in class names should be ignored", () => { + const content = `.locals = { + "line1 +line2": "twolinesdoesnotmakesense" + };`; + const actual = getCssModuleKeys(content); + expect(actual).toEqual([]); + }); });