From c953d15e90e98acbdc43ac7db61064af2f2bca5c Mon Sep 17 00:00:00 2001 From: Rich Churcher Date: Wed, 15 Mar 2017 08:08:19 +1300 Subject: [PATCH] Handle nested styles per aevk --- package.json | 3 ++- src/requireCssModule.js | 2 ++ .../react-css-modules/resolves nested styles/actual.js | 3 +++ .../react-css-modules/resolves nested styles/bar.css | 3 +++ .../resolves nested styles/expected.js | 3 +++ .../resolves nested styles/options.json | 10 ++++++++++ 6 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 test/fixtures/react-css-modules/resolves nested styles/actual.js create mode 100644 test/fixtures/react-css-modules/resolves nested styles/bar.css create mode 100644 test/fixtures/react-css-modules/resolves nested styles/expected.js create mode 100644 test/fixtures/react-css-modules/resolves nested styles/options.json diff --git a/package.json b/package.json index e5743b3..749188d 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,8 @@ "postcss-modules-local-by-default": "^1.1.1", "postcss-modules-parser": "^1.1.0", "postcss-modules-scope": "^1.0.2", - "postcss-modules-values": "^1.2.2" + "postcss-modules-values": "^1.2.2", + "postcss-nested": "^1.0.0" }, "description": "Transforms styleName to className using compile time CSS module resolution.", "devDependencies": { diff --git a/src/requireCssModule.js b/src/requireCssModule.js index 28e8703..b7ea0b7 100644 --- a/src/requireCssModule.js +++ b/src/requireCssModule.js @@ -11,6 +11,7 @@ import postcss from 'postcss'; import genericNames from 'generic-names'; import ExtractImports from 'postcss-modules-extract-imports'; import LocalByDefault from 'postcss-modules-local-by-default'; +import Nested from 'postcss-nested'; import Parser from 'postcss-modules-parser'; import Scope from 'postcss-modules-scope'; import Values from 'postcss-modules-values'; @@ -66,6 +67,7 @@ export default (cssSourceFilePath: string, options: OptionsType): StyleModuleMap }; const plugins = [ + Nested, Values, LocalByDefault, ExtractImports, diff --git a/test/fixtures/react-css-modules/resolves nested styles/actual.js b/test/fixtures/react-css-modules/resolves nested styles/actual.js new file mode 100644 index 0000000..c0e8179 --- /dev/null +++ b/test/fixtures/react-css-modules/resolves nested styles/actual.js @@ -0,0 +1,3 @@ +import './bar.css'; + +
; diff --git a/test/fixtures/react-css-modules/resolves nested styles/bar.css b/test/fixtures/react-css-modules/resolves nested styles/bar.css new file mode 100644 index 0000000..bba2d85 --- /dev/null +++ b/test/fixtures/react-css-modules/resolves nested styles/bar.css @@ -0,0 +1,3 @@ +.a { + &-b: {} +} diff --git a/test/fixtures/react-css-modules/resolves nested styles/expected.js b/test/fixtures/react-css-modules/resolves nested styles/expected.js new file mode 100644 index 0000000..2c0128c --- /dev/null +++ b/test/fixtures/react-css-modules/resolves nested styles/expected.js @@ -0,0 +1,3 @@ +import './bar.css'; + +
; diff --git a/test/fixtures/react-css-modules/resolves nested styles/options.json b/test/fixtures/react-css-modules/resolves nested styles/options.json new file mode 100644 index 0000000..6f54db7 --- /dev/null +++ b/test/fixtures/react-css-modules/resolves nested styles/options.json @@ -0,0 +1,10 @@ +{ + "plugins": [ + [ + "../../../../src", + { + "generateScopedName": "[name]__[local]" + } + ] + ] +}