{"version":3,"file":"dev.mjs","sources":["../src/dev.ts"],"sourcesContent":["import type { Config as SwcConfig } from \"@swc/core\";\nimport { applyTransformers, type SwcConfigTransformer } from \"./applyTransformers.ts\";\n\nexport interface DefineDevConfigOptions {\n    baseUrl?: NonNullable<SwcConfig[\"jsc\"]>[\"baseUrl\"];\n    fastRefresh?: boolean;\n    parser?: \"ecmascript\" | \"typescript\";\n    paths?: NonNullable<SwcConfig[\"jsc\"]>[\"paths\"];\n    transformers?: SwcConfigTransformer[];\n}\n\nexport function defineDevConfig(targets: Record<string, string>, options: DefineDevConfigOptions = {}) {\n    const {\n        baseUrl,\n        fastRefresh = true,\n        parser = \"typescript\",\n        paths,\n        transformers = []\n    } = options;\n\n    const config: SwcConfig = {\n        jsc: {\n            baseUrl,\n            paths,\n            parser: parser === \"ecmascript\"\n                ? {\n                    syntax: \"ecmascript\",\n                    jsx: true\n                }\n                : {\n                    syntax: \"typescript\",\n                    tsx: true\n                },\n            transform: {\n                react: {\n                    // Use \"react/jsx-runtime\".\n                    runtime: \"automatic\",\n                    // Use the native \"Object.assign()\" instead of \"_extends\".\n                    useBuiltins: true,\n                    // Enable React experimental \"fast-refresh\" feature.\n                    // Also need to install @pmmmwh/react-refresh-webpack-plugin.\n                    refresh: fastRefresh\n                }\n            },\n            // Import shims from an external module rather than inlining them in bundle files to greatly reduce the bundles size.\n            // Requires to add \"@swc/helpers\" as a project dependency.\n            externalHelpers: true\n        },\n        module: {\n            // The output module resolution system that the code will be compiled for.\n            type: \"es6\"\n        },\n        env: {\n            // jsc.target is not provided because the provided targets takes precedence.\n            targets\n        }\n    };\n\n    const transformedConfig = applyTransformers(config, transformers, {\n        environment: \"dev\"\n    });\n\n    return transformedConfig;\n}\n"],"names":["applyTransformers","defineDevConfig","targets","options","baseUrl","fastRefresh","parser","paths","transformers","config","transformedConfig"],"mappings":";;;AACsF;AAU/E,SAASC,eAAeA,CAACC,OAA+B,EAAEC,UAAkC,CAAC,CAAC;IACjG,MAAM,EACFC,OAAO,EACPC,cAAc,IAAI,EAClBC,SAAS,YAAY,EACrBC,KAAK,EACLC,eAAe,EAAE,EACpB,GAAGL;IAEJ,MAAMM,SAAoB;QACtB,KAAK;YACDL;YACAG;YACA,QAAQD,WAAW,eACb;gBACE,QAAQ;gBACR,KAAK;YACT,IACE;gBACE,QAAQ;gBACR,KAAK;YACT;YACJ,WAAW;gBACP,OAAO;oBACH,2BAA2B;oBAC3B,SAAS;oBACT,0DAA0D;oBAC1D,aAAa;oBACb,oDAAoD;oBACpD,6DAA6D;oBAC7D,SAASD;gBACb;YACJ;YACA,qHAAqH;YACrH,0DAA0D;YAC1D,iBAAiB;QACrB;QACA,QAAQ;YACJ,0EAA0E;YAC1E,MAAM;QACV;QACA,KAAK;YACD,4EAA4E;YAC5EH;QACJ;IACJ;IAEA,MAAMQ,oBAAoBV,iBAAiBA,CAACS,QAAQD,cAAc;QAC9D,aAAa;IACjB;IAEA,OAAOE;AACX"}