1 | "use strict";
|
2 | var __assign = (this && this.__assign) || function () {
|
3 | __assign = Object.assign || function(t) {
|
4 | for (var s, i = 1, n = arguments.length; i < n; i++) {
|
5 | s = arguments[i];
|
6 | for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
7 | t[p] = s[p];
|
8 | }
|
9 | return t;
|
10 | };
|
11 | return __assign.apply(this, arguments);
|
12 | };
|
13 | var __read = (this && this.__read) || function (o, n) {
|
14 | var m = typeof Symbol === "function" && o[Symbol.iterator];
|
15 | if (!m) return o;
|
16 | var i = m.call(o), r, ar = [], e;
|
17 | try {
|
18 | while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
19 | }
|
20 | catch (error) { e = { error: error }; }
|
21 | finally {
|
22 | try {
|
23 | if (r && !r.done && (m = i["return"])) m.call(i);
|
24 | }
|
25 | finally { if (e) throw e.error; }
|
26 | }
|
27 | return ar;
|
28 | };
|
29 | var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
30 | for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
|
31 | to[j] = from[i];
|
32 | return to;
|
33 | };
|
34 | var __importDefault = (this && this.__importDefault) || function (mod) {
|
35 | return (mod && mod.__esModule) ? mod : { "default": mod };
|
36 | };
|
37 | Object.defineProperty(exports, "__esModule", { value: true });
|
38 | exports.processCraConfig = void 0;
|
39 | var path_1 = require("path");
|
40 | var semver_1 = __importDefault(require("semver"));
|
41 | var isRegExp = function (value) {
|
42 | return value instanceof RegExp;
|
43 | };
|
44 | var isString = function (value) {
|
45 | return typeof value === 'string';
|
46 | };
|
47 |
|
48 | var testMatch = function (rule, string) {
|
49 | if (!rule.test)
|
50 | return false;
|
51 | return Array.isArray(rule.test)
|
52 | ? rule.test.some(function (test) { return isRegExp(test) && test.test(string); })
|
53 | : isRegExp(rule.test) && rule.test.test(string);
|
54 | };
|
55 | var processCraConfig = function (craWebpackConfig, options) {
|
56 | var configDir = path_1.resolve(options.configDir);
|
57 | |
58 |
|
59 |
|
60 |
|
61 |
|
62 |
|
63 |
|
64 |
|
65 |
|
66 |
|
67 | var storybookVersion = semver_1.default.coerce(options.packageJson.version) || '';
|
68 | var isStorybook530 = semver_1.default.gte(storybookVersion, '5.3.0');
|
69 |
|
70 | return craWebpackConfig.module.rules.reduce(function (rules, rule) {
|
71 | var oneOf = rule.oneOf, include = rule.include;
|
72 |
|
73 | if (testMatch(rule, '.jsx')) {
|
74 | var newRule = __assign(__assign({}, rule), { include: [include, configDir].filter(Boolean) });
|
75 | return __spreadArray(__spreadArray([], __read(rules)), [newRule]);
|
76 | }
|
77 | |
78 |
|
79 |
|
80 |
|
81 |
|
82 |
|
83 | if (oneOf) {
|
84 | return __spreadArray(__spreadArray([], __read(rules)), [
|
85 | {
|
86 | oneOf: oneOf.map(function (oneOfRule) {
|
87 | var _a;
|
88 |
|
89 | if (oneOfRule.type === 'asset/resource') {
|
90 | if (isStorybook530) {
|
91 | var excludes = __spreadArray([
|
92 | 'ejs',
|
93 | 'md',
|
94 | 'mdx',
|
95 | 'cjs'
|
96 | ], __read((((_a = options.craOverrides) === null || _a === void 0 ? void 0 : _a.fileLoaderExcludes) || [])));
|
97 | var excludeRegex = new RegExp("\\.(" + excludes.join('|') + ")$");
|
98 | return __assign(__assign({}, oneOfRule), {
|
99 |
|
100 | exclude: __spreadArray(__spreadArray([], __read(oneOfRule.exclude)), [
|
101 | excludeRegex,
|
102 | ]) });
|
103 | }
|
104 | return {};
|
105 | }
|
106 |
|
107 | if (testMatch(oneOfRule, '.css')) {
|
108 | return __assign(__assign({}, oneOfRule), { include: isStorybook530 ? undefined : [configDir], exclude: [oneOfRule.exclude, /@storybook/] });
|
109 | }
|
110 |
|
111 | var isBabelLoader = isString(oneOfRule.loader) &&
|
112 | /[/\\]babel-loader[/\\]/.test(oneOfRule.loader);
|
113 |
|
114 | if (isBabelLoader &&
|
115 | isRegExp(oneOfRule.test) &&
|
116 | oneOfRule.test.test('.jsx')) {
|
117 | var _include = oneOfRule.include, ruleOptions = oneOfRule.options;
|
118 | var _b = (typeof ruleOptions === 'object' ? ruleOptions : {}), rulePlugins = _b.plugins, rulePresets = _b.presets, ruleOverrides = _b.overrides;
|
119 | var _c = options.babelOptions, _extends = _c.extends, plugins = _c.plugins, presets = _c.presets, overrides = _c.overrides;
|
120 | return __assign(__assign({}, oneOfRule), { include: [_include, configDir].filter(Boolean), options: __assign(__assign({}, ruleOptions), { extends: _extends, plugins: __spreadArray(__spreadArray([], __read((plugins !== null && plugins !== void 0 ? plugins : []))), __read((rulePlugins !== null && rulePlugins !== void 0 ? rulePlugins : []))), presets: __spreadArray(__spreadArray([], __read((presets !== null && presets !== void 0 ? presets : []))), __read((rulePresets !== null && rulePresets !== void 0 ? rulePresets : []))), overrides: __spreadArray(__spreadArray([], __read((overrides !== null && overrides !== void 0 ? overrides : []))), __read((ruleOverrides !== null && ruleOverrides !== void 0 ? ruleOverrides : []))) }) });
|
121 | }
|
122 |
|
123 | if (isBabelLoader &&
|
124 | isRegExp(oneOfRule.test) &&
|
125 | oneOfRule.test.test('.js')) {
|
126 | return __assign(__assign({}, oneOfRule), { include: [configDir] });
|
127 | }
|
128 | return oneOfRule;
|
129 | }),
|
130 | },
|
131 | ]);
|
132 | }
|
133 | return __spreadArray(__spreadArray([], __read(rules)), [rule]);
|
134 | }, []);
|
135 | };
|
136 | exports.processCraConfig = processCraConfig;
|
137 |
|
\ | No newline at end of file |