nx/packages/react/plugins/storybook/merge-plugins.ts
2023-01-20 08:18:43 -05:00

34 lines
863 B
TypeScript

import {
ResolvePluginInstance,
RuleSetRule,
WebpackPluginInstance,
} from 'webpack';
export const mergeRules = (...args: RuleSetRule[]) =>
args.reduce((rules, rule) => {
if (
rules.some(
(includedPlugin) =>
includedPlugin.constructor.name === rule.constructor.name
)
) {
return rules;
}
return [...rules, rule];
}, [] as WebpackPluginInstance[]);
export const mergePlugins = (
...args: (WebpackPluginInstance | ResolvePluginInstance)[]
): (WebpackPluginInstance | ResolvePluginInstance)[] =>
args.reduce((plugins, plugin) => {
if (
plugins.some(
(includedPlugin) =>
includedPlugin.constructor.name === plugin.constructor.name
)
) {
return plugins;
}
return [...plugins, plugin];
}, [] as (WebpackPluginInstance | ResolvePluginInstance)[]);