"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.transformES6ModuleAndGenCode=exports.getBabelRoot=void 0;const types_1=require("../../types"),config_1=require("../../../config"),babel_helper_1=require("../../../utils/babel_helper"),tools_1=require("../../../utils/tools"),pluginTransformModulesCommonjs=()=>require("@babel/plugin-transform-modules-commonjs"),babel7=()=>require("@babel/core");function getES6ModulePluginsList(e){return[[require("@babel/plugin-transform-modules-commonjs"),{allowTopLevelThis:e,importInterop:e=>e.startsWith("@babel/runtime/helpers/")?"node":"babel"}]]}function getBabelRoot(e){return""===e?"@babel/runtime":(0,tools_1.normalizePath)(e+"/@babel/runtime")}function transformES6ModuleAndGenCode(e,o,r,t){let s;t=t||/^\s*\/\/\s?use strict disable;/i.test(e.sourceCode||"");try{const r={babelrc:!1,plugins:getES6ModulePluginsList(t),filename:o,sourceFileName:o,sourceMaps:!0,inputSourceMap:e.inputMap,configFile:!1,code:!0,cloneInputAst:!0},n=require("@babel/core");if(e.astInfo){if(e.astInfo.type!==types_1.AstType.Babel)throw new Error("ast type is not babel");s=n.transformFromAstSync(e.astInfo.ast,e.sourceCode,r)}else{if(null===e.sourceCode)throw new Error("source.sourceCode is null");s=n.transform(e.sourceCode,r)}}catch(e){throw e.code=config_1.BABEL_TRANS_JS_ERR,e.message=`file: ${o}\n ${e.message}`,e.path=o,e}if(!s)throw new Error("no trans result for callPostEnhance");let n=s.code;const l=s.map;t&&(n=n.replace(/^"use strict";/,""));const a=(0,babel_helper_1.collectBabelHelpers)(e.sourceCode),u=(0,babel_helper_1.replaceBabelHelpers)(n,a,o,r);return{code:u.transformCode,map:l,helpers:u.helpers}}function default_1(e,o){return{name:"summer-es6module",workerMethods:{transformES6ModuleAndGenCode:transformES6ModuleAndGenCode},async generate(e,r,t,{independentRoot:s,isBabelIgnore:n}){if(r.endsWith(".js")&&!e.largeFile&&!n){const r=getBabelRoot(s);return this.runWorkerMethod("transformES6ModuleAndGenCode",e,t,r,o.disableUseStrict)}}}}exports.getBabelRoot=getBabelRoot,exports.transformES6ModuleAndGenCode=transformES6ModuleAndGenCode,exports.default=default_1;