{"version":3,"file":"library-config.mjs","sources":["../../src/library-config.ts"],"sourcesContent":["import path from 'node:path';\n\nimport { nodeExternals } from 'rollup-plugin-node-externals';\nimport { defineConfig } from 'vite';\nimport dts from 'vite-plugin-dts';\nimport tsconfigPaths from 'vite-tsconfig-paths';\n\nexport type ICreateLibraryViteConfigOptions = {\n    rootDir: string;\n    packageJson?: string;\n    srcDir?: string;\n    entryFile?: string;\n    outDir?: string;\n    publicDir?: string;\n    include?: string | string[];\n    exclude?: string | string[];\n};\n\nexport function createLibraryViteConfig(options: ICreateLibraryViteConfigOptions) {\n    const rootDir = options.rootDir;\n    const packageJson = options.packageJson ?? path.join(rootDir, 'package.json');\n    const srcDir = options.srcDir ?? path.join(rootDir, 'src');\n    const entryFile = options.entryFile ?? path.join(srcDir, 'index.ts');\n    const outDir = options.outDir ?? path.join(rootDir, 'dist');\n    const publicDir = options.publicDir ?? path.join(rootDir, 'public');\n    const include = Array.isArray(options.include)\n        ? options.include\n        : options.include\n          ? [options.include]\n          : ['src/**/*.{js,jsx,ts,tsx}', 'src/**/*.d.ts', 'dts/**/*.d.ts'];\n    const exclude = Array.isArray(options.exclude)\n        ? options.exclude\n        : options.exclude\n          ? [options.exclude]\n          : ['**/*.test.{js,jsx,ts,tsx}', '**/*.spec.{js,jsx,ts,tsx}'];\n\n    const libraryConfig = defineConfig({\n        root: rootDir,\n        publicDir,\n        build: {\n            target: 'es2022',\n            outDir,\n            copyPublicDir: true,\n            minify: false,\n            emptyOutDir: false,\n            sourcemap: true,\n            lib: {\n                entry: {\n                    index: entryFile,\n                },\n                formats: ['cjs', 'es'],\n                fileName: (format, entryName) =>\n                    path.join(\n                        format === 'es' ? 'esm' : 'cjs',\n                        [entryName, format === 'es' ? 'mjs' : 'cjs'].join('.'),\n                    ),\n            },\n            rollupOptions: {\n                output: {\n                    preserveModules: true,\n                    exports: 'named',\n                    hoistTransitiveImports: false,\n                    assetFileNames: 'assets/[name][extname]',\n                },\n            },\n        },\n        esbuild: {\n            jsx: 'automatic',\n        },\n        plugins: [\n            {\n                ...nodeExternals({\n                    packagePath: packageJson,\n                    builtins: true,\n                    deps: true,\n                    devDeps: true,\n                    peerDeps: true,\n                }),\n                enforce: 'pre',\n            },\n            {\n                ...tsconfigPaths({\n                    root: rootDir,\n                }),\n                enforce: 'pre',\n            },\n            {\n                ...dts({\n                    root: rootDir,\n                    outDir: path.join(outDir, 'types'),\n                    include: include.map((glob) => path.join(rootDir, glob)),\n                    exclude,\n                }),\n                enforce: 'post',\n                apply: 'build',\n            },\n        ],\n    });\n\n    return libraryConfig;\n}\n"],"names":[],"mappings":";;;;;AAkBO,SAAS,wBAAwB,SAA0C;AAC9E,QAAM,UAAU,QAAQ;AACxB,QAAM,cAAc,QAAQ,eAAe,KAAK,KAAK,SAAS,cAAc;AAC5E,QAAM,SAAS,QAAQ,UAAU,KAAK,KAAK,SAAS,KAAK;AACzD,QAAM,YAAY,QAAQ,aAAa,KAAK,KAAK,QAAQ,UAAU;AACnE,QAAM,SAAS,QAAQ,UAAU,KAAK,KAAK,SAAS,MAAM;AAC1D,QAAM,YAAY,QAAQ,aAAa,KAAK,KAAK,SAAS,QAAQ;AAClE,QAAM,UAAU,MAAM,QAAQ,QAAQ,OAAO,IACvC,QAAQ,UACR,QAAQ,UACN,CAAC,QAAQ,OAAO,IAChB,CAAC,4BAA4B,iBAAiB,eAAe;AACrE,QAAM,UAAU,MAAM,QAAQ,QAAQ,OAAO,IACvC,QAAQ,UACR,QAAQ,UACN,CAAC,QAAQ,OAAO,IAChB,CAAC,6BAA6B,2BAA2B;AAEjE,QAAM,gBAAgB,aAAa;AAAA,IAC/B,MAAM;AAAA,IACN;AAAA,IACA,OAAO;AAAA,MACH,QAAQ;AAAA,MACR;AAAA,MACA,eAAe;AAAA,MACf,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,WAAW;AAAA,MACX,KAAK;AAAA,QACD,OAAO;AAAA,UACH,OAAO;AAAA,QACX;AAAA,QACA,SAAS,CAAC,OAAO,IAAI;AAAA,QACrB,UAAU,CAAC,QAAQ,cACf,KAAK;AAAA,UACD,WAAW,OAAO,QAAQ;AAAA,UAC1B,CAAC,WAAW,WAAW,OAAO,QAAQ,KAAK,EAAE,KAAK,GAAG;AAAA,QAAA;AAAA,MAEjE;AAAA,MACA,eAAe;AAAA,QACX,QAAQ;AAAA,UACJ,iBAAiB;AAAA,UACjB,SAAS;AAAA,UACT,wBAAwB;AAAA,UACxB,gBAAgB;AAAA,QAAA;AAAA,MACpB;AAAA,IAER;AAAA,IACA,SAAS;AAAA,MACL,KAAK;AAAA,IACT;AAAA,IACA,SAAS;AAAA,MACL;AAAA,QACI,GAAG,cAAc;AAAA,UACb,aAAa;AAAA,UACb,UAAU;AAAA,UACV,MAAM;AAAA,UACN,SAAS;AAAA,UACT,UAAU;AAAA,QAAA,CACb;AAAA,QACD,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,GAAG,cAAc;AAAA,UACb,MAAM;AAAA,QAAA,CACT;AAAA,QACD,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,GAAG,IAAI;AAAA,UACH,MAAM;AAAA,UACN,QAAQ,KAAK,KAAK,QAAQ,OAAO;AAAA,UACjC,SAAS,QAAQ,IAAI,CAAC,SAAS,KAAK,KAAK,SAAS,IAAI,CAAC;AAAA,UACvD;AAAA,QAAA,CACH;AAAA,QACD,SAAS;AAAA,QACT,OAAO;AAAA,MAAA;AAAA,IACX;AAAA,EACJ,CACH;AAEM,SAAA;AACX;"}