babel-preset-jaid
Version:
These are my personal Babel presets. They aim for minimizing boilerplate for projects that need Babel.
8 lines • 3.9 kB
JavaScript
/*!
*** babel-preset-jaid 17.0.0
*** Copyright © 2022, Jaid <jaid.jsx@gmail.com> (https://github.com/Jaid)
*** @license MIT
*** See https://github.com/Jaid/babel-preset-jaid
!*/
import{createRequire as e}from"module";import*as i from"debug";import*as t from"fs-extra";import*as n from"lodash-es";import*as s from"read-pkg-up";import*as o from"has-content";export const id=826;export const ids=[826];export const modules={341:(r,p,a)=>{a.d(p,{a:()=>y});const l=e(import.meta.url)("node:path"),c=(u={a:()=>i.default},d={},a.d(d,u),d);var u,d;const g=(e=>{var i={};return a.d(i,e),i})({a:()=>t.default}),m=(e=>{var i={};return a.d(i,e),i})({a:()=>n.isObject}),f=(e=>{var i={};return a.d(i,e),i})({a:()=>s.readPackageUpSync});class h{constructor(e,i=process.cwd()){this.config={presets:[],plugins:[]},this.babelApi=e,this.cwd=i;const t=(0,f.a)(i);null!=t&&t.pkg&&(this.pkg=t.pkg,this.pkgPath=t.path,this.pkgDependencies=Object.keys({...this.pkg.dependencies,...this.pkg.peerDependencies,...this.pkg.optionalDependencies,...this.pkg.devDependencies}))}plugin(e,i){this.config.plugins.push(i?[e,i]:e)}pluginForEnv(e,i,t){this.babelApi.env(e)&&this.plugin(i,t)}pluginForEnvsBut(e,i,t){this.babelApi.env(e)||this.plugin(i,t)}pluginForDependency(e,i,t){var n;null!==(n=this.pkgDependencies)&&void 0!==n&&n.includes(e)&&this.plugin(i,t)}preset(e,i){this.config.presets.push(i?[e,i]:e)}presetForEnv(e,i,t){this.babelApi.env(e)&&this.preset(i,t)}presetForEnvsBut(e,i,t){this.babelApi.env(e)||this.preset(i,t)}presetForDependency(e,i,t){var n;null!==(n=this.pkgDependencies)&&void 0!==n&&n.includes(e)&&this.preset(i,t)}}const v=(e=>{var i={};return a.d(i,e),i})({a:()=>o.default}),b=v.a.default,k=(0,c.a)("babel-preset-jaid"),y=(e,i)=>{i={react:!1,minify:!0,runtime:!1,envOptions:null,typescript:!1,aotLoader:!0,outputConfig:!1,esm:!0,loose:!1,...i},e.assertVersion("^7.11");const t=new h(e),n=[e.version,e.env(),JSON.stringify(i),"17.0.0"];if(t.pkg){const e=g.a.statSync(t.pkgPath);n.push(t.pkgPath),n.push(+e.mtime),k(`Loaded ${t.pkgPath}`)}else n.push(0),n.push(0);const s=n.join("|");k(`Cache identifier: ${s}`),e.cache.using((()=>s));const o={};if(o.root=l.resolve(t.cwd),o.src=l.resolve(t.cwd,"src"),o.lib=l.resolve(t.cwd,"src","lib"),t.plugin("macros"),i.aotLoader&&t.plugin("aot-loader/babel"),t.plugin("@babel/plugin-proposal-decorators",{version:"2021-12"}),t.plugin("@babel/plugin-proposal-do-expressions"),t.plugin("@babel/plugin-proposal-pipeline-operator",{proposal:"hack",topicToken:"^^"}),i.typescript&&(t.preset("@babel/preset-typescript"),!i.minify&&(t.config.retainLines=!0)),i.react){const n="string"==typeof i.react?i.react:"dom",s=n.startsWith("dom"),o=n.endsWith("lib");t.preset("@babel/preset-react",{development:!e.env("production")}),o||(t.pluginForEnv("production","transform-react-class-to-function"),t.pluginForEnv("production","transform-react-remove-prop-types"),t.pluginForEnv("production","@babel/plugin-transform-react-inline-elements")),s&&t.pluginForEnv("development","react-refresh/babel")}if(i.runtime&&t.plugin("@babel/plugin-transform-runtime"),i.minify){const e={removeConsole:!1,removeDebugger:!0},n=(0,m.a)(i.minify)?{...e,...i.minify}:e;k("Using minify options: %o",n),t.presetForEnv("production","minify",n),t.pluginForEnv("production","module:faster.js"),t.pluginForEnv("production","tailcall-optimization")}else k("Skipping minification");b(o)&&t.plugin("module-resolver",{alias:o,cwd:t.cwd}),t.plugin("pkg",{cwd:t.cwd});const r={loose:i.loose,...i.envOptions};if(i.esm&&(r.modules=!1),t.preset("@babel/preset-env",r),k("Final config: %j",t.config),i.outputConfig||"1"===process.env.outputBabelPresetJaid){const e=l.join(t.cwd,"dist","babel-preset-jaid","config.json");g.a.outputJsonSync(e,t.config,{spaces:2})}return t.config}}};import r from"./runtime.js";import*as p from"./index.js";r.C(p);var a=r(r.s=341).a;export{a as default};
//# sourceMappingURL=index.js.map