From 0eadcd9bcef2486307435514a06e7c68c3ff40f8 Mon Sep 17 00:00:00 2001 From: Ward Peeters Date: Wed, 29 May 2019 00:03:08 +0200 Subject: [PATCH] feat(babel): merges babelrc with microbunde babel config (#396) * feat(babel): merges babelrc with microbunde babel config * update tests * Fix README.md Fix examples description * remove unused rollup-plugin-flow dependency (#379) --- package.json | 2 + src/index.js | 70 ++++------- src/lib/babel-custom.js | 140 ++++++++++++++++++++++ src/utils.js | 8 ++ test/__snapshots__/index.test.js.snap | 65 ++++++++-- test/fixtures/custom-babelrc/.babelrc | 24 ++++ test/fixtures/custom-babelrc/package.json | 3 + test/fixtures/custom-babelrc/src/index.js | 6 + 8 files changed, 262 insertions(+), 56 deletions(-) create mode 100644 src/lib/babel-custom.js create mode 100644 test/fixtures/custom-babelrc/.babelrc create mode 100644 test/fixtures/custom-babelrc/package.json create mode 100644 test/fixtures/custom-babelrc/src/index.js diff --git a/package.json b/package.json index d77b155..a4f7570 100644 --- a/package.json +++ b/package.json @@ -60,6 +60,7 @@ "filesize": "^4.1.2", "gzip-size": "^5.1.1", "kleur": "^3.0.3", + "lodash.merge": "^4.6.1", "module-details-from-path": "^1.0.3", "pretty-bytes": "^5.2.0", "rollup": "^1.12.4", @@ -85,6 +86,7 @@ "@babel/preset-env": "^7.4.5", "babel-core": "^7.0.0-bridge.0", "babel-jest": "^24.8.0", + "core-js": "^3.1.2", "cross-env": "^5.2.0", "directory-tree": "^2.2.3", "eslint": "^5.16.0", diff --git a/src/index.js b/src/index.js index 683761f..ab983a7 100644 --- a/src/index.js +++ b/src/index.js @@ -8,6 +8,7 @@ import cssnano from 'cssnano'; import { rollup, watch } from 'rollup'; import commonjs from 'rollup-plugin-commonjs'; import babel from 'rollup-plugin-babel'; +import customBabel from './lib/babel-custom'; import nodeResolve from 'rollup-plugin-node-resolve'; import { terser } from 'rollup-plugin-terser'; import alias from 'rollup-plugin-alias'; @@ -18,7 +19,7 @@ import prettyBytes from 'pretty-bytes'; import typescript from 'rollup-plugin-typescript2'; import json from 'rollup-plugin-json'; import logError from './log-error'; -import { readFile, isDir, isFile, stdout, stderr } from './utils'; +import { readFile, isDir, isFile, stdout, stderr, isTruthy } from './utils'; import camelCase from 'camelcase'; const removeScope = name => name.replace(/^@.*\//, ''); @@ -540,56 +541,31 @@ function createConfig(options, entry, format, writeMeta) { }, }, }), - babel({ - babelrc: false, - configFile: false, - compact: false, - include: 'node_modules/**', - plugins: [ - [ - require.resolve('babel-plugin-transform-replace-expressions'), - { replace: defines }, + // if defines is not set, we shouldn't run babel through node_modules + isTruthy(defines) && + babel({ + babelrc: false, + configFile: false, + compact: false, + include: 'node_modules/**', + plugins: [ + [ + require.resolve('babel-plugin-transform-replace-expressions'), + { replace: defines }, + ], ], - ], - }), - babel({ + }), + customBabel({ extensions: EXTENSIONS, exclude: 'node_modules/**', passPerPreset: true, // @see https://babeljs.io/docs/en/options#passperpreset - presets: [ - [ - '@babel/preset-env', - { - loose: true, - modules: false, - targets: - options.target === 'node' ? { node: '8' } : undefined, - exclude: ['transform-async-to-generator'], - }, - ], - !useTypescript && ['@babel/preset-flow', { all: true }], - ].filter(Boolean), - plugins: [ - [ - require.resolve('@babel/plugin-transform-react-jsx'), - { - pragma: options.jsx || 'h', - pragmaFrag: options.jsxFragment || 'Fragment', - }, - ], - [ - require.resolve('babel-plugin-transform-replace-expressions'), - { replace: defines }, - ], - [ - require.resolve('babel-plugin-transform-async-to-promises'), - { inlineHelpers: true, externalHelpers: true }, - ], - [ - require.resolve('@babel/plugin-proposal-class-properties'), - { loose: true }, - ], - ], + custom: { + defines, + targets: options.target === 'node' ? { node: '8' } : undefined, + pragma: options.jsx || 'h', + pragmaFrag: options.jsxFragment || 'Fragment', + typescript: !!useTypescript, + }, }), options.compress !== false && [ terser({ diff --git a/src/lib/babel-custom.js b/src/lib/babel-custom.js new file mode 100644 index 0000000..958ef93 --- /dev/null +++ b/src/lib/babel-custom.js @@ -0,0 +1,140 @@ +import { createConfigItem } from '@babel/core'; +import babelPlugin from 'rollup-plugin-babel'; +import merge from 'lodash.merge'; +import { isTruthy } from '../utils'; + +const mergeConfigItems = (type, ...configItemsToMerge) => { + const mergedItems = []; + + configItemsToMerge.forEach(configItemToMerge => { + configItemToMerge.forEach(item => { + const itemToMergeWithIndex = mergedItems.findIndex( + mergedItem => mergedItem.file.resolved === item.file.resolved, + ); + + if (itemToMergeWithIndex === -1) { + mergedItems.push(item); + return; + } + + mergedItems[itemToMergeWithIndex] = createConfigItem( + [ + mergedItems[itemToMergeWithIndex].file.resolved, + merge(mergedItems[itemToMergeWithIndex].options, item.options), + ], + { + type, + }, + ); + }); + }); + + return mergedItems; +}; + +const createConfigItems = (type, items) => { + return items.map(({ name, ...options }) => { + return createConfigItem([require.resolve(name), options], { type }); + }); +}; + +export default babelPlugin.custom(babelCore => { + return { + // Passed the plugin options. + options({ custom: customOptions, ...pluginOptions }) { + return { + // Pull out any custom options that the plugin might have. + customOptions, + + // Pass the options back with the two custom options removed. + pluginOptions, + }; + }, + + config(config, { customOptions }) { + const defaultPlugins = createConfigItems( + 'plugin', + [ + { + name: '@babel/plugin-transform-react-jsx', + pragma: customOptions.jsx || 'h', + pragmaFrag: customOptions.jsxFragment || 'Fragment', + }, + isTruthy(customOptions.defines) && { + name: 'babel-plugin-transform-replace-expressions', + replace: customOptions.defines, + }, + { + name: 'babel-plugin-transform-async-to-promises', + inlineHelpers: true, + externalHelpers: true, + }, + { + name: '@babel/plugin-proposal-class-properties', + loose: true, + }, + ].filter(Boolean), + ); + + let babelOptions = { + presets: [], + plugins: [], + }; + if (config.hasFilesystemConfig()) { + babelOptions = config.options; + + if (babelOptions.presets) { + babelOptions.presets = babelOptions.presets.map(preset => { + // When preset-env is configured we want to make sure we override some settings. + // We want to make sure microbundle is still fast & creates small bundles + if (preset.file.request === '@babel/preset-env') { + preset = createConfigItem( + [ + preset.file.resolved, + merge( + { + loose: true, + targets: customOptions.targets, + }, + preset.options, + { + modules: false, + exclude: merge( + ['transform-async-to-generator'], + preset.options.exclude || [], + ), + }, + ), + ], + { + type: `preset`, + }, + ); + } + + return preset; + }); + } + } else { + babelOptions.presets = createConfigItems('preset', [ + { + name: '@babel/preset-env', + targets: customOptions.targets, + modules: false, + loose: true, + exclude: ['transform-async-to-generator'], + }, + ]); + } + + // Merge babelrc & our plugins together + babelOptions.plugins = mergeConfigItems( + 'plugin', + defaultPlugins, + babelOptions.plugins || [], + ); + + return babelOptions; + }, + }; +}); diff --git a/src/utils.js b/src/utils.js index 2af2baf..4044cd4 100644 --- a/src/utils.js +++ b/src/utils.js @@ -14,3 +14,11 @@ export const isFile = name => .catch(() => false); export const stdout = console.log.bind(console); // eslint-disable-line no-console export const stderr = console.error.bind(console); + +export const isTruthy = obj => { + if (!obj) { + return false; + } + + return obj.constructor !== Object || Object.keys(obj).length > 0; +}; diff --git a/test/__snapshots__/index.test.js.snap b/test/__snapshots__/index.test.js.snap index f0cd346..11d369f 100644 --- a/test/__snapshots__/index.test.js.snap +++ b/test/__snapshots__/index.test.js.snap @@ -219,30 +219,30 @@ basic-babelrc Build \\"basicBabelrc\\" to dist: -108 B: basic-babelrc.js.gz -83 B: basic-babelrc.js.br -108 B: basic-babelrc.mjs.gz -83 B: basic-babelrc.mjs.br -150 B: basic-babelrc.umd.js.gz -108 B: basic-babelrc.umd.js.br" +94 B: basic-babelrc.js.gz +75 B: basic-babelrc.js.br +94 B: basic-babelrc.mjs.gz +75 B: basic-babelrc.mjs.br +139 B: basic-babelrc.umd.js.gz +102 B: basic-babelrc.umd.js.br" `; exports[`fixtures build basic-babelrc with microbundle 2`] = `6`; exports[`fixtures build basic-babelrc with microbundle 3`] = ` -"var r;void 0===(r=!0)&&(r=function(r){throw new Error(\\"required!\\")}()),!0===r||function(r){throw new Error(\\"Falsey!\\")}(); +"!function(r=function(r){throw new Error(\\"required!\\")}()){!0===r||function(r){throw new Error(\\"Falsey!\\")}()}(!0); //# sourceMappingURL=basic-babelrc.js.map " `; exports[`fixtures build basic-babelrc with microbundle 4`] = ` -"var r;void 0===(r=!0)&&(r=function(r){throw new Error(\\"required!\\")}()),!0===r||function(r){throw new Error(\\"Falsey!\\")}(); +"!function(r=function(r){throw new Error(\\"required!\\")}()){!0===r||function(r){throw new Error(\\"Falsey!\\")}()}(!0); //# sourceMappingURL=basic-babelrc.mjs.map " `; exports[`fixtures build basic-babelrc with microbundle 5`] = ` -"!function(n){\\"function\\"==typeof define&&define.amd?define(n):n()}(function(){var n;void 0===(n=!0)&&(n=function(n){throw new Error(\\"required!\\")}()),!0===n||function(n){throw new Error(\\"Falsey!\\")}()}); +"!function(n){\\"function\\"==typeof define&&define.amd?define(n):n()}(function(){!function(n=function(n){throw new Error(\\"required!\\")}()){!0===n||function(n){throw new Error(\\"Falsey!\\")}()}(!0)}); //# sourceMappingURL=basic-babelrc.umd.js.map " `; @@ -850,6 +850,53 @@ exports[`fixtures build class-properties with microbundle 5`] = ` " `; +exports[`fixtures build custom-babelrc with microbundle 1`] = ` +"Used script: microbundle + +Directory tree: + +custom-babelrc + dist + custom-babelrc.js + custom-babelrc.js.map + custom-babelrc.mjs + custom-babelrc.mjs.map + custom-babelrc.umd.js + custom-babelrc.umd.js.map + package.json + src + index.js + + +Build \\"customBabelrc\\" to dist: +5.6 kB: custom-babelrc.js.gz +5.05 kB: custom-babelrc.js.br +5.6 kB: custom-babelrc.mjs.gz +5.06 kB: custom-babelrc.mjs.br +5.67 kB: custom-babelrc.umd.js.gz +5.12 kB: custom-babelrc.umd.js.br" +`; + +exports[`fixtures build custom-babelrc with microbundle 2`] = `6`; + +exports[`fixtures build custom-babelrc with microbundle 3`] = ` +"var t=\\"undefined\\"!=typeof globalThis?globalThis:\\"undefined\\"!=typeof window?window:\\"undefined\\"!=typeof global?global:\\"undefined\\"!=typeof self?self:{};function e(t,e){return t(e={exports:{}},e.exports),e.exports}var n,r,o,i=\\"object\\",c=function(t){return t&&t.Math==Math&&t},u=c(typeof globalThis==i&&globalThis)||c(typeof window==i&&window)||c(typeof self==i&&self)||c(typeof t==i&&t)||Function(\\"return this\\")(),a=function(t){try{return!!t()}catch(t){return!0}},f=!a(function(){return 7!=Object.defineProperty({},\\"a\\",{get:function(){return 7}}).a}),s={}.propertyIsEnumerable,l=Object.getOwnPropertyDescriptor,p={f:l&&!s.call({1:2},1)?function(t){var e=l(this,t);return!!e&&e.enumerable}:s},v=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},h={}.toString,d=function(t){return h.call(t).slice(8,-1)},y=\\"\\".split,m=a(function(){return!Object(\\"z\\").propertyIsEnumerable(0)})?function(t){return\\"String\\"==d(t)?y.call(t,\\"\\"):Object(t)}:Object,g=function(t){return m(function(t){if(null==t)throw TypeError(\\"Can't call method on \\"+t);return t}(t))},b=function(t){return\\"object\\"==typeof t?null!==t:\\"function\\"==typeof t},w=function(t,e){if(!b(t))return t;var n,r;if(e&&\\"function\\"==typeof(n=t.toString)&&!b(r=n.call(t)))return r;if(\\"function\\"==typeof(n=t.valueOf)&&!b(r=n.call(t)))return r;if(!e&&\\"function\\"==typeof(n=t.toString)&&!b(r=n.call(t)))return r;throw TypeError(\\"Can't convert object to primitive value\\")},j={}.hasOwnProperty,P=function(t,e){return j.call(t,e)},O=u.document,E=b(O)&&b(O.createElement),S=function(t){return E?O.createElement(t):{}},T=!f&&!a(function(){return 7!=Object.defineProperty(S(\\"div\\"),\\"a\\",{get:function(){return 7}}).a}),x=Object.getOwnPropertyDescriptor,M={f:f?x:function(t,e){if(t=g(t),e=w(e,!0),T)try{return x(t,e)}catch(t){}if(P(t,e))return v(!p.f.call(t,e),t[e])}},k=function(t){if(!b(t))throw TypeError(String(t)+\\" is not an object\\");return t},F=Object.defineProperty,_={f:f?F:function(t,e,n){if(k(t),e=w(e,!0),k(n),T)try{return F(t,e,n)}catch(t){}if(\\"get\\"in n||\\"set\\"in n)throw TypeError(\\"Accessors not supported\\");return\\"value\\"in n&&(t[e]=n.value),t}},I=f?function(t,e,n){return _.f(t,e,v(1,n))}:function(t,e,n){return t[e]=n,t},A=function(t,e){try{I(u,t,e)}catch(n){u[t]=e}return e},C=e(function(t){var e=u[\\"__core-js_shared__\\"]||A(\\"__core-js_shared__\\",{});(t.exports=function(t,n){return e[t]||(e[t]=void 0!==n?n:{})})(\\"versions\\",[]).push({version:\\"3.1.2\\",mode:\\"global\\",copyright:\\"© 2019 Denis Pushkarev (zloirock.ru)\\"})}),L=C(\\"native-function-to-string\\",Function.toString),N=u.WeakMap,D=\\"function\\"==typeof N&&/native code/.test(L.call(N)),R=0,z=Math.random(),K=function(t){return\\"Symbol(\\".concat(void 0===t?\\"\\":t,\\")_\\",(++R+z).toString(36))},W=C(\\"keys\\"),q={};if(D){var B=new(0,u.WeakMap),G=B.get,U=B.has,H=B.set;n=function(t,e){return H.call(B,t,e),e},r=function(t){return G.call(B,t)||{}},o=function(t){return U.call(B,t)}}else{var V=W.state||(W.state=K(\\"state\\"));q[V]=!0,n=function(t,e){return I(t,V,e),e},r=function(t){return P(t,V)?t[V]:{}},o=function(t){return P(t,V)}}var Y={set:n,get:r,has:o,enforce:function(t){return o(t)?r(t):n(t,{})},getterFor:function(t){return function(e){var n;if(!b(e)||(n=r(e)).type!==t)throw TypeError(\\"Incompatible receiver, \\"+t+\\" required\\");return n}}},J=e(function(t){var e=Y.get,n=Y.enforce,r=String(L).split(\\"toString\\");C(\\"inspectSource\\",function(t){return L.call(t)}),(t.exports=function(t,e,o,i){var c=!!i&&!!i.unsafe,a=!!i&&!!i.enumerable,f=!!i&&!!i.noTargetGet;\\"function\\"==typeof o&&(\\"string\\"!=typeof e||P(o,\\"name\\")||I(o,\\"name\\",e),n(o).source=r.join(\\"string\\"==typeof e?e:\\"\\")),t!==u?(c?!f&&t[e]&&(a=!0):delete t[e],a?t[e]=o:I(t,e,o)):a?t[e]=o:A(e,o)})(Function.prototype,\\"toString\\",function(){return\\"function\\"==typeof this&&e(this).source||L.call(this)})}),Q=Math.ceil,X=Math.floor,Z=function(t){return isNaN(t=+t)?0:(t>0?X:Q)(t)},$=Math.min,tt=function(t){return t>0?$(Z(t),9007199254740991):0},et=Math.max,nt=Math.min,rt=function(t,e,n){for(var r=g(t),o=tt(r.length),i=function(t,e){var r=Z(n);return r<0?et(r+e,0):nt(r,e)}(0,o);o>i;i++)if(i in r&&r[i]===e)return i||0;return-1},ot=[\\"constructor\\",\\"hasOwnProperty\\",\\"isPrototypeOf\\",\\"propertyIsEnumerable\\",\\"toLocaleString\\",\\"toString\\",\\"valueOf\\"].concat(\\"length\\",\\"prototype\\"),it={f:Object.getOwnPropertyNames||function(t){return function(t,e){var n,r=g(t),o=0,i=[];for(n in r)!P(q,n)&&P(r,n)&&i.push(n);for(;e.length>o;)P(r,n=e[o++])&&(~rt(i,n)||i.push(n));return i}(t,ot)}},ct={f:Object.getOwnPropertySymbols},ut=u.Reflect,at=ut&&ut.ownKeys||function(t){var e=it.f(k(t)),n=ct.f;return n?e.concat(n(t)):e},ft=function(t,e){for(var n=at(e),r=_.f,o=M.f,i=0;ia;a++)if((o?l(k(s=t[a])[0],s[1]):l(t[a]))===e)return e;return}c=u.call(t)}for(;!(s=c.next()).done;)if(It(c,l,s.value,o)===e)return e}).BREAK=e}),Ct=Et(\\"iterator\\"),Lt=!1;try{var Nt=0;({next:function(){return{done:!!Nt++}},return:function(){Lt=!0}})[Ct]=function(){return this}}catch(t){}var Dt,Rt,zt,Kt=Et(\\"species\\"),Wt=u.document,qt=Wt&&Wt.documentElement,Bt=u.location,Gt=u.setImmediate,Ut=u.clearImmediate,Ht=u.process,Vt=u.MessageChannel,Yt=u.Dispatch,Jt=0,Qt={},Xt=function(t){if(Qt.hasOwnProperty(t)){var e=Qt[t];delete Qt[t],e()}},Zt=function(t){return function(){Xt(t)}},$t=function(t){Xt(t.data)},te=function(t){u.postMessage(t+\\"\\",Bt.protocol+\\"//\\"+Bt.host)};Gt&&Ut||(Gt=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return Qt[++Jt]=function(){(\\"function\\"==typeof t?t:Function(t)).apply(void 0,e)},Dt(Jt),Jt},Ut=function(t){delete Qt[t]},\\"process\\"==d(Ht)?Dt=function(t){Ht.nextTick(Zt(t))}:Yt&&Yt.now?Dt=function(t){Yt.now(Zt(t))}:Vt?(zt=(Rt=new Vt).port2,Rt.port1.onmessage=$t,Dt=Mt(zt.postMessage,zt,1)):!u.addEventListener||\\"function\\"!=typeof postMessage||u.importScripts||a(te)?Dt=\\"onreadystatechange\\"in S(\\"script\\")?function(t){qt.appendChild(S(\\"script\\")).onreadystatechange=function(){qt.removeChild(this),Xt(t)}}:function(t){setTimeout(Zt(t),0)}:(Dt=te,u.addEventListener(\\"message\\",$t,!1)));var ee,ne,re,oe,ie,ce,ue,ae={set:Gt,clear:Ut},fe=u.navigator,se=fe&&fe.userAgent||\\"\\",le=M.f,pe=ae.set,ve=u.MutationObserver||u.WebKitMutationObserver,he=u.process,de=u.Promise,ye=\\"process\\"==d(he),me=le(u,\\"queueMicrotask\\"),ge=me&&me.value;ge||(ee=function(){var t,e;for(ye&&(t=he.domain)&&t.exit();ne;){e=ne.fn,ne=ne.next;try{e()}catch(t){throw ne?oe():re=void 0,t}}re=void 0,t&&t.enter()},ye?oe=function(){he.nextTick(ee)}:ve&&!/(iphone|ipod|ipad).*applewebkit/i.test(se)?(ie=!0,ce=document.createTextNode(\\"\\"),new ve(ee).observe(ce,{characterData:!0}),oe=function(){ce.data=ie=!ie}):de&&de.resolve?(ue=de.resolve(void 0),oe=function(){ue.then(ee)}):oe=function(){pe.call(u,ee)});var be,we,je,Pe,Oe,Ee=ge||function(t){var e={fn:t,next:void 0};re&&(re.next=e),ne||(ne=e,oe()),re=e},Se=function(t){var e,n;this.promise=new t(function(t,r){if(void 0!==e||void 0!==n)throw TypeError(\\"Bad Promise constructor\\");e=t,n=r}),this.resolve=bt(e),this.reject=bt(n)},Te={f:function(t){return new Se(t)}},xe=function(t,e){if(k(t),b(e)&&e.constructor===t)return e;var n=Te.f(t);return(0,n.resolve)(e),n.promise},Me=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},ke=_.f,Fe=Et(\\"toStringTag\\"),_e=u,Ie=function(t){return\\"function\\"==typeof t?t:void 0},Ae=Et(\\"species\\"),Ce=ae.set,Le=Et(\\"species\\"),Ne=Y.get,De=Y.set,Re=Y.getterFor(\\"Promise\\"),ze=u.Promise,Ke=u.TypeError,We=u.document,qe=u.process,Be=u.fetch,Ge=qe&&qe.versions,Ue=Ge&&Ge.v8||\\"\\",He=Te.f,Ve=He,Ye=\\"process\\"==d(qe),Je=!!(We&&We.createEvent&&u.dispatchEvent),Qe=yt(\\"Promise\\",function(){var t=ze.resolve(1),e=function(){},n=(t.constructor={})[Le]=function(t){t(e,e)};return!((Ye||\\"function\\"==typeof PromiseRejectionEvent)&&t.then(e)instanceof n&&0!==Ue.indexOf(\\"6.6\\")&&-1===se.indexOf(\\"Chrome/66\\"))}),Xe=Qe||!function(t,e){if(!Lt)return!1;var n=!1;try{var r={};r[Ct]=function(){return{next:function(){return{done:n=!0}}}},ze.all(r).catch(function(){})}catch(t){}return n}(),Ze=function(t){var e;return!(!b(t)||\\"function\\"!=typeof(e=t.then))&&e},$e=function(t,e,n){if(!e.notified){e.notified=!0;var r=e.reactions;Ee(function(){for(var o=e.value,i=1==e.state,c=0,u=function(n){var r,c,u,a=i?n.ok:n.fail,f=n.resolve,s=n.reject,l=n.domain;try{a?(i||(2===e.rejection&&rn(t,e),e.rejection=1),!0===a?r=o:(l&&l.enter(),r=a(o),l&&(l.exit(),u=!0)),r===n.promise?s(Ke(\\"Promise-chain cycle\\")):(c=Ze(r))?c.call(r,f,s):f(r)):s(o)}catch(t){l&&!u&&l.exit(),s(t)}};r.length>c;)u(r[c++]);e.reactions=[],e.notified=!1,n&&!e.rejection&&en(t,e)})}},tn=function(t,e,n){var r,o;Je?((r=We.createEvent(\\"Event\\")).promise=e,r.reason=n,r.initEvent(t,!1,!0),u.dispatchEvent(r)):r={promise:e,reason:n},(o=u[\\"on\\"+t])?o(r):\\"unhandledrejection\\"===t&&function(t,e){var n=u.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}(\\"Unhandled promise rejection\\",n)},en=function(t,e){Ce.call(u,function(){var n,r=e.value;if(nn(e)&&(n=Me(function(){Ye?qe.emit(\\"unhandledRejection\\",r,t):tn(\\"unhandledrejection\\",t,r)}),e.rejection=Ye||nn(e)?2:1,n.error))throw n.value})},nn=function(t){return 1!==t.rejection&&!t.parent},rn=function(t,e){Ce.call(u,function(){Ye?qe.emit(\\"rejectionHandled\\",t):tn(\\"rejectionhandled\\",t,e.value)})},on=function(t,e,n,r){return function(o){t(e,n,o,r)}},cn=function(t,e,n,r){e.done||(e.done=!0,r&&(e=r),e.value=n,e.state=2,$e(t,e,!0))},un=function t(e,n,r,o){if(!n.done){n.done=!0,o&&(n=o);try{if(e===r)throw Ke(\\"Promise can't be resolved itself\\");var i=Ze(r);i?Ee(function(){var o={done:!1};try{i.call(r,on(t,e,o,n),on(cn,e,o,n))}catch(t){cn(e,o,t,n)}}):(n.value=r,n.state=1,$e(e,n,!1))}catch(t){cn(e,{done:!1},t,n)}}};Qe&&(ze=function(t){!function(t,e,n){if(!(t instanceof ze))throw TypeError(\\"Incorrect Promise invocation\\")}(this),bt(t),be.call(this);var e=Ne(this);try{t(on(un,this,e),on(cn,this,e))}catch(t){cn(this,e,t)}},(be=function(t){De(this,{type:\\"Promise\\",done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=function(t,e,n){for(var r in e)J(t,r,e[r],void 0);return t}(ze.prototype,{then:function(t,e){var n,r,o,i=Re(this),c=He((n=ze,void 0===(o=k(this).constructor)||null==(r=k(o)[Kt])?n:bt(r)));return c.ok=\\"function\\"!=typeof t||t,c.fail=\\"function\\"==typeof e&&e,c.domain=Ye?qe.domain:void 0,i.parent=!0,i.reactions.push(c),0!=i.state&&$e(this,i,!1),c.promise},catch:function(t){return this.then(void 0,t)}}),we=function(){var t=new be,e=Ne(t);this.promise=t,this.resolve=on(un,t,e),this.reject=on(cn,t,e)},Te.f=He=function(t){return t===ze||t===je?new we(t):Ve(t)},\\"function\\"==typeof Be&>({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return xe(ze,Be.apply(u,arguments))}})),gt({global:!0,wrap:!0,forced:Qe},{Promise:ze}),(Pe=ze)&&!P(Pe=Pe.prototype,Fe)&&ke(Pe,Fe,{configurable:!0,value:\\"Promise\\"}),Oe=function(t,e){return arguments.length<2?Ie(_e[t])||Ie(u[t]):_e[t]&&_e[t][e]||u[t]&&u[t][e]}(\\"Promise\\"),f&&Oe&&!Oe[Ae]&&(0,_.f)(Oe,Ae,{configurable:!0,get:function(){return this}}),je=_e.Promise,gt({target:\\"Promise\\",stat:!0,forced:Qe},{reject:function(t){var e=He(this);return e.reject.call(void 0,t),e.promise}}),gt({target:\\"Promise\\",stat:!0,forced:Qe},{resolve:function(t){return xe(this,t)}}),gt({target:\\"Promise\\",stat:!0,forced:Xe},{all:function(t){var e=this,n=He(e),r=n.resolve,o=n.reject,i=Me(function(){var n=bt(e.resolve),i=[],c=0,u=1;At(t,function(t){var a=c++,f=!1;i.push(void 0),u++,n.call(e,t).then(function(t){f||(f=!0,i[a]=t,--u||r(i))},o)}),--u||r(i)});return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=He(e),r=n.reject,o=Me(function(){var o=bt(e.resolve);At(t,function(t){o.call(e,t).then(n.resolve,r)})});return o.error&&r(o.value),n.promise}}),exports.MyClass=class{constructor(){var t;t=[\\"foo\\",\\"bar\\"],\\"myFields\\"in this?Object.defineProperty(this,\\"myFields\\",{value:t,enumerable:!0,configurable:!0,writable:!0}):this.myFields=t}foo(){try{return this.myFields.find(t=>\\"bar\\"===t)}catch(t){return Promise.reject(t)}}}; +//# sourceMappingURL=custom-babelrc.js.map +" +`; + +exports[`fixtures build custom-babelrc with microbundle 4`] = ` +"var t=\\"undefined\\"!=typeof globalThis?globalThis:\\"undefined\\"!=typeof window?window:\\"undefined\\"!=typeof global?global:\\"undefined\\"!=typeof self?self:{};function e(t,e){return t(e={exports:{}},e.exports),e.exports}var n,r,o,i=\\"object\\",c=function(t){return t&&t.Math==Math&&t},u=c(typeof globalThis==i&&globalThis)||c(typeof window==i&&window)||c(typeof self==i&&self)||c(typeof t==i&&t)||Function(\\"return this\\")(),a=function(t){try{return!!t()}catch(t){return!0}},f=!a(function(){return 7!=Object.defineProperty({},\\"a\\",{get:function(){return 7}}).a}),s={}.propertyIsEnumerable,l=Object.getOwnPropertyDescriptor,p={f:l&&!s.call({1:2},1)?function(t){var e=l(this,t);return!!e&&e.enumerable}:s},v=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},h={}.toString,d=function(t){return h.call(t).slice(8,-1)},y=\\"\\".split,m=a(function(){return!Object(\\"z\\").propertyIsEnumerable(0)})?function(t){return\\"String\\"==d(t)?y.call(t,\\"\\"):Object(t)}:Object,g=function(t){return m(function(t){if(null==t)throw TypeError(\\"Can't call method on \\"+t);return t}(t))},b=function(t){return\\"object\\"==typeof t?null!==t:\\"function\\"==typeof t},w=function(t,e){if(!b(t))return t;var n,r;if(e&&\\"function\\"==typeof(n=t.toString)&&!b(r=n.call(t)))return r;if(\\"function\\"==typeof(n=t.valueOf)&&!b(r=n.call(t)))return r;if(!e&&\\"function\\"==typeof(n=t.toString)&&!b(r=n.call(t)))return r;throw TypeError(\\"Can't convert object to primitive value\\")},j={}.hasOwnProperty,P=function(t,e){return j.call(t,e)},O=u.document,E=b(O)&&b(O.createElement),S=function(t){return E?O.createElement(t):{}},T=!f&&!a(function(){return 7!=Object.defineProperty(S(\\"div\\"),\\"a\\",{get:function(){return 7}}).a}),x=Object.getOwnPropertyDescriptor,M={f:f?x:function(t,e){if(t=g(t),e=w(e,!0),T)try{return x(t,e)}catch(t){}if(P(t,e))return v(!p.f.call(t,e),t[e])}},k=function(t){if(!b(t))throw TypeError(String(t)+\\" is not an object\\");return t},F=Object.defineProperty,_={f:f?F:function(t,e,n){if(k(t),e=w(e,!0),k(n),T)try{return F(t,e,n)}catch(t){}if(\\"get\\"in n||\\"set\\"in n)throw TypeError(\\"Accessors not supported\\");return\\"value\\"in n&&(t[e]=n.value),t}},I=f?function(t,e,n){return _.f(t,e,v(1,n))}:function(t,e,n){return t[e]=n,t},A=function(t,e){try{I(u,t,e)}catch(n){u[t]=e}return e},C=e(function(t){var e=u[\\"__core-js_shared__\\"]||A(\\"__core-js_shared__\\",{});(t.exports=function(t,n){return e[t]||(e[t]=void 0!==n?n:{})})(\\"versions\\",[]).push({version:\\"3.1.2\\",mode:\\"global\\",copyright:\\"© 2019 Denis Pushkarev (zloirock.ru)\\"})}),L=C(\\"native-function-to-string\\",Function.toString),N=u.WeakMap,D=\\"function\\"==typeof N&&/native code/.test(L.call(N)),R=0,z=Math.random(),K=function(t){return\\"Symbol(\\".concat(void 0===t?\\"\\":t,\\")_\\",(++R+z).toString(36))},W=C(\\"keys\\"),q={};if(D){var B=new(0,u.WeakMap),G=B.get,U=B.has,H=B.set;n=function(t,e){return H.call(B,t,e),e},r=function(t){return G.call(B,t)||{}},o=function(t){return U.call(B,t)}}else{var V=W.state||(W.state=K(\\"state\\"));q[V]=!0,n=function(t,e){return I(t,V,e),e},r=function(t){return P(t,V)?t[V]:{}},o=function(t){return P(t,V)}}var Y={set:n,get:r,has:o,enforce:function(t){return o(t)?r(t):n(t,{})},getterFor:function(t){return function(e){var n;if(!b(e)||(n=r(e)).type!==t)throw TypeError(\\"Incompatible receiver, \\"+t+\\" required\\");return n}}},J=e(function(t){var e=Y.get,n=Y.enforce,r=String(L).split(\\"toString\\");C(\\"inspectSource\\",function(t){return L.call(t)}),(t.exports=function(t,e,o,i){var c=!!i&&!!i.unsafe,a=!!i&&!!i.enumerable,f=!!i&&!!i.noTargetGet;\\"function\\"==typeof o&&(\\"string\\"!=typeof e||P(o,\\"name\\")||I(o,\\"name\\",e),n(o).source=r.join(\\"string\\"==typeof e?e:\\"\\")),t!==u?(c?!f&&t[e]&&(a=!0):delete t[e],a?t[e]=o:I(t,e,o)):a?t[e]=o:A(e,o)})(Function.prototype,\\"toString\\",function(){return\\"function\\"==typeof this&&e(this).source||L.call(this)})}),Q=Math.ceil,X=Math.floor,Z=function(t){return isNaN(t=+t)?0:(t>0?X:Q)(t)},$=Math.min,tt=function(t){return t>0?$(Z(t),9007199254740991):0},et=Math.max,nt=Math.min,rt=function(t,e,n){for(var r=g(t),o=tt(r.length),i=function(t,e){var r=Z(n);return r<0?et(r+e,0):nt(r,e)}(0,o);o>i;i++)if(i in r&&r[i]===e)return i||0;return-1},ot=[\\"constructor\\",\\"hasOwnProperty\\",\\"isPrototypeOf\\",\\"propertyIsEnumerable\\",\\"toLocaleString\\",\\"toString\\",\\"valueOf\\"].concat(\\"length\\",\\"prototype\\"),it={f:Object.getOwnPropertyNames||function(t){return function(t,e){var n,r=g(t),o=0,i=[];for(n in r)!P(q,n)&&P(r,n)&&i.push(n);for(;e.length>o;)P(r,n=e[o++])&&(~rt(i,n)||i.push(n));return i}(t,ot)}},ct={f:Object.getOwnPropertySymbols},ut=u.Reflect,at=ut&&ut.ownKeys||function(t){var e=it.f(k(t)),n=ct.f;return n?e.concat(n(t)):e},ft=function(t,e){for(var n=at(e),r=_.f,o=M.f,i=0;ia;a++)if((o?l(k(s=t[a])[0],s[1]):l(t[a]))===e)return e;return}c=u.call(t)}for(;!(s=c.next()).done;)if(It(c,l,s.value,o)===e)return e}).BREAK=e}),Ct=Et(\\"iterator\\"),Lt=!1;try{var Nt=0;({next:function(){return{done:!!Nt++}},return:function(){Lt=!0}})[Ct]=function(){return this}}catch(t){}var Dt,Rt,zt,Kt=Et(\\"species\\"),Wt=u.document,qt=Wt&&Wt.documentElement,Bt=u.location,Gt=u.setImmediate,Ut=u.clearImmediate,Ht=u.process,Vt=u.MessageChannel,Yt=u.Dispatch,Jt=0,Qt={},Xt=function(t){if(Qt.hasOwnProperty(t)){var e=Qt[t];delete Qt[t],e()}},Zt=function(t){return function(){Xt(t)}},$t=function(t){Xt(t.data)},te=function(t){u.postMessage(t+\\"\\",Bt.protocol+\\"//\\"+Bt.host)};Gt&&Ut||(Gt=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return Qt[++Jt]=function(){(\\"function\\"==typeof t?t:Function(t)).apply(void 0,e)},Dt(Jt),Jt},Ut=function(t){delete Qt[t]},\\"process\\"==d(Ht)?Dt=function(t){Ht.nextTick(Zt(t))}:Yt&&Yt.now?Dt=function(t){Yt.now(Zt(t))}:Vt?(zt=(Rt=new Vt).port2,Rt.port1.onmessage=$t,Dt=Mt(zt.postMessage,zt,1)):!u.addEventListener||\\"function\\"!=typeof postMessage||u.importScripts||a(te)?Dt=\\"onreadystatechange\\"in S(\\"script\\")?function(t){qt.appendChild(S(\\"script\\")).onreadystatechange=function(){qt.removeChild(this),Xt(t)}}:function(t){setTimeout(Zt(t),0)}:(Dt=te,u.addEventListener(\\"message\\",$t,!1)));var ee,ne,re,oe,ie,ce,ue,ae={set:Gt,clear:Ut},fe=u.navigator,se=fe&&fe.userAgent||\\"\\",le=M.f,pe=ae.set,ve=u.MutationObserver||u.WebKitMutationObserver,he=u.process,de=u.Promise,ye=\\"process\\"==d(he),me=le(u,\\"queueMicrotask\\"),ge=me&&me.value;ge||(ee=function(){var t,e;for(ye&&(t=he.domain)&&t.exit();ne;){e=ne.fn,ne=ne.next;try{e()}catch(t){throw ne?oe():re=void 0,t}}re=void 0,t&&t.enter()},ye?oe=function(){he.nextTick(ee)}:ve&&!/(iphone|ipod|ipad).*applewebkit/i.test(se)?(ie=!0,ce=document.createTextNode(\\"\\"),new ve(ee).observe(ce,{characterData:!0}),oe=function(){ce.data=ie=!ie}):de&&de.resolve?(ue=de.resolve(void 0),oe=function(){ue.then(ee)}):oe=function(){pe.call(u,ee)});var be,we,je,Pe,Oe,Ee=ge||function(t){var e={fn:t,next:void 0};re&&(re.next=e),ne||(ne=e,oe()),re=e},Se=function(t){var e,n;this.promise=new t(function(t,r){if(void 0!==e||void 0!==n)throw TypeError(\\"Bad Promise constructor\\");e=t,n=r}),this.resolve=bt(e),this.reject=bt(n)},Te={f:function(t){return new Se(t)}},xe=function(t,e){if(k(t),b(e)&&e.constructor===t)return e;var n=Te.f(t);return(0,n.resolve)(e),n.promise},Me=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},ke=_.f,Fe=Et(\\"toStringTag\\"),_e=u,Ie=function(t){return\\"function\\"==typeof t?t:void 0},Ae=Et(\\"species\\"),Ce=ae.set,Le=Et(\\"species\\"),Ne=Y.get,De=Y.set,Re=Y.getterFor(\\"Promise\\"),ze=u.Promise,Ke=u.TypeError,We=u.document,qe=u.process,Be=u.fetch,Ge=qe&&qe.versions,Ue=Ge&&Ge.v8||\\"\\",He=Te.f,Ve=He,Ye=\\"process\\"==d(qe),Je=!!(We&&We.createEvent&&u.dispatchEvent),Qe=yt(\\"Promise\\",function(){var t=ze.resolve(1),e=function(){},n=(t.constructor={})[Le]=function(t){t(e,e)};return!((Ye||\\"function\\"==typeof PromiseRejectionEvent)&&t.then(e)instanceof n&&0!==Ue.indexOf(\\"6.6\\")&&-1===se.indexOf(\\"Chrome/66\\"))}),Xe=Qe||!function(t,e){if(!Lt)return!1;var n=!1;try{var r={};r[Ct]=function(){return{next:function(){return{done:n=!0}}}},ze.all(r).catch(function(){})}catch(t){}return n}(),Ze=function(t){var e;return!(!b(t)||\\"function\\"!=typeof(e=t.then))&&e},$e=function(t,e,n){if(!e.notified){e.notified=!0;var r=e.reactions;Ee(function(){for(var o=e.value,i=1==e.state,c=0,u=function(n){var r,c,u,a=i?n.ok:n.fail,f=n.resolve,s=n.reject,l=n.domain;try{a?(i||(2===e.rejection&&rn(t,e),e.rejection=1),!0===a?r=o:(l&&l.enter(),r=a(o),l&&(l.exit(),u=!0)),r===n.promise?s(Ke(\\"Promise-chain cycle\\")):(c=Ze(r))?c.call(r,f,s):f(r)):s(o)}catch(t){l&&!u&&l.exit(),s(t)}};r.length>c;)u(r[c++]);e.reactions=[],e.notified=!1,n&&!e.rejection&&en(t,e)})}},tn=function(t,e,n){var r,o;Je?((r=We.createEvent(\\"Event\\")).promise=e,r.reason=n,r.initEvent(t,!1,!0),u.dispatchEvent(r)):r={promise:e,reason:n},(o=u[\\"on\\"+t])?o(r):\\"unhandledrejection\\"===t&&function(t,e){var n=u.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}(\\"Unhandled promise rejection\\",n)},en=function(t,e){Ce.call(u,function(){var n,r=e.value;if(nn(e)&&(n=Me(function(){Ye?qe.emit(\\"unhandledRejection\\",r,t):tn(\\"unhandledrejection\\",t,r)}),e.rejection=Ye||nn(e)?2:1,n.error))throw n.value})},nn=function(t){return 1!==t.rejection&&!t.parent},rn=function(t,e){Ce.call(u,function(){Ye?qe.emit(\\"rejectionHandled\\",t):tn(\\"rejectionhandled\\",t,e.value)})},on=function(t,e,n,r){return function(o){t(e,n,o,r)}},cn=function(t,e,n,r){e.done||(e.done=!0,r&&(e=r),e.value=n,e.state=2,$e(t,e,!0))},un=function t(e,n,r,o){if(!n.done){n.done=!0,o&&(n=o);try{if(e===r)throw Ke(\\"Promise can't be resolved itself\\");var i=Ze(r);i?Ee(function(){var o={done:!1};try{i.call(r,on(t,e,o,n),on(cn,e,o,n))}catch(t){cn(e,o,t,n)}}):(n.value=r,n.state=1,$e(e,n,!1))}catch(t){cn(e,{done:!1},t,n)}}};Qe&&(ze=function(t){!function(t,e,n){if(!(t instanceof ze))throw TypeError(\\"Incorrect Promise invocation\\")}(this),bt(t),be.call(this);var e=Ne(this);try{t(on(un,this,e),on(cn,this,e))}catch(t){cn(this,e,t)}},(be=function(t){De(this,{type:\\"Promise\\",done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=function(t,e,n){for(var r in e)J(t,r,e[r],void 0);return t}(ze.prototype,{then:function(t,e){var n,r,o,i=Re(this),c=He((n=ze,void 0===(o=k(this).constructor)||null==(r=k(o)[Kt])?n:bt(r)));return c.ok=\\"function\\"!=typeof t||t,c.fail=\\"function\\"==typeof e&&e,c.domain=Ye?qe.domain:void 0,i.parent=!0,i.reactions.push(c),0!=i.state&&$e(this,i,!1),c.promise},catch:function(t){return this.then(void 0,t)}}),we=function(){var t=new be,e=Ne(t);this.promise=t,this.resolve=on(un,t,e),this.reject=on(cn,t,e)},Te.f=He=function(t){return t===ze||t===je?new we(t):Ve(t)},\\"function\\"==typeof Be&>({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return xe(ze,Be.apply(u,arguments))}})),gt({global:!0,wrap:!0,forced:Qe},{Promise:ze}),(Pe=ze)&&!P(Pe=Pe.prototype,Fe)&&ke(Pe,Fe,{configurable:!0,value:\\"Promise\\"}),Oe=function(t,e){return arguments.length<2?Ie(_e[t])||Ie(u[t]):_e[t]&&_e[t][e]||u[t]&&u[t][e]}(\\"Promise\\"),f&&Oe&&!Oe[Ae]&&(0,_.f)(Oe,Ae,{configurable:!0,get:function(){return this}}),je=_e.Promise,gt({target:\\"Promise\\",stat:!0,forced:Qe},{reject:function(t){var e=He(this);return e.reject.call(void 0,t),e.promise}}),gt({target:\\"Promise\\",stat:!0,forced:Qe},{resolve:function(t){return xe(this,t)}}),gt({target:\\"Promise\\",stat:!0,forced:Xe},{all:function(t){var e=this,n=He(e),r=n.resolve,o=n.reject,i=Me(function(){var n=bt(e.resolve),i=[],c=0,u=1;At(t,function(t){var a=c++,f=!1;i.push(void 0),u++,n.call(e,t).then(function(t){f||(f=!0,i[a]=t,--u||r(i))},o)}),--u||r(i)});return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=He(e),r=n.reject,o=Me(function(){var o=bt(e.resolve);At(t,function(t){o.call(e,t).then(n.resolve,r)})});return o.error&&r(o.value),n.promise}});class an{constructor(){var t;t=[\\"foo\\",\\"bar\\"],\\"myFields\\"in this?Object.defineProperty(this,\\"myFields\\",{value:t,enumerable:!0,configurable:!0,writable:!0}):this.myFields=t}foo(){try{return this.myFields.find(t=>\\"bar\\"===t)}catch(t){return Promise.reject(t)}}}export{an as MyClass}; +//# sourceMappingURL=custom-babelrc.mjs.map +" +`; + +exports[`fixtures build custom-babelrc with microbundle 5`] = ` +"!function(t,e){\\"object\\"==typeof exports&&\\"undefined\\"!=typeof module?e(exports):\\"function\\"==typeof define&&define.amd?define([\\"exports\\"],e):e((t=t||self).customBabelrc={})}(this,function(t){var e=\\"undefined\\"!=typeof globalThis?globalThis:\\"undefined\\"!=typeof window?window:\\"undefined\\"!=typeof global?global:\\"undefined\\"!=typeof self?self:{};function n(t,e){return t(e={exports:{}},e.exports),e.exports}var r,o,i,c=\\"object\\",u=function(t){return t&&t.Math==Math&&t},a=u(typeof globalThis==c&&globalThis)||u(typeof window==c&&window)||u(typeof self==c&&self)||u(typeof e==c&&e)||Function(\\"return this\\")(),f=function(t){try{return!!t()}catch(t){return!0}},s=!f(function(){return 7!=Object.defineProperty({},\\"a\\",{get:function(){return 7}}).a}),l={}.propertyIsEnumerable,p=Object.getOwnPropertyDescriptor,v={f:p&&!l.call({1:2},1)?function(t){var e=p(this,t);return!!e&&e.enumerable}:l},h=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},d={}.toString,y=function(t){return d.call(t).slice(8,-1)},m=\\"\\".split,g=f(function(){return!Object(\\"z\\").propertyIsEnumerable(0)})?function(t){return\\"String\\"==y(t)?m.call(t,\\"\\"):Object(t)}:Object,b=function(t){return g(function(t){if(null==t)throw TypeError(\\"Can't call method on \\"+t);return t}(t))},w=function(t){return\\"object\\"==typeof t?null!==t:\\"function\\"==typeof t},j=function(t,e){if(!w(t))return t;var n,r;if(e&&\\"function\\"==typeof(n=t.toString)&&!w(r=n.call(t)))return r;if(\\"function\\"==typeof(n=t.valueOf)&&!w(r=n.call(t)))return r;if(!e&&\\"function\\"==typeof(n=t.toString)&&!w(r=n.call(t)))return r;throw TypeError(\\"Can't convert object to primitive value\\")},P={}.hasOwnProperty,O=function(t,e){return P.call(t,e)},E=a.document,S=w(E)&&w(E.createElement),x=function(t){return S?E.createElement(t):{}},T=!s&&!f(function(){return 7!=Object.defineProperty(x(\\"div\\"),\\"a\\",{get:function(){return 7}}).a}),M=Object.getOwnPropertyDescriptor,k={f:s?M:function(t,e){if(t=b(t),e=j(e,!0),T)try{return M(t,e)}catch(t){}if(O(t,e))return h(!v.f.call(t,e),t[e])}},F=function(t){if(!w(t))throw TypeError(String(t)+\\" is not an object\\");return t},_=Object.defineProperty,I={f:s?_:function(t,e,n){if(F(t),e=j(e,!0),F(n),T)try{return _(t,e,n)}catch(t){}if(\\"get\\"in n||\\"set\\"in n)throw TypeError(\\"Accessors not supported\\");return\\"value\\"in n&&(t[e]=n.value),t}},A=s?function(t,e,n){return I.f(t,e,h(1,n))}:function(t,e,n){return t[e]=n,t},C=function(t,e){try{A(a,t,e)}catch(n){a[t]=e}return e},L=n(function(t){var e=a[\\"__core-js_shared__\\"]||C(\\"__core-js_shared__\\",{});(t.exports=function(t,n){return e[t]||(e[t]=void 0!==n?n:{})})(\\"versions\\",[]).push({version:\\"3.1.2\\",mode:\\"global\\",copyright:\\"© 2019 Denis Pushkarev (zloirock.ru)\\"})}),N=L(\\"native-function-to-string\\",Function.toString),D=a.WeakMap,R=\\"function\\"==typeof D&&/native code/.test(N.call(D)),z=0,B=Math.random(),K=function(t){return\\"Symbol(\\".concat(void 0===t?\\"\\":t,\\")_\\",(++z+B).toString(36))},W=L(\\"keys\\"),q={};if(R){var G=new(0,a.WeakMap),U=G.get,H=G.has,V=G.set;r=function(t,e){return V.call(G,t,e),e},o=function(t){return U.call(G,t)||{}},i=function(t){return H.call(G,t)}}else{var Y=W.state||(W.state=K(\\"state\\"));q[Y]=!0,r=function(t,e){return A(t,Y,e),e},o=function(t){return O(t,Y)?t[Y]:{}},i=function(t){return O(t,Y)}}var J={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!w(e)||(n=o(e)).type!==t)throw TypeError(\\"Incompatible receiver, \\"+t+\\" required\\");return n}}},Q=n(function(t){var e=J.get,n=J.enforce,r=String(N).split(\\"toString\\");L(\\"inspectSource\\",function(t){return N.call(t)}),(t.exports=function(t,e,o,i){var c=!!i&&!!i.unsafe,u=!!i&&!!i.enumerable,f=!!i&&!!i.noTargetGet;\\"function\\"==typeof o&&(\\"string\\"!=typeof e||O(o,\\"name\\")||A(o,\\"name\\",e),n(o).source=r.join(\\"string\\"==typeof e?e:\\"\\")),t!==a?(c?!f&&t[e]&&(u=!0):delete t[e],u?t[e]=o:A(t,e,o)):u?t[e]=o:C(e,o)})(Function.prototype,\\"toString\\",function(){return\\"function\\"==typeof this&&e(this).source||N.call(this)})}),X=Math.ceil,Z=Math.floor,$=function(t){return isNaN(t=+t)?0:(t>0?Z:X)(t)},tt=Math.min,et=function(t){return t>0?tt($(t),9007199254740991):0},nt=Math.max,rt=Math.min,ot=function(t,e,n){for(var r=b(t),o=et(r.length),i=function(t,e){var r=$(n);return r<0?nt(r+e,0):rt(r,e)}(0,o);o>i;i++)if(i in r&&r[i]===e)return i||0;return-1},it=[\\"constructor\\",\\"hasOwnProperty\\",\\"isPrototypeOf\\",\\"propertyIsEnumerable\\",\\"toLocaleString\\",\\"toString\\",\\"valueOf\\"].concat(\\"length\\",\\"prototype\\"),ct={f:Object.getOwnPropertyNames||function(t){return function(t,e){var n,r=b(t),o=0,i=[];for(n in r)!O(q,n)&&O(r,n)&&i.push(n);for(;e.length>o;)O(r,n=e[o++])&&(~ot(i,n)||i.push(n));return i}(t,it)}},ut={f:Object.getOwnPropertySymbols},at=a.Reflect,ft=at&&at.ownKeys||function(t){var e=ct.f(F(t)),n=ut.f;return n?e.concat(n(t)):e},st=function(t,e){for(var n=ft(e),r=I.f,o=k.f,i=0;ia;a++)if((o?l(F(s=t[a])[0],s[1]):l(t[a]))===e)return e;return}c=u.call(t)}for(;!(s=c.next()).done;)if(At(c,l,s.value,o)===e)return e}).BREAK=e}),Lt=St(\\"iterator\\"),Nt=!1;try{var Dt=0;({next:function(){return{done:!!Dt++}},return:function(){Nt=!0}})[Lt]=function(){return this}}catch(t){}var Rt,zt,Bt,Kt=St(\\"species\\"),Wt=a.document,qt=Wt&&Wt.documentElement,Gt=a.location,Ut=a.setImmediate,Ht=a.clearImmediate,Vt=a.process,Yt=a.MessageChannel,Jt=a.Dispatch,Qt=0,Xt={},Zt=function(t){if(Xt.hasOwnProperty(t)){var e=Xt[t];delete Xt[t],e()}},$t=function(t){return function(){Zt(t)}},te=function(t){Zt(t.data)},ee=function(t){a.postMessage(t+\\"\\",Gt.protocol+\\"//\\"+Gt.host)};Ut&&Ht||(Ut=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return Xt[++Qt]=function(){(\\"function\\"==typeof t?t:Function(t)).apply(void 0,e)},Rt(Qt),Qt},Ht=function(t){delete Xt[t]},\\"process\\"==y(Vt)?Rt=function(t){Vt.nextTick($t(t))}:Jt&&Jt.now?Rt=function(t){Jt.now($t(t))}:Yt?(Bt=(zt=new Yt).port2,zt.port1.onmessage=te,Rt=kt(Bt.postMessage,Bt,1)):!a.addEventListener||\\"function\\"!=typeof postMessage||a.importScripts||f(ee)?Rt=\\"onreadystatechange\\"in x(\\"script\\")?function(t){qt.appendChild(x(\\"script\\")).onreadystatechange=function(){qt.removeChild(this),Zt(t)}}:function(t){setTimeout($t(t),0)}:(Rt=ee,a.addEventListener(\\"message\\",te,!1)));var ne,re,oe,ie,ce,ue,ae,fe={set:Ut,clear:Ht},se=a.navigator,le=se&&se.userAgent||\\"\\",pe=k.f,ve=fe.set,he=a.MutationObserver||a.WebKitMutationObserver,de=a.process,ye=a.Promise,me=\\"process\\"==y(de),ge=pe(a,\\"queueMicrotask\\"),be=ge&&ge.value;be||(ne=function(){var t,e;for(me&&(t=de.domain)&&t.exit();re;){e=re.fn,re=re.next;try{e()}catch(t){throw re?ie():oe=void 0,t}}oe=void 0,t&&t.enter()},me?ie=function(){de.nextTick(ne)}:he&&!/(iphone|ipod|ipad).*applewebkit/i.test(le)?(ce=!0,ue=document.createTextNode(\\"\\"),new he(ne).observe(ue,{characterData:!0}),ie=function(){ue.data=ce=!ce}):ye&&ye.resolve?(ae=ye.resolve(void 0),ie=function(){ae.then(ne)}):ie=function(){ve.call(a,ne)});var we,je,Pe,Oe,Ee,Se=be||function(t){var e={fn:t,next:void 0};oe&&(oe.next=e),re||(re=e,ie()),oe=e},xe=function(t){var e,n;this.promise=new t(function(t,r){if(void 0!==e||void 0!==n)throw TypeError(\\"Bad Promise constructor\\");e=t,n=r}),this.resolve=wt(e),this.reject=wt(n)},Te={f:function(t){return new xe(t)}},Me=function(t,e){if(F(t),w(e)&&e.constructor===t)return e;var n=Te.f(t);return(0,n.resolve)(e),n.promise},ke=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},Fe=I.f,_e=St(\\"toStringTag\\"),Ie=a,Ae=function(t){return\\"function\\"==typeof t?t:void 0},Ce=St(\\"species\\"),Le=fe.set,Ne=St(\\"species\\"),De=J.get,Re=J.set,ze=J.getterFor(\\"Promise\\"),Be=a.Promise,Ke=a.TypeError,We=a.document,qe=a.process,Ge=a.fetch,Ue=qe&&qe.versions,He=Ue&&Ue.v8||\\"\\",Ve=Te.f,Ye=Ve,Je=\\"process\\"==y(qe),Qe=!!(We&&We.createEvent&&a.dispatchEvent),Xe=mt(\\"Promise\\",function(){var t=Be.resolve(1),e=function(){},n=(t.constructor={})[Ne]=function(t){t(e,e)};return!((Je||\\"function\\"==typeof PromiseRejectionEvent)&&t.then(e)instanceof n&&0!==He.indexOf(\\"6.6\\")&&-1===le.indexOf(\\"Chrome/66\\"))}),Ze=Xe||!function(t,e){if(!Nt)return!1;var n=!1;try{var r={};r[Lt]=function(){return{next:function(){return{done:n=!0}}}},Be.all(r).catch(function(){})}catch(t){}return n}(),$e=function(t){var e;return!(!w(t)||\\"function\\"!=typeof(e=t.then))&&e},tn=function(t,e,n){if(!e.notified){e.notified=!0;var r=e.reactions;Se(function(){for(var o=e.value,i=1==e.state,c=0,u=function(n){var r,c,u,a=i?n.ok:n.fail,f=n.resolve,s=n.reject,l=n.domain;try{a?(i||(2===e.rejection&&on(t,e),e.rejection=1),!0===a?r=o:(l&&l.enter(),r=a(o),l&&(l.exit(),u=!0)),r===n.promise?s(Ke(\\"Promise-chain cycle\\")):(c=$e(r))?c.call(r,f,s):f(r)):s(o)}catch(t){l&&!u&&l.exit(),s(t)}};r.length>c;)u(r[c++]);e.reactions=[],e.notified=!1,n&&!e.rejection&&nn(t,e)})}},en=function(t,e,n){var r,o;Qe?((r=We.createEvent(\\"Event\\")).promise=e,r.reason=n,r.initEvent(t,!1,!0),a.dispatchEvent(r)):r={promise:e,reason:n},(o=a[\\"on\\"+t])?o(r):\\"unhandledrejection\\"===t&&function(t,e){var n=a.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}(\\"Unhandled promise rejection\\",n)},nn=function(t,e){Le.call(a,function(){var n,r=e.value;if(rn(e)&&(n=ke(function(){Je?qe.emit(\\"unhandledRejection\\",r,t):en(\\"unhandledrejection\\",t,r)}),e.rejection=Je||rn(e)?2:1,n.error))throw n.value})},rn=function(t){return 1!==t.rejection&&!t.parent},on=function(t,e){Le.call(a,function(){Je?qe.emit(\\"rejectionHandled\\",t):en(\\"rejectionhandled\\",t,e.value)})},cn=function(t,e,n,r){return function(o){t(e,n,o,r)}},un=function(t,e,n,r){e.done||(e.done=!0,r&&(e=r),e.value=n,e.state=2,tn(t,e,!0))},an=function t(e,n,r,o){if(!n.done){n.done=!0,o&&(n=o);try{if(e===r)throw Ke(\\"Promise can't be resolved itself\\");var i=$e(r);i?Se(function(){var o={done:!1};try{i.call(r,cn(t,e,o,n),cn(un,e,o,n))}catch(t){un(e,o,t,n)}}):(n.value=r,n.state=1,tn(e,n,!1))}catch(t){un(e,{done:!1},t,n)}}};Xe&&(Be=function(t){!function(t,e,n){if(!(t instanceof Be))throw TypeError(\\"Incorrect Promise invocation\\")}(this),wt(t),we.call(this);var e=De(this);try{t(cn(an,this,e),cn(un,this,e))}catch(t){un(this,e,t)}},(we=function(t){Re(this,{type:\\"Promise\\",done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=function(t,e,n){for(var r in e)Q(t,r,e[r],void 0);return t}(Be.prototype,{then:function(t,e){var n,r,o,i=ze(this),c=Ve((n=Be,void 0===(o=F(this).constructor)||null==(r=F(o)[Kt])?n:wt(r)));return c.ok=\\"function\\"!=typeof t||t,c.fail=\\"function\\"==typeof e&&e,c.domain=Je?qe.domain:void 0,i.parent=!0,i.reactions.push(c),0!=i.state&&tn(this,i,!1),c.promise},catch:function(t){return this.then(void 0,t)}}),je=function(){var t=new we,e=De(t);this.promise=t,this.resolve=cn(an,t,e),this.reject=cn(un,t,e)},Te.f=Ve=function(t){return t===Be||t===Pe?new je(t):Ye(t)},\\"function\\"==typeof Ge&&bt({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return Me(Be,Ge.apply(a,arguments))}})),bt({global:!0,wrap:!0,forced:Xe},{Promise:Be}),(Oe=Be)&&!O(Oe=Oe.prototype,_e)&&Fe(Oe,_e,{configurable:!0,value:\\"Promise\\"}),Ee=function(t,e){return arguments.length<2?Ae(Ie[t])||Ae(a[t]):Ie[t]&&Ie[t][e]||a[t]&&a[t][e]}(\\"Promise\\"),s&&Ee&&!Ee[Ce]&&(0,I.f)(Ee,Ce,{configurable:!0,get:function(){return this}}),Pe=Ie.Promise,bt({target:\\"Promise\\",stat:!0,forced:Xe},{reject:function(t){var e=Ve(this);return e.reject.call(void 0,t),e.promise}}),bt({target:\\"Promise\\",stat:!0,forced:Xe},{resolve:function(t){return Me(this,t)}}),bt({target:\\"Promise\\",stat:!0,forced:Ze},{all:function(t){var e=this,n=Ve(e),r=n.resolve,o=n.reject,i=ke(function(){var n=wt(e.resolve),i=[],c=0,u=1;Ct(t,function(t){var a=c++,f=!1;i.push(void 0),u++,n.call(e,t).then(function(t){f||(f=!0,i[a]=t,--u||r(i))},o)}),--u||r(i)});return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=Ve(e),r=n.reject,o=ke(function(){var o=wt(e.resolve);Ct(t,function(t){o.call(e,t).then(n.resolve,r)})});return o.error&&r(o.value),n.promise}}),t.MyClass=class{constructor(){var t;t=[\\"foo\\",\\"bar\\"],\\"myFields\\"in this?Object.defineProperty(this,\\"myFields\\",{value:t,enumerable:!0,configurable:!0,writable:!0}):this.myFields=t}foo(){try{return this.myFields.find(t=>\\"bar\\"===t)}catch(t){return Promise.reject(t)}}}}); +//# sourceMappingURL=custom-babelrc.umd.js.map +" +`; + exports[`fixtures build custom-source with microbundle 1`] = ` "Used script: microbundle diff --git a/test/fixtures/custom-babelrc/.babelrc b/test/fixtures/custom-babelrc/.babelrc new file mode 100644 index 0000000..3889030 --- /dev/null +++ b/test/fixtures/custom-babelrc/.babelrc @@ -0,0 +1,24 @@ +{ + "presets": [ + [ + "@babel/preset-env", + { + "loose": true, + "modules": false, + "useBuiltIns": "usage", + "corejs": 3, + "targets": { + "esmodules": true + } + } + ] + ], + "plugins": [ + [ + "@babel/plugin-proposal-class-properties", + { + "loose": false + } + ] + ] +} diff --git a/test/fixtures/custom-babelrc/package.json b/test/fixtures/custom-babelrc/package.json new file mode 100644 index 0000000..8b54057 --- /dev/null +++ b/test/fixtures/custom-babelrc/package.json @@ -0,0 +1,3 @@ +{ + "name": "custom-babelrc" +} diff --git a/test/fixtures/custom-babelrc/src/index.js b/test/fixtures/custom-babelrc/src/index.js new file mode 100644 index 0000000..7484983 --- /dev/null +++ b/test/fixtures/custom-babelrc/src/index.js @@ -0,0 +1,6 @@ +export class MyClass { + myFields = ['foo', 'bar']; + async foo() { + return this.myFields.find(item => item === 'bar'); + } +}