UNPKG

wix-storybook-utils

Version:

Utilities for automated component documentation within Storybook

39 lines (33 loc) 1.1 kB
const { default: InjectPlugin, ENTRY_ORDER } = require('webpack-inject-plugin'); const storyPattern = /\.story\.[j|t]sx?$/; const propTypesParserInjector = () => "import 'wix-storybook-utils/propTypesParser';"; class WixStorybookWebpackPlugin { constructor(options, loaderOptions) { this.options = options; this.loaderOptions = loaderOptions; } apply(compiler) { compiler.hooks.compilation.tap('WixStorybookWebpackPlugin', compilation => { compilation.hooks.normalModuleLoader.tap( 'WixStorybookWebpackPlugin', (_, module) => { if (storyPattern.test(module.userRequest)) { module.loaders.push({ loader: require.resolve('../loader/index.js'), options: Object.assign( {}, { storyConfig: this.options }, this.loaderOptions, ), }); } }, ); }); new InjectPlugin(propTypesParserInjector, { entryOrder: ENTRY_ORDER.First, }).apply(compiler); } } module.exports = WixStorybookWebpackPlugin;