Skip to content

Commit f7ac36f

Browse files
committed
perf
1 parent ac21bf9 commit f7ac36f

File tree

4 files changed

+67
-15
lines changed

4 files changed

+67
-15
lines changed

lib/util/settings.js

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
11
'use strict';
2+
let resolveDefaultConfigPathAlias;
3+
4+
try {
5+
const { resolveDefaultConfigPath } = require('tailwindcss/lib/util/resolveConfigPath');
6+
resolveDefaultConfigPathAlias = resolveDefaultConfigPath;
7+
} catch (err) {
8+
resolveDefaultConfigPathAlias = null;
9+
}
210

311
function getOption(context, name) {
412
// Options (defined at rule level)
@@ -19,7 +27,17 @@ function getOption(context, name) {
1927
case 'classRegex':
2028
return '^class(Name)?$';
2129
case 'config':
22-
return {};
30+
if (resolveDefaultConfigPathAlias === null) {
31+
console.warn('Cannot resolve default config path. Please manually set the config option.');
32+
return {};
33+
} else {
34+
const path = resolveDefaultConfigPathAlias();
35+
if (!path) {
36+
console.warn('Cannot resolve default config path. Please manually set the config option.');
37+
return {};
38+
}
39+
return path;
40+
}
2341
case 'cssFiles':
2442
return ['**/*.css', '!**/node_modules', '!**/.*', '!**/dist', '!**/build'];
2543
case 'cssFilesRefreshRate':

lib/util/tailwindAPI.js

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,42 @@
11
const { createSyncFn } = require('synckit');
22

3-
const getTailwindConfig = createSyncFn(require.resolve('./getTailwindConfigWorker.js'));
4-
const getSortedClassNames = createSyncFn(require.resolve('./getSortedClassNamesWorker.js'));
5-
const isValidClassName = createSyncFn(require.resolve('./isValidClassNameWorker.js'));
3+
const { resolve } = require('./customConfig');
4+
const getTailwindConfigWorker = createSyncFn(require.resolve('./getTailwindConfigWorker.js'));
5+
const getSortedClassNamesWorker = createSyncFn(require.resolve('./getSortedClassNamesWorker.js'));
6+
const isValidClassNameWorker = createSyncFn(require.resolve('./isValidClassNameWorker.js'));
7+
8+
const getTailwindConfig = (twConfig) => {
9+
const utils = resolve(twConfig);
10+
if (utils.isV4) {
11+
return getTailwindConfigWorker(twConfig);
12+
}
13+
if (!utils.context) {
14+
utils.loadConfigV3(twConfig);
15+
}
16+
return utils.context.tailwindConfig;
17+
};
18+
19+
const getSortedClassNames = (twConfig, classNames) => {
20+
const utils = resolve(twConfig);
21+
if (utils.isV4) {
22+
return getSortedClassNamesWorker(twConfig, classNames);
23+
}
24+
if (!utils.context) {
25+
utils.loadConfigV3(twConfig);
26+
}
27+
return utils.getSortedClassNames(classNames);
28+
};
29+
30+
const isValidClassName = (twConfig, className) => {
31+
const utils = resolve(twConfig);
32+
if (utils.isV4) {
33+
return isValidClassNameWorker(twConfig, className);
34+
}
35+
if (!utils.context) {
36+
utils.loadConfigV3(twConfig);
37+
}
38+
return utils.isValidClassName(className);
39+
};
640

741
module.exports = {
842
getTailwindConfig,

package-lock.json

Lines changed: 9 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@hyoban/eslint-plugin-tailwindcss",
3-
"version": "4.0.0-alpha.5",
3+
"version": "4.0.0-alpha.7",
44
"description": "Rules enforcing best practices while using Tailwind CSS",
55
"keywords": [
66
"eslint",
@@ -32,7 +32,7 @@
3232
"fast-glob": "^3.2.5",
3333
"postcss": "^8.4.4",
3434
"synckit": "^0.11.4",
35-
"tailwind-api-utils": "^1.0.1"
35+
"tailwind-api-utils": "^1.0.2"
3636
},
3737
"devDependencies": {
3838
"@angular-eslint/template-parser": "^15.2.0",

0 commit comments

Comments
 (0)