From ac917c53e46a97e2ddf8a753523afb7f39476bbc Mon Sep 17 00:00:00 2001 From: Adam Argyle Date: Tue, 29 Nov 2022 09:58:27 -0800 Subject: [PATCH] fixes #3 --- index.js | 7 ++++++- test.js | 13 +++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index c707a21..2aba338 100644 --- a/index.js +++ b/index.js @@ -19,6 +19,7 @@ module.exports = (opts = {}) => { promisesList.push( new Promise((resolve) => { const globList = []; + let layer = new Map(); const params = valueParser(rule.params).nodes; @@ -33,6 +34,9 @@ module.exports = (opts = {}) => { path.join(dirName, param.value).replace(/\\/g, '/') ); } + if (param.type === 'function' && param.value === 'layer') { + layer.set(dirName, param.nodes[0].value) + } } if (globList.length) { @@ -46,10 +50,11 @@ module.exports = (opts = {}) => { const sortedEntries = sort(entries)[sorter](); sortedEntries.forEach((entry) => { + let paramValue = layer.get(dirName) ? `"${entry}" layer(${layer.get(dirName)})` : `"${entry}"` rule.before( new AtRule({ name: 'import', - params: `"${entry}"`, + params: paramValue, source: rule.source, }) ); diff --git a/test.js b/test.js index 17875de..0c5ff05 100644 --- a/test.js +++ b/test.js @@ -169,3 +169,16 @@ test('no entries warning', async (t) => { pluginsAfter: [postcssImport], }); }); + +test('layer test', async (t) => { + const input = ` + @import-glob "fixtures/css/foo/**/*.css" layer(test); + `; + + const output = ` + @import "${__dirname}/fixtures/css/foo/bar.css" layer(test); + @import "${__dirname}/fixtures/css/foo/foo.css" layer(test); + `; + + await tester.test(input, output, t); +});