in packages/babel-preset-breezr/src/createPluginCreator.ts [31:64]
export default function createPluginCreator(
target: PluginTarget,
enable: boolean | PluginEnabledGetter = true,
options?: IObject | PluginOptionsGetter
): BabelCreator {
return (opt: IOptions) => {
let didEnabled: PluginEnabled | PluginEnabledGetter = enable;
if (isFunction(enable)) {
// @ts-ignore
didEnabled = enable(opt) as PluginEnabled;
}
if (!didEnabled) {
return;
}
const plugin = [target];
let pluginOptions: PluginOptions = options;
if (isFunction(options)) {
// @ts-ignore
pluginOptions = options(opt);
}
if (isPlainObject(pluginOptions)) {
plugin.push(pluginOptions as IObject);
} else if (isPlainObject(didEnabled)) {
plugin.push(didEnabled as IObject);
}
return plugin;
};
}