@adddog/build-configs 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../src/presets/library.ts","../../src/presets/cli.ts","../../src/presets/component.ts","../../src/presets/complete.ts","../../src/presets/index.ts"],"sourcesContent":["import type { PresetCollection } from \"./types\";\n\n/**\n * Library presets for building npm packages\n */\nexport const libraryPresets: PresetCollection = {\n \"library-esm\": {\n name: \"library-esm\",\n description: \"Modern ESM-only library\",\n bundler: \"both\",\n tsup: {\n format: [\"esm\"],\n target: \"es2022\",\n dts: {\n resolve: true,\n },\n },\n unbuild: {\n rollup: {\n emitCJS: false,\n },\n },\n },\n\n \"library-dual\": {\n name: \"library-dual\",\n description: \"Library with both ESM and CJS outputs\",\n bundler: \"both\",\n tsup: {\n format: [\"esm\", \"cjs\"],\n target: \"node18\",\n dts: {\n resolve: true,\n },\n },\n unbuild: {\n rollup: {\n emitCJS: true,\n },\n declaration: \"compatible\",\n },\n },\n\n \"library-browser\": {\n name: \"library-browser\",\n description: \"Browser-compatible library\",\n bundler: \"tsup\",\n tsup: {\n format: [\"esm\", \"cjs\", \"iife\"],\n platform: \"browser\",\n target: \"es2020\",\n globalName: \"MyLib\",\n dts: {\n resolve: true,\n },\n minify: true,\n },\n },\n\n \"library-unbundled\": {\n name: \"library-unbundled\",\n description: \"Library with file-to-file transpilation (mkdist)\",\n bundler: \"unbuild\",\n unbuild: {\n entries: [\n \"src/index\",\n {\n builder: \"mkdist\",\n input: \"src/\",\n outDir: \"dist/\",\n },\n ],\n },\n },\n\n \"library-monorepo\": {\n name: \"library-monorepo\",\n description: \"Optimized for monorepo internal packages\",\n bundler: \"both\",\n tsup: {\n format: [\"esm\"],\n dts: true,\n sourcemap: true,\n clean: true,\n skipNodeModulesBundle: true,\n },\n unbuild: {\n rollup: {\n emitCJS: false,\n inlineDependencies: false,\n },\n sourcemap: true,\n },\n },\n};\n","import type { PresetCollection } from \"./types\";\n\n/**\n * CLI tool presets for building command-line applications\n */\nexport const cliPresets: PresetCollection = {\n \"cli-simple\": {\n name: \"cli-simple\",\n description: \"Simple CLI tool with single entry point\",\n bundler: \"both\",\n tsup: {\n entry: [\"src/cli.ts\"],\n format: [\"esm\"],\n target: \"node18\",\n platform: \"node\",\n dts: false, // CLIs don't need type definitions\n clean: true,\n minify: false,\n shims: true, // Add CJS/ESM shims for compatibility\n },\n unbuild: {\n entries: [\"src/cli\"],\n declaration: false,\n rollup: {\n emitCJS: false,\n },\n },\n },\n\n \"cli-multi\": {\n name: \"cli-multi\",\n description: \"CLI tool with multiple commands\",\n bundler: \"both\",\n tsup: {\n entry: {\n cli: \"src/cli.ts\",\n index: \"src/index.ts\",\n },\n format: [\"esm\", \"cjs\"],\n target: \"node18\",\n platform: \"node\",\n dts: true, // Include types for programmatic usage\n clean: true,\n splitting: false,\n },\n unbuild: {\n entries: [\"src/cli\", \"src/index\"],\n declaration: true,\n rollup: {\n emitCJS: true,\n },\n },\n },\n\n \"cli-bundled\": {\n name: \"cli-bundled\",\n description: \"CLI tool with all dependencies bundled\",\n bundler: \"tsup\",\n tsup: {\n entry: [\"src/cli.ts\"],\n format: [\"esm\"],\n target: \"node18\",\n platform: \"node\",\n dts: false,\n bundle: true,\n skipNodeModulesBundle: false, // Bundle everything\n noExternal: [/.*/], // Include all dependencies\n minify: true,\n treeshake: true,\n },\n },\n};\n","import type { PresetCollection } from \"./types\";\n\n/**\n * Component library presets for building UI components\n */\nexport const componentPresets: PresetCollection = {\n \"react-component\": {\n name: \"react-component\",\n description: \"React component library\",\n bundler: \"both\",\n tsup: {\n entry: [\"src/index.ts\"],\n format: [\"esm\", \"cjs\"],\n target: \"es2020\",\n platform: \"browser\",\n dts: {\n resolve: true,\n },\n external: [\"react\", \"react-dom\"],\n sourcemap: true,\n clean: true,\n splitting: false,\n },\n unbuild: {\n entries: [\n \"src/index\",\n {\n builder: \"mkdist\",\n input: \"src/components/\",\n outDir: \"dist/components/\",\n },\n ],\n externals: [\"react\", \"react-dom\"],\n rollup: {\n emitCJS: true,\n },\n },\n },\n\n \"vue-component\": {\n name: \"vue-component\",\n description: \"Vue component library\",\n bundler: \"unbuild\",\n unbuild: {\n entries: [\n \"src/index\",\n {\n builder: \"mkdist\",\n input: \"src/components/\",\n outDir: \"dist/components/\",\n },\n ],\n externals: [\"vue\"],\n rollup: {\n emitCJS: false,\n },\n },\n },\n\n \"web-component\": {\n name: \"web-component\",\n description: \"Framework-agnostic web components\",\n bundler: \"tsup\",\n tsup: {\n entry: [\"src/index.ts\"],\n format: [\"esm\", \"iife\"],\n target: \"es2020\",\n platform: \"browser\",\n dts: {\n resolve: true,\n },\n globalName: \"WebComponents\",\n minify: true,\n sourcemap: true,\n },\n },\n\n \"design-system\": {\n name: \"design-system\",\n description: \"Design system with components and tokens\",\n bundler: \"unbuild\",\n unbuild: {\n entries: [\n \"src/index\",\n {\n builder: \"mkdist\",\n input: \"src/components/\",\n outDir: \"dist/components/\",\n },\n {\n builder: \"mkdist\",\n input: \"src/tokens/\",\n outDir: \"dist/tokens/\",\n },\n ],\n rollup: {\n emitCJS: true,\n },\n declaration: \"compatible\",\n },\n },\n};\n","import type { PresetCollection } from \"./types\";\n\n/**\n * Complete default presets showing ALL available options\n * Useful as a reference and starting point for customization\n */\nexport const completePresets: PresetCollection = {\n \"complete-tsup\": {\n name: \"complete-tsup\",\n description: \"Complete tsup config with all options defined\",\n bundler: \"tsup\",\n tsup: {\n // Entry configuration\n entry: [\"src/index.ts\"],\n\n // Output configuration\n outDir: \"dist\",\n format: [\"esm\", \"cjs\"],\n legacyOutput: false,\n\n // Target and platform\n target: \"node18\",\n platform: \"node\",\n\n // TypeScript declarations\n dts: {\n resolve: true,\n only: false,\n compilerOptions: {\n strict: true,\n },\n },\n\n // Source maps\n sourcemap: true,\n\n // Bundling behavior\n bundle: true,\n splitting: false,\n skipNodeModulesBundle: true,\n\n // Optimization\n minify: false,\n minifyWhitespace: false,\n minifyIdentifiers: false,\n minifySyntax: false,\n keepNames: true,\n treeshake: true,\n\n // Build control\n clean: true,\n watch: false,\n silent: false,\n\n // Dependencies\n external: [/node_modules/],\n noExternal: [],\n\n // Code transformation\n shims: false,\n cjsInterop: false,\n replaceNodeEnv: false,\n removeNodeProtocol: true,\n\n // Advanced\n metafile: false,\n publicDir: false,\n },\n },\n\n \"complete-unbuild\": {\n name: \"complete-unbuild\",\n description: \"Complete unbuild config with all options defined\",\n bundler: \"unbuild\",\n unbuild: {\n // Entry configuration\n entries: [\"src/index\"],\n\n // Output configuration\n outDir: \"dist\",\n\n // Build behavior\n clean: true,\n stub: false,\n watch: false,\n parallel: true,\n\n // TypeScript declarations\n declaration: \"compatible\",\n\n // Source maps\n sourcemap: true,\n\n // Build control\n failOnWarn: false,\n\n // Dependencies\n externals: [],\n\n // Code transformation\n alias: {},\n replace: {},\n\n // Rollup configuration\n rollup: {\n // Output format\n emitCJS: false,\n cjsBridge: false,\n\n // Bundling\n inlineDependencies: false,\n preserveDynamicImports: false,\n\n // Esbuild options\n esbuild: {\n target: \"node18\",\n minify: false,\n tsconfigRaw: {\n compilerOptions: {\n strict: true,\n experimentalDecorators: false,\n },\n },\n },\n\n // Plugins (set to false to disable)\n replace: {},\n alias: {},\n resolve: {\n extensions: [\".mjs\", \".js\", \".json\", \".ts\"],\n },\n json: {},\n commonjs: {\n requireReturnsDefault: \"auto\",\n },\n },\n\n // Stub options\n stubOptions: {\n jiti: {\n interopDefault: true,\n },\n },\n },\n },\n\n \"complete-tsup-full\": {\n name: \"complete-tsup-full\",\n description: \"Exhaustive tsup config with every possible option\",\n bundler: \"tsup\",\n tsup: {\n // === Entry Configuration ===\n entry: [\"src/index.ts\"],\n\n // === Output Configuration ===\n outDir: \"dist\",\n format: [\"esm\", \"cjs\", \"iife\"],\n legacyOutput: false,\n globalName: \"MyLib\",\n\n // === Target and Platform ===\n target: [\"es2020\", \"node18\"],\n platform: \"neutral\",\n\n // === TypeScript Declarations ===\n dts: {\n resolve: true,\n only: false,\n banner: \"// TypeScript declarations\",\n footer: \"// End of declarations\",\n compilerOptions: {\n strict: true,\n skipLibCheck: true,\n },\n },\n\n // === Source Maps ===\n sourcemap: true,\n\n // === Bundling Behavior ===\n bundle: true,\n splitting: true,\n skipNodeModulesBundle: false,\n\n // === Optimization ===\n minify: \"terser\",\n terserOptions: {\n compress: {\n drop_console: false,\n drop_debugger: true,\n },\n mangle: {\n keep_classnames: true,\n keep_fnames: true,\n },\n },\n minifyWhitespace: true,\n minifyIdentifiers: true,\n minifySyntax: true,\n keepNames: false,\n treeshake: \"recommended\",\n\n // === Build Control ===\n clean: [\"dist/**/*\"],\n watch: false,\n ignoreWatch: [\"**/__tests__/**\", \"**/*.test.ts\"],\n silent: false,\n\n // === Dependencies ===\n external: [/^node:/, /^@types\\//],\n noExternal: [\"some-package\"],\n\n // === Code Transformation ===\n define: {\n __VERSION__: JSON.stringify(\"1.0.0\"),\n \"process.env.NODE_ENV\": JSON.stringify(\"production\"),\n },\n env: {\n NODE_ENV: \"production\",\n },\n inject: [],\n banner: {\n js: \"/* My Library Banner */\",\n },\n footer: {\n js: \"/* End of Library */\",\n },\n shims: true,\n cjsInterop: true,\n replaceNodeEnv: true,\n removeNodeProtocol: false,\n\n // === Advanced ===\n tsconfig: \"tsconfig.build.json\",\n metafile: true,\n publicDir: \"public\",\n pure: [\"console.log\"],\n loader: {\n \".txt\": \"text\",\n \".png\": \"base64\",\n },\n\n // === CSS (experimental) ===\n injectStyle: false,\n\n // === JSX ===\n jsxFactory: \"React.createElement\",\n jsxFragment: \"React.Fragment\",\n },\n },\n\n \"complete-unbuild-full\": {\n name: \"complete-unbuild-full\",\n description: \"Exhaustive unbuild config with every possible option\",\n bundler: \"unbuild\",\n unbuild: {\n // === Project Configuration ===\n name: \"my-package\",\n rootDir: process.cwd(),\n\n // === Entry Configuration ===\n entries: [\n \"src/index\",\n {\n builder: \"rollup\",\n input: \"src/main\",\n name: \"main\",\n },\n {\n builder: \"mkdist\",\n input: \"src/components/\",\n outDir: \"dist/components/\",\n format: \"esm\",\n ext: \"mjs\",\n },\n ],\n\n // === Output Configuration ===\n outDir: \"dist\",\n\n // === Build Behavior ===\n clean: true,\n stub: false,\n watch: false,\n watchOptions: {\n exclude: [\"node_modules/**\", \"dist/**\"],\n },\n parallel: true,\n\n // === TypeScript Declarations ===\n declaration: \"node16\",\n\n // === Source Maps ===\n sourcemap: true,\n\n // === Build Control ===\n failOnWarn: false,\n\n // === Dependencies ===\n externals: [/^node:/, \"external-pkg\"],\n dependencies: [],\n peerDependencies: [],\n devDependencies: [],\n\n // === Code Transformation ===\n alias: {\n \"@\": \"./src\",\n \"@utils\": \"./src/utils\",\n },\n replace: {\n __VERSION__: \"1.0.0\",\n \"process.env.NODE_ENV\": \"production\",\n },\n\n // === Rollup Configuration ===\n rollup: {\n // Output format\n emitCJS: true,\n cjsBridge: true,\n\n // Bundling\n inlineDependencies: false,\n preserveDynamicImports: false,\n watch: false,\n\n // Output options\n output: {\n banner: \"/* My Library */\",\n footer: \"/* End */\",\n exports: \"auto\",\n interop: \"auto\",\n },\n\n // Esbuild options\n esbuild: {\n target: \"es2020\",\n minify: true,\n minifyWhitespace: true,\n minifyIdentifiers: true,\n minifySyntax: true,\n tsconfigRaw: {\n compilerOptions: {\n strict: true,\n experimentalDecorators: true,\n },\n },\n },\n\n // Plugin configurations\n replace: {\n preventAssignment: true,\n values: {\n \"process.env.NODE_ENV\": JSON.stringify(\"production\"),\n },\n },\n alias: {\n entries: [\n { find: \"@\", replacement: \"./src\" },\n ],\n },\n resolve: {\n extensions: [\".mjs\", \".js\", \".json\", \".ts\"],\n browser: false,\n preferBuiltins: true,\n },\n json: {\n compact: false,\n namedExports: true,\n preferConst: true,\n },\n commonjs: {\n include: /node_modules/,\n requireReturnsDefault: \"auto\",\n esmExternals: true,\n transformMixedEsModules: true,\n },\n dts: {\n respectExternal: true,\n },\n },\n\n // === Stub Options ===\n stubOptions: {\n jiti: {\n interopDefault: true,\n cache: true,\n requireCache: false,\n transformOptions: {},\n },\n absoluteJitiPath: false,\n },\n\n // === Hooks ===\n hooks: {\n \"build:prepare\": async (_ctx) => {\n console.log(\"Preparing build...\");\n },\n \"build:before\": async (_ctx) => {\n console.log(\"Starting build...\");\n },\n \"build:done\": async (_ctx) => {\n console.log(\"Build complete!\");\n },\n },\n },\n },\n};\n","import { libraryPresets } from \"./library\";\nimport { cliPresets } from \"./cli\";\nimport { componentPresets } from \"./component\";\nimport { completePresets } from \"./complete\";\nimport type { PresetCollection, PresetConfig } from \"./types\";\n\nexport type { PresetConfig, PresetCollection, PresetCategory } from \"./types\";\n\n/**\n * All available presets organized by category\n */\nexport const presets: PresetCollection = {\n ...libraryPresets,\n ...cliPresets,\n ...componentPresets,\n ...completePresets,\n};\n\n/**\n * Get a preset by name\n * @param name - The preset name\n * @returns The preset configuration or undefined if not found\n */\nexport function getPreset(name: string): PresetConfig | undefined {\n return presets[name];\n}\n\n/**\n * List all available preset names\n * @returns Array of preset names\n */\nexport function listPresets(): string[] {\n return Object.keys(presets);\n}\n\n/**\n * Get presets by bundler type\n * @param bundler - The bundler type to filter by\n * @returns Presets that support the specified bundler\n */\nexport function getPresetsByBundler(\n bundler: \"tsup\" | \"unbuild\",\n): PresetCollection {\n return Object.fromEntries(\n Object.entries(presets).filter(\n ([, preset]) =>\n preset.bundler === bundler || preset.bundler === \"both\",\n ),\n );\n}\n\n/**\n * Preset categories for easy filtering\n */\nexport const presetCategories = {\n library: libraryPresets,\n cli: cliPresets,\n component: componentPresets,\n complete: completePresets,\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { Options } from 'tsup';
2
+
3
+ /**
4
+ * Creates a tsup configuration with sensible defaults for Node.js libraries.
5
+ *
6
+ * Default configuration:
7
+ * - Entry: src/index.ts
8
+ * - Formats: ESM and CJS
9
+ * - TypeScript declarations with type resolution
10
+ * - Source maps enabled
11
+ * - Clean build directory
12
+ * - Tree shaking enabled
13
+ * - Target: node18
14
+ * - Preserve function/class names
15
+ *
16
+ * @param c - Partial tsup options to override defaults
17
+ * @returns Complete tsup configuration
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * import { makeTsupConfig } from '@adddog/build-configs/tsup';
22
+ *
23
+ * export default makeTsupConfig({
24
+ * entry: ['src/index.ts', 'src/cli.ts'],
25
+ * format: ['esm'],
26
+ * });
27
+ * ```
28
+ */
29
+ declare function makeTsupConfig(c?: Options): Options | Options[] | ((overrideOptions: Options) => Options | Options[] | Promise<Options | Options[]>);
30
+
31
+ export { makeTsupConfig };
@@ -0,0 +1,31 @@
1
+ import { Options } from 'tsup';
2
+
3
+ /**
4
+ * Creates a tsup configuration with sensible defaults for Node.js libraries.
5
+ *
6
+ * Default configuration:
7
+ * - Entry: src/index.ts
8
+ * - Formats: ESM and CJS
9
+ * - TypeScript declarations with type resolution
10
+ * - Source maps enabled
11
+ * - Clean build directory
12
+ * - Tree shaking enabled
13
+ * - Target: node18
14
+ * - Preserve function/class names
15
+ *
16
+ * @param c - Partial tsup options to override defaults
17
+ * @returns Complete tsup configuration
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * import { makeTsupConfig } from '@adddog/build-configs/tsup';
22
+ *
23
+ * export default makeTsupConfig({
24
+ * entry: ['src/index.ts', 'src/cli.ts'],
25
+ * format: ['esm'],
26
+ * });
27
+ * ```
28
+ */
29
+ declare function makeTsupConfig(c?: Options): Options | Options[] | ((overrideOptions: Options) => Options | Options[] | Promise<Options | Options[]>);
30
+
31
+ export { makeTsupConfig };
@@ -0,0 +1,44 @@
1
+ import { defineConfig } from 'tsup';
2
+
3
+ function makeTsupConfig(c = {}) {
4
+ return defineConfig({
5
+ // Entry points
6
+ entry: ["src/index.ts"],
7
+ // Output formats
8
+ format: ["esm", "cjs"],
9
+ // TypeScript declarations
10
+ dts: {
11
+ resolve: true,
12
+ // Resolve external types from node_modules
13
+ compilerOptions: {
14
+ strict: true
15
+ }
16
+ },
17
+ // Build behavior
18
+ bundle: true,
19
+ splitting: false,
20
+ // Disable code splitting for better CJS compatibility
21
+ treeshake: true,
22
+ clean: true,
23
+ // Source maps
24
+ sourcemap: true,
25
+ // Target environment
26
+ target: "node18",
27
+ platform: "node",
28
+ // Optimization
29
+ minify: false,
30
+ // Let consumers minify if needed
31
+ keepNames: true,
32
+ // Preserve function/class names for debugging
33
+ // Dependencies
34
+ skipNodeModulesBundle: true,
35
+ // Don't bundle node_modules
36
+ external: [/node_modules/],
37
+ // Mark all node_modules as external
38
+ // Allow user overrides
39
+ ...c
40
+ });
41
+ }
42
+
43
+ export { makeTsupConfig };
44
+ //# sourceMappingURL=tsup.config.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tsup.config.mjs","sources":["../src/tsup.config.ts"],"sourcesContent":["import type { Options } from \"tsup\";\nimport { defineConfig } from \"tsup\";\n\n/**\n * Creates a tsup configuration with sensible defaults for Node.js libraries.\n *\n * Default configuration:\n * - Entry: src/index.ts\n * - Formats: ESM and CJS\n * - TypeScript declarations with type resolution\n * - Source maps enabled\n * - Clean build directory\n * - Tree shaking enabled\n * - Target: node18\n * - Preserve function/class names\n *\n * @param c - Partial tsup options to override defaults\n * @returns Complete tsup configuration\n *\n * @example\n * ```ts\n * import { makeTsupConfig } from '@adddog/build-configs/tsup';\n *\n * export default makeTsupConfig({\n * entry: ['src/index.ts', 'src/cli.ts'],\n * format: ['esm'],\n * });\n * ```\n */\nexport function makeTsupConfig(c: Options = {}) {\n return defineConfig({\n // Entry points\n entry: [\"src/index.ts\"],\n\n // Output formats\n format: [\"esm\", \"cjs\"],\n\n // TypeScript declarations\n dts: {\n resolve: true, // Resolve external types from node_modules\n compilerOptions: {\n strict: true,\n },\n },\n\n // Build behavior\n bundle: true,\n splitting: false, // Disable code splitting for better CJS compatibility\n treeshake: true,\n clean: true,\n\n // Source maps\n sourcemap: true,\n\n // Target environment\n target: \"node18\",\n platform: \"node\",\n\n // Optimization\n minify: false, // Let consumers minify if needed\n keepNames: true, // Preserve function/class names for debugging\n\n // Dependencies\n skipNodeModulesBundle: true, // Don't bundle node_modules\n external: [/node_modules/], // Mark all node_modules as external\n\n // Allow user overrides\n ...c,\n });\n}\n"],"names":[],"mappings":";;AA6BO,SAAS,cAAA,CAAe,CAAA,GAAa,EAAC,EAAG;AAC5C,EAAA,OAAO,YAAA,CAAa;AAAA;AAAA,IAEhB,KAAA,EAAO,CAAC,cAAc,CAAA;AAAA;AAAA,IAGtB,MAAA,EAAQ,CAAC,KAAA,EAAO,KAAK,CAAA;AAAA;AAAA,IAGrB,GAAA,EAAK;AAAA,MACD,OAAA,EAAS,IAAA;AAAA;AAAA,MACT,eAAA,EAAiB;AAAA,QACb,MAAA,EAAQ;AAAA;AACZ,KACJ;AAAA;AAAA,IAGA,MAAA,EAAQ,IAAA;AAAA,IACR,SAAA,EAAW,KAAA;AAAA;AAAA,IACX,SAAA,EAAW,IAAA;AAAA,IACX,KAAA,EAAO,IAAA;AAAA;AAAA,IAGP,SAAA,EAAW,IAAA;AAAA;AAAA,IAGX,MAAA,EAAQ,QAAA;AAAA,IACR,QAAA,EAAU,MAAA;AAAA;AAAA,IAGV,MAAA,EAAQ,KAAA;AAAA;AAAA,IACR,SAAA,EAAW,IAAA;AAAA;AAAA;AAAA,IAGX,qBAAA,EAAuB,IAAA;AAAA;AAAA,IACvB,QAAA,EAAU,CAAC,cAAc,CAAA;AAAA;AAAA;AAAA,IAGzB,GAAG;AAAA,GACN,CAAA;AACL;;;;"}
@@ -0,0 +1,48 @@
1
+ import { BuildConfig } from 'unbuild';
2
+
3
+ /**
4
+ * Creates an unbuild configuration with sensible defaults for Node.js libraries.
5
+ *
6
+ * Default configuration:
7
+ * - Entry: src/index (auto-inferred from package.json if omitted)
8
+ * - Output: dist/
9
+ * - ESM-only output (can be overridden for CJS)
10
+ * - TypeScript declarations (compatible mode)
11
+ * - Source maps enabled
12
+ * - Clean build directory
13
+ * - Parallel builds
14
+ * - Target: node18
15
+ *
16
+ * @param c - Partial unbuild config to override defaults
17
+ * @returns Complete unbuild configuration
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * import { makeUnbuildConfig } from '@adddog/build-configs/unbuild';
22
+ *
23
+ * export default makeUnbuildConfig({
24
+ * entries: ['src/index', 'src/cli'],
25
+ * rollup: {
26
+ * emitCJS: true, // Enable CJS output
27
+ * },
28
+ * });
29
+ * ```
30
+ *
31
+ * @example
32
+ * // File-to-file transpilation with mkdist
33
+ * ```ts
34
+ * export default makeUnbuildConfig({
35
+ * entries: [
36
+ * 'src/index',
37
+ * {
38
+ * builder: 'mkdist',
39
+ * input: 'src/components',
40
+ * outDir: 'dist/components',
41
+ * },
42
+ * ],
43
+ * });
44
+ * ```
45
+ */
46
+ declare function makeUnbuildConfig(c?: BuildConfig): BuildConfig[];
47
+
48
+ export { makeUnbuildConfig };
@@ -0,0 +1,48 @@
1
+ import { BuildConfig } from 'unbuild';
2
+
3
+ /**
4
+ * Creates an unbuild configuration with sensible defaults for Node.js libraries.
5
+ *
6
+ * Default configuration:
7
+ * - Entry: src/index (auto-inferred from package.json if omitted)
8
+ * - Output: dist/
9
+ * - ESM-only output (can be overridden for CJS)
10
+ * - TypeScript declarations (compatible mode)
11
+ * - Source maps enabled
12
+ * - Clean build directory
13
+ * - Parallel builds
14
+ * - Target: node18
15
+ *
16
+ * @param c - Partial unbuild config to override defaults
17
+ * @returns Complete unbuild configuration
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * import { makeUnbuildConfig } from '@adddog/build-configs/unbuild';
22
+ *
23
+ * export default makeUnbuildConfig({
24
+ * entries: ['src/index', 'src/cli'],
25
+ * rollup: {
26
+ * emitCJS: true, // Enable CJS output
27
+ * },
28
+ * });
29
+ * ```
30
+ *
31
+ * @example
32
+ * // File-to-file transpilation with mkdist
33
+ * ```ts
34
+ * export default makeUnbuildConfig({
35
+ * entries: [
36
+ * 'src/index',
37
+ * {
38
+ * builder: 'mkdist',
39
+ * input: 'src/components',
40
+ * outDir: 'dist/components',
41
+ * },
42
+ * ],
43
+ * });
44
+ * ```
45
+ */
46
+ declare function makeUnbuildConfig(c?: BuildConfig): BuildConfig[];
47
+
48
+ export { makeUnbuildConfig };
@@ -0,0 +1,37 @@
1
+ import { defineBuildConfig } from 'unbuild';
2
+
3
+ function makeUnbuildConfig(c = {}) {
4
+ return defineBuildConfig({
5
+ // Entry points - auto-inferred from package.json if not specified
6
+ entries: c.entries ?? ["src/index"],
7
+ // Output directory
8
+ outDir: "dist",
9
+ // TypeScript declarations
10
+ // 'compatible' generates .d.ts, .d.mts, .d.cts for maximum compatibility
11
+ declaration: "compatible",
12
+ // Source maps
13
+ sourcemap: true,
14
+ // Build behavior
15
+ clean: true,
16
+ parallel: true,
17
+ // Run multiple builders in parallel
18
+ failOnWarn: false,
19
+ // Rollup configuration
20
+ rollup: {
21
+ emitCJS: false,
22
+ // ESM-only by default, set to true for dual CJS+ESM
23
+ inlineDependencies: false,
24
+ // Don't bundle dependencies
25
+ esbuild: {
26
+ target: "node18",
27
+ minify: false
28
+ },
29
+ ...c.rollup
30
+ },
31
+ // Allow user overrides
32
+ ...c
33
+ });
34
+ }
35
+
36
+ export { makeUnbuildConfig };
37
+ //# sourceMappingURL=unbuild.config.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unbuild.config.mjs","sources":["../src/unbuild.config.ts"],"sourcesContent":["import type { BuildConfig } from \"unbuild\";\nimport { defineBuildConfig } from \"unbuild\";\n\n/**\n * Creates an unbuild configuration with sensible defaults for Node.js libraries.\n *\n * Default configuration:\n * - Entry: src/index (auto-inferred from package.json if omitted)\n * - Output: dist/\n * - ESM-only output (can be overridden for CJS)\n * - TypeScript declarations (compatible mode)\n * - Source maps enabled\n * - Clean build directory\n * - Parallel builds\n * - Target: node18\n *\n * @param c - Partial unbuild config to override defaults\n * @returns Complete unbuild configuration\n *\n * @example\n * ```ts\n * import { makeUnbuildConfig } from '@adddog/build-configs/unbuild';\n *\n * export default makeUnbuildConfig({\n * entries: ['src/index', 'src/cli'],\n * rollup: {\n * emitCJS: true, // Enable CJS output\n * },\n * });\n * ```\n *\n * @example\n * // File-to-file transpilation with mkdist\n * ```ts\n * export default makeUnbuildConfig({\n * entries: [\n * 'src/index',\n * {\n * builder: 'mkdist',\n * input: 'src/components',\n * outDir: 'dist/components',\n * },\n * ],\n * });\n * ```\n */\nexport function makeUnbuildConfig(c: BuildConfig = {}) {\n return defineBuildConfig({\n // Entry points - auto-inferred from package.json if not specified\n entries: c.entries ?? [\"src/index\"],\n\n // Output directory\n outDir: \"dist\",\n\n // TypeScript declarations\n // 'compatible' generates .d.ts, .d.mts, .d.cts for maximum compatibility\n declaration: \"compatible\",\n\n // Source maps\n sourcemap: true,\n\n // Build behavior\n clean: true,\n parallel: true, // Run multiple builders in parallel\n failOnWarn: false,\n\n // Rollup configuration\n rollup: {\n emitCJS: false, // ESM-only by default, set to true for dual CJS+ESM\n inlineDependencies: false, // Don't bundle dependencies\n esbuild: {\n target: \"node18\",\n minify: false,\n },\n ...c.rollup,\n },\n\n // Allow user overrides\n ...c,\n });\n}\n"],"names":[],"mappings":";;AA8CO,SAAS,iBAAA,CAAkB,CAAA,GAAiB,EAAC,EAAG;AACnD,EAAA,OAAO,iBAAA,CAAkB;AAAA;AAAA,IAErB,OAAA,EAAS,CAAA,CAAE,OAAA,IAAW,CAAC,WAAW,CAAA;AAAA;AAAA,IAGlC,MAAA,EAAQ,MAAA;AAAA;AAAA;AAAA,IAIR,WAAA,EAAa,YAAA;AAAA;AAAA,IAGb,SAAA,EAAW,IAAA;AAAA;AAAA,IAGX,KAAA,EAAO,IAAA;AAAA,IACP,QAAA,EAAU,IAAA;AAAA;AAAA,IACV,UAAA,EAAY,KAAA;AAAA;AAAA,IAGZ,MAAA,EAAQ;AAAA,MACJ,OAAA,EAAS,KAAA;AAAA;AAAA,MACT,kBAAA,EAAoB,KAAA;AAAA;AAAA,MACpB,OAAA,EAAS;AAAA,QACL,MAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAQ;AAAA,OACZ;AAAA,MACA,GAAG,CAAA,CAAE;AAAA,KACT;AAAA;AAAA,IAGA,GAAG;AAAA,GACN,CAAA;AACL;;;;"}
package/package.json ADDED
@@ -0,0 +1,82 @@
1
+ {
2
+ "name": "@adddog/build-configs",
3
+ "version": "0.0.1",
4
+ "description": "Reusable build configurations for tsup and unbuild",
5
+ "type": "module",
6
+ "author": "Sam Elie <sam@add.dog>",
7
+ "license": "MIT",
8
+ "bugs": {},
9
+ "keywords": [
10
+ "tsup",
11
+ "unbuild",
12
+ "build-config",
13
+ "typescript",
14
+ "bundler"
15
+ ],
16
+ "main": "./dist/index.mjs",
17
+ "module": "./dist/index.mjs",
18
+ "types": "./dist/index.d.ts",
19
+ "bin": {
20
+ "rad-build": "./dist/cli/index.mjs"
21
+ },
22
+ "exports": {
23
+ ".": {
24
+ "types": "./dist/index.d.ts",
25
+ "import": "./dist/index.mjs"
26
+ },
27
+ "./tsup": {
28
+ "types": "./dist/tsup.config.d.ts",
29
+ "import": "./dist/tsup.config.mjs"
30
+ },
31
+ "./unbuild": {
32
+ "types": "./dist/unbuild.config.d.ts",
33
+ "import": "./dist/unbuild.config.mjs"
34
+ },
35
+ "./presets": {
36
+ "types": "./dist/presets/index.d.ts",
37
+ "import": "./dist/presets/index.mjs"
38
+ }
39
+ },
40
+ "files": [
41
+ "dist",
42
+ "README.md",
43
+ "LICENSE"
44
+ ],
45
+ "dependencies": {
46
+ "@clack/prompts": "^0.8.2",
47
+ "cac": "^6.7.14",
48
+ "consola": "^3.4.2",
49
+ "defu": "^6.1.4",
50
+ "execa": "^9.6.0",
51
+ "jiti": "^2.6.1",
52
+ "picocolors": "^1.1.1",
53
+ "tsup": "^8.5.0",
54
+ "unbuild": "^3.6.1",
55
+ "zod": "^3.25.76"
56
+ },
57
+ "devDependencies": {
58
+ "@types/node": "^22.18.10",
59
+ "bumpp": "^10.3.1",
60
+ "eslint": "^9.37.0",
61
+ "typescript": "^5.9.3",
62
+ "@rad/eslint": "0.0.0",
63
+ "@rad/config": "0.0.0"
64
+ },
65
+ "publishConfig": {
66
+ "access": "public"
67
+ },
68
+ "private": false,
69
+ "engines": {
70
+ "node": ">= 22",
71
+ "pnpm": ">= 10",
72
+ "npm": ">= 11"
73
+ },
74
+ "scripts": {
75
+ "build": "unbuild",
76
+ "lint": "eslint .",
77
+ "lint:fix": "eslint --fix .",
78
+ "release": "bumpp",
79
+ "types": "tsc -p tsconfig.typecheck.json",
80
+ "knip": "knip"
81
+ }
82
+ }