export interface IBabelConfigOptions { target: 'node'; type?: 'esm' | 'cjs'; typescript: boolean; runtimeHelpers?: boolean; filePath?: string; browserFiles?: { [value: string]: any; }; nodeVersion?: number; nodeFiles?: { [value: string]: any; }; } export default function( options: IBabelConfigOptions ) { const { target, typescript, type, runtimeHelpers, filePath, browserFiles, nodeFiles, nodeVersion } = options; const targets = { node: nodeVersion || 8 }; return { presets: [ ...(typescript ? [require.resolve('@babel/preset-typescript')] : []), [require.resolve('@babel/preset-env'), { targets, modules: type === 'esm' ? false : 'auto' }], ] }; }