export default function createPluginCreator()

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;
  };
}