Skip to content

Commit 537405d

Browse files
committed
Fix LESS extension matching
1 parent 05366ed commit 537405d

File tree

3 files changed

+19
-15
lines changed

3 files changed

+19
-15
lines changed

src/helpers/__tests__/cssSnapshots.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,20 @@ const testFileNames = [
1212
];
1313

1414
describe('utils / cssSnapshots', () => {
15-
testFileNames.forEach((filename) => {
15+
testFileNames.forEach((fileName) => {
1616
let classes: IICSSExports;
17-
const isLess = filename.includes('less');
18-
const fileType = isLess ? FileTypes.less : FileTypes.css;
17+
const isLess = fileName.includes('.less');
18+
const fileType = isLess ? FileTypes.less : FileTypes.scss;
1919
const testFile = readFileSync(
20-
join(__dirname, 'fixtures', filename),
20+
join(__dirname, 'fixtures', fileName),
2121
'utf8',
2222
);
2323

2424
beforeAll(() => {
2525
classes = getClasses(testFile, fileType);
2626
});
2727

28-
describe(`with file '${filename}'`, () => {
28+
describe(`with file '${fileName}'`, () => {
2929
describe('getClasses', () => {
3030
it('should return an object matching expected CSS', () => {
3131
expect(classes).toMatchSnapshot();

src/helpers/cssSnapshots.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,13 @@ const flattenClassNames = (
2121
) => previousValue.concat(currentValue);
2222

2323
export const enum FileTypes {
24-
css = 'css',
25-
sass = 'sass',
24+
scss = 'scss',
2625
less = 'less',
2726
}
2827

2928
export const getClasses = (
3029
css: string,
31-
fileType: FileTypes = FileTypes.css,
30+
fileType: FileTypes = FileTypes.scss,
3231
) => {
3332
try {
3433
let transformedCss = '';
@@ -51,8 +50,8 @@ export const getClasses = (
5150

5251
export const createExports = (classes: IICSSExports, options: Options) => {
5352
const isCamelCase = (className: string) =>
54-
!NOT_CAMELCASE_REGEXP.test(className);
55-
const isReservedWord = (className: string) => !reserved.check(className);
53+
!NOT_CAMELCASE_REGEXP.test(className);
54+
const isReservedWord = (className: string) => !reserved.check(className);
5655

5756
const processedClasses = Object.keys(classes)
5857
.map(transformClasses(options.camelCase))
@@ -77,11 +76,13 @@ export default classes;
7776

7877
export const getDtsSnapshot = (
7978
ts: typeof ts_module,
79+
fileName: string,
8080
scriptSnapshot: ts.IScriptSnapshot,
8181
options: Options,
8282
) => {
8383
const css = scriptSnapshot.getText(0, scriptSnapshot.getLength());
84-
const classes = getClasses(css);
84+
const fileType = fileName.includes('.less') ? FileTypes.less : FileTypes.scss;
85+
const classes = getClasses(css, fileType);
8586
const dts = createExports(classes, options);
8687
return ts.ScriptSnapshot.fromString(dts);
8788
};

src/index.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ function init({ typescript: ts }: { typescript: typeof ts_module }) {
1515
const { isCSS, isRelativeCSS } = createMatchers(options);
1616
_isCSS = isCSS;
1717

18-
info.project.projectService.logger.info(`******** isCSS: ${isCSS}`);
19-
2018
// Creates new virtual source files for the CSS modules.
2119
const _createLanguageServiceSourceFile = ts.createLanguageServiceSourceFile;
2220
ts.createLanguageServiceSourceFile = (
@@ -25,7 +23,7 @@ function init({ typescript: ts }: { typescript: typeof ts_module }) {
2523
...rest
2624
): ts.SourceFile => {
2725
if (isCSS(fileName)) {
28-
scriptSnapshot = getDtsSnapshot(ts, scriptSnapshot, options);
26+
scriptSnapshot = getDtsSnapshot(ts, fileName, scriptSnapshot, options);
2927
}
3028
const sourceFile = _createLanguageServiceSourceFile(
3129
fileName,
@@ -46,7 +44,12 @@ function init({ typescript: ts }: { typescript: typeof ts_module }) {
4644
...rest
4745
): ts.SourceFile => {
4846
if (isCSS(sourceFile.fileName)) {
49-
scriptSnapshot = getDtsSnapshot(ts, scriptSnapshot, options);
47+
scriptSnapshot = getDtsSnapshot(
48+
ts,
49+
sourceFile.fileName,
50+
scriptSnapshot,
51+
options,
52+
);
5053
}
5154
sourceFile = _updateLanguageServiceSourceFile(
5255
sourceFile,

0 commit comments

Comments
 (0)