UNPKG

react-app-rewire-wolox

Version:

Add CSS Modules + SASS and Babel config Webpack config to a [`react-app-rewired`](https://github.com/timarney/react-app-rewired) config.

40 lines (33 loc) 1.13 kB
import path from "path"; const ruleChildren = loader => loader.use || loader.oneOf || (Array.isArray(loader.loader) && loader.loader) || []; const findIndexAndRules = (rulesSource, ruleMatcher) => { let result; const rules = Array.isArray(rulesSource) ? rulesSource : ruleChildren(rulesSource); rules.some( (rule, index) => (result = ruleMatcher(rule) ? { index, rules } : findIndexAndRules(ruleChildren(rule), ruleMatcher)) ); return result; }; exports.findRule = (rulesSource, ruleMatcher) => { const { index, rules } = findIndexAndRules(rulesSource, ruleMatcher); return rules[index]; }; exports.createLoaderMatcher = loader => rule => rule.loader && rule.loader.indexOf(`${path.sep}${loader}${path.sep}`) !== -1; exports.addAfterRule = (rulesSource, ruleMatcher, value) => { const { index, rules } = findIndexAndRules(rulesSource, ruleMatcher); rules.splice(index + 1, 0, value); }; exports.addBeforeRule = (rulesSource, ruleMatcher, value) => { const { index, rules } = findIndexAndRules(rulesSource, ruleMatcher); rules.splice(index, 0, value); };