Socket
Socket
Sign inDemoInstall

eslint-plugin-tailwindcss

Package Overview
Dependencies
Maintainers
1
Versions
183
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

eslint-plugin-tailwindcss - npm Package Compare versions

Comparing version 3.17.3-beta.0 to 3.17.3-beta.2

50

lib/util/cssFiles.js

@@ -6,4 +6,5 @@ 'use strict';

const postcss = require('postcss');
const removeDuplicatesFromArray = require('./removeDuplicatesFromArray');
let previousGlobsResults = [];
const cssFilesInfos = new Map();
let lastUpdate = null;

@@ -28,17 +29,25 @@ let classnamesFromFiles = [];

// console.log('generateClassnamesListSync EXPIRED');
const files = fg.sync(patterns, { suppressErrors: true, stats: true });
const hasNewFiles = previousGlobsResults.flat().join(',') != files.flat().join(',');
if (!hasNewFiles) {
// No new files from glob patterns
return classnamesFromFiles;
}
// Update classnames from CSS files
previousGlobsResults = files;
lastUpdate = now;
let detectedClassnames = new Set();
const filesToBeRemoved = new Set([...cssFilesInfos.keys()]);
const files = fg.sync(patterns, { suppressErrors: true, stats: true });
for (const file of files) {
let mtime = '';
let canBeSkipped = cssFilesInfos.has(file.path);
if (canBeSkipped) {
// This file is still used
filesToBeRemoved.delete(file.path);
// Check modification date
const stats = fs.statSync(file.path);
mtime = `${stats.mtime || ''}`;
canBeSkipped = cssFilesInfos.get(file.path).mtime === mtime;
}
if (canBeSkipped) {
// File did not change since last run
continue;
}
// Parse CSS file
const data = fs.readFileSync(file.path, 'utf-8');
const root = postcss.parse(data);
let detectedClassnames = new Set();
root.walkRules((rule) => {

@@ -50,7 +59,22 @@ const regexp = /\.([^\.\,\s\n\:\(\)\[\]\'~\+\>\*\\]*)/gim;

});
// Save the detected classnames
cssFilesInfos.set(file.path, {
mtime: mtime,
classNames: [...detectedClassnames],
});
}
classnamesFromFiles = [...detectedClassnames];
return classnamesFromFiles;
// Remove erased CSS from the Map
const deletedFiles = [...filesToBeRemoved];
for (let i = 0; i < deletedFiles.length; i++) {
cssFilesInfos.delete(deletedFiles[i]);
}
// Build the final list
classnamesFromFiles = [];
cssFilesInfos.forEach((css) => {
classnamesFromFiles = [...classnamesFromFiles, ...css.classNames];
});
// Unique classnames
return removeDuplicatesFromArray(classnamesFromFiles);
};
module.exports = generateClassnamesListSync;

@@ -47,8 +47,9 @@ 'use strict';

const stats = fs.statSync(resolvedPath);
const mtime = `${stats.mtime || ''}`;
if (stats === null) {
// Default to no config
loadedConfig = {};
} else if (lastModifiedDate !== stats.mtime) {
} else if (lastModifiedDate !== mtime) {
// Load the config based on path
lastModifiedDate = stats.mtime;
lastModifiedDate = mtime;
loadedConfig = requireUncached(resolvedPath);

@@ -55,0 +56,0 @@ } else {

{
"name": "eslint-plugin-tailwindcss",
"version": "3.17.3-beta.0",
"version": "3.17.3-beta.2",
"description": "Rules enforcing best practices while using Tailwind CSS",

@@ -56,2 +56,2 @@ "keywords": [

"license": "MIT"
}
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc