All files / src/buildUtils/storybook/webpack webpackTransforms.ts

0% Statements 0/14
0% Branches 0/7
0% Functions 0/6
0% Lines 0/10

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25                                                 
import type { RuleSetRule } from "webpack";
import type { MaybeRuleSetRule, Transform, TransformFactory } from "./types";
 
import { SVGR_RULE, USE_BABEL_RULE } from "./webpackRules";
import { isRuleSetRule } from "./helpers";
 
 
export const prependRule: TransformFactory<RuleSetRule, RuleSetRule[]> = (rule) =>  (rules) => [ rule, ...rules];
export const appendRule: TransformFactory<RuleSetRule, RuleSetRule[]> = (rule) =>  (rules) => [...rules, rule];
 
export const loadSVGwithSVGR = prependRule(SVGR_RULE);
export const loadModulesWithBabel = appendRule(USE_BABEL_RULE);
 
export const excludeSVGFromFileRule: Transform<MaybeRuleSetRule[]> = (rules) => {
 
  const fileLoaderRule = rules?.find((rule) =>
    isRuleSetRule(rule) && rule.test instanceof RegExp && rule.test.test('.svg')
  );
 
  if (fileLoaderRule && isRuleSetRule(fileLoaderRule)) {
    fileLoaderRule.exclude = /\.svg$/;
  }
 
  return rules
}