From 13552d1ad9ef7de32655f1577d7112267b80f933 Mon Sep 17 00:00:00 2001 From: Daniel Juhl Date: Sat, 14 Mar 2020 20:33:28 +0100 Subject: [PATCH 1/2] Support named exports --- index.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 6da5e02..c2e3f91 100644 --- a/index.js +++ b/index.js @@ -21,6 +21,13 @@ const getTypeMismatchError = ({ filename, expected, actual }) => { ); }; +const cssModuleToConsts = (cssModuleKeys) => { + return cssModuleKeys + .sort() + .map(key => `export const ${key}: string;`) + .join('\n'); +}; + const cssModuleToInterface = (cssModuleKeys) => { const interfaceFields = cssModuleKeys .sort() @@ -68,7 +75,7 @@ module.exports = function(content, ...rest) { const { failed, success } = makeDoneHandlers(this.async(), content, rest); const filename = this.resourcePath; - const { mode = 'emit' } = loaderUtils.getOptions(this) || {}; + const { mode = 'emit', namedExports = false } = loaderUtils.getOptions(this) || {}; if (!validModes.includes(mode)) { return failed(new Error(`Invalid mode option: ${mode}`)); } @@ -88,7 +95,7 @@ module.exports = function(content, ...rest) { } } - const cssModuleDefinition = `${bannerMessage}\n${cssModuleToInterface(cssModuleKeys)}\n${cssModuleExport}`; + const cssModuleDefinition = namedExports ? `${bannerMessage}\n${cssModuleToConsts(cssModuleKeys)}\n` : `${bannerMessage}\n${cssModuleToInterface(cssModuleKeys)}\n${cssModuleExport}`; if (mode === 'verify') { read((err, fileContents) => { From 50a0997b563d3ea98644e49516dea4f2c8c5dd08 Mon Sep 17 00:00:00 2001 From: Daniel Juhl Date: Sat, 14 Mar 2020 20:40:01 +0100 Subject: [PATCH 2/2] Update index.js --- index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index c2e3f91..33db49d 100644 --- a/index.js +++ b/index.js @@ -21,7 +21,7 @@ const getTypeMismatchError = ({ filename, expected, actual }) => { ); }; -const cssModuleToConsts = (cssModuleKeys) => { +const cssModuleToNamedExports = (cssModuleKeys) => { return cssModuleKeys .sort() .map(key => `export const ${key}: string;`) @@ -95,7 +95,7 @@ module.exports = function(content, ...rest) { } } - const cssModuleDefinition = namedExports ? `${bannerMessage}\n${cssModuleToConsts(cssModuleKeys)}\n` : `${bannerMessage}\n${cssModuleToInterface(cssModuleKeys)}\n${cssModuleExport}`; + const cssModuleDefinition = namedExports ? `${bannerMessage}\n${cssModuleToNamedExports(cssModuleKeys)}\n` : `${bannerMessage}\n${cssModuleToInterface(cssModuleKeys)}\n${cssModuleExport}`; if (mode === 'verify') { read((err, fileContents) => {