-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathtsup.config.ts
52 lines (50 loc) · 1.19 KB
/
tsup.config.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import { defineConfig, Format } from 'tsup';
import { umdWrapper } from 'esbuild-plugin-umd-wrapper';
// https://github.com/egoist/tsup/blob/769aa49cae16cc1713992970db966d6514878e06/src/utils.ts#L142-L167
export function defaultOutExtension({
format,
pkgType,
}: {
format: Format;
pkgType?: string;
}): { js: string; dts: string } {
let jsExtension = '.js';
let dtsExtension = '.d.ts';
const isModule = pkgType === 'module';
if (isModule && format === 'cjs') {
jsExtension = '.cjs';
dtsExtension = '.d.cts';
}
if (!isModule && format === 'esm') {
jsExtension = '.mjs';
dtsExtension = '.d.mts';
}
if (format === 'iife') {
jsExtension = '.global.js';
}
return {
js: jsExtension,
dts: dtsExtension,
};
}
export default defineConfig(() => ({
entry: ['src/index.ts'],
format: ['cjs', 'esm', 'umd'] as Format[],
outExtension(params) {
if ((params.format as Format | 'umd') === 'umd') {
return {
js: '.umd.js',
};
}
return defaultOutExtension(params);
},
dts: true,
esbuildPlugins: [
umdWrapper({
libraryName: 'useCustomCompare',
external: ['react'],
}),
],
sourcemap: true,
clean: true,
}));