spinjs
Version:
<p align="center"><a href="#"><img width="150" src="https://rawgit.com/sysgears/spin.js/master/logo.svg"></a></p>
25 lines (22 loc) • 912 B
text/typescript
import Spin from "../Spin";
import { ConfigPlugin } from "../ConfigPlugin";
import { Builder } from "../Builder";
import requireModule from '../requireModule';
import JSRuleFinder from './shared/JSRuleFinder';
export default class StyledComponentsPlugin implements ConfigPlugin {
configure(builder: Builder, spin: Spin) {
const stack = builder.stack;
if (stack.hasAll(['styled-components', 'webpack']) &&
(stack.hasAny('web') || (stack.hasAny('server') && spin.options.ssr))) {
const jsRuleFinder = new JSRuleFinder(builder);
const jsRule = jsRuleFinder.rule;
jsRule.use = spin.merge(jsRule.use, {
options: {
plugins: [
[requireModule.resolve('babel-plugin-styled-components'), {'ssr': spin.options.ssr}],
],
},
});
}
}
}