Socket
Socket
Sign inDemoInstall

postcss-modules-tilda

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

postcss-modules-tilda - npm Package Compare versions

Comparing version 1.0.1 to 2.0.0

49

index.js

@@ -1,31 +0,48 @@

const postcss = require('postcss')
const matchImports = /^((?:.+?|\([\s\S]+?\))\s+from\s+)(['"])(@?\w+.*?)\2$/
const postcss = require('postcss');
module.exports = postcss.plugin('postcss-modules-tilda', () => root => {
root.walk(node => {
const modulePathPattern = '([\'"])(@?\\w+.*?)';
const prefixPattern = '((?:.+?|\\([\\s\\S]+?\\))\\s+from\\s+)';
const matchImports = new RegExp(`^${prefixPattern}${modulePathPattern}\\2$`);
const matchOnlyImportPath = new RegExp(`^${modulePathPattern}\\1$`);
module.exports = postcss.plugin('postcss-modules-tilda', () => (root) => {
root.walk((node) => {
if (node.type === 'atrule') {
let newImports = updateImports(node.params)
const newImports = node.name === 'import'
? updateImportAtRulePath(node.params)
: updateImports(node.params);
if (newImports) {
node.params = newImports
node.params = newImports;
}
return
return;
}
if (node.type === 'decl' && node.prop === 'composes') {
let newImports = updateImports(node.value)
const newImports = updateImports(node.value);
if (newImports) {
node.value = newImports
node.value = newImports;
}
}
})
})
});
});
function updateImports (imports) {
let matches = matchImports.exec(imports)
function updateImports(imports) {
const matches = matchImports.exec(imports);
if (!matches) {
return undefined
return undefined;
}
let [, prefix, quote, path] = matches
return `${ prefix }${ quote }~${ path }${ quote }`
const [, prefix, quote, path] = matches;
return `${prefix}${quote}~${path}${quote}`;
}
function updateImportAtRulePath(stringLiteral) {
const matches = matchOnlyImportPath.exec(stringLiteral);
if (!matches) {
return undefined;
}
const [, quote, path] = matches;
return `${quote}~${path}${quote}`;
}
{
"name": "postcss-modules-tilda",
"version": "1.0.1",
"version": "2.0.0",
"description": "PostCSS plugin to restore the way to resolve modules CSS Modules values paths that css-loader used before 1.0",

@@ -28,18 +28,24 @@ "keywords": [

"devDependencies": {
"@logux/eslint-config": "^27.0.0",
"eslint": "^5.10.0",
"eslint-config-postcss": "^3.0.7",
"eslint-config-standard": "^12.0.0",
"eslint-plugin-es5": "^1.3.1",
"eslint-plugin-import": "^2.14.0",
"eslint-plugin-jest": "^22.1.2",
"eslint-plugin-node": "^8.0.0",
"eslint-plugin-prefer-let": "^1.0.1",
"eslint-plugin-promise": "^4.0.1",
"eslint-plugin-security": "^1.4.0",
"eslint-plugin-standard": "^4.0.0",
"jest": "^23.6.0"
"eslint": "^6.1.0",
"eslint-config-airbnb": "^18.0.1",
"eslint-plugin-import": "^2.20.0",
"eslint-plugin-jsx-a11y": "^6.2.3",
"eslint-plugin-react": "^7.18.0",
"eslint-plugin-react-hooks": "^1.7.0",
"jest": "^25.1.0"
},
"eslintConfig": {
"extends": "eslint-config-postcss"
"extends": "eslint-config-airbnb",
"rules": {
"no-use-before-define": [
"error",
"nofunc"
],
"no-param-reassign": [
"error",
{
"props": false
}
]
}
},

@@ -46,0 +52,0 @@ "jest": {

@@ -13,5 +13,7 @@ # PostCSS Modules Tilda [![Build Status][ci-img]][ci]

```css
@import "module/module.css";
@value module from "module/module.css";
a {
composes: module;
composes: module;
composes: selector from "module/module.css";

@@ -24,4 +26,6 @@ }

```css
@import "~module/module.css";
@value module from "~module/module.css";
a {
a {
composes: module;

@@ -28,0 +32,0 @@ composes: selector from "~module/module.css";

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