babel_transform_plugin.js 1.1 KB

123
  1. !function(require, directRequire){
  2. "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const core_1=require("@babel/core"),{addSideEffect:addSideEffect,isModule:isModule}=require("@babel/helper-module-imports");function hasStaticMapping(e,t,r,o){try{if("Object"===e){if("entries"===t||"values"===t)return!0}else if("includes"===t){if("Identifier"===r||"ArrayExpression"===r)return!0;if("MemberExpression"===r&&"prototype"===o.property.name&&"Array"===o.object.name)return!0}return!1}catch(e){return!1}}exports.default={name:"transform-runtime-custom",pre(e){const t=new Map;this.addDefaultImport=(r,o,i)=>{const n=`${r}:${o}:${isModule(e.path)||""}`;let s=t.get(n);return s?s=core_1.types.cloneNode(s):(s=addSideEffect(e.path,r,{importedInterop:"uncompiled",nameHint:o,blockHoist:i}),t.set(n,s)),s}},visitor:{MemberExpression:{enter(e){const{node:t}=e,{object:r,property:o}=t;if(!core_1.types.isReferenced(r,t))return;let i=r.name;const n=o.name;hasStaticMapping(i,n,r.type,r)&&("Object"!==i&&(i="Array"),this.addDefaultImport(`@babel/runtime/helpers/${i}${n}`))}}}};
  3. }(require("licia/lazyImport")(require), require)