-
-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathtsup.config.ts
More file actions
54 lines (48 loc) · 1.77 KB
/
tsup.config.ts
File metadata and controls
54 lines (48 loc) · 1.77 KB
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
53
54
/* eslint-disable @typescript-eslint/explicit-function-return-type -- Tsup config convention */
/* eslint-disable @typescript-eslint/naming-convention -- __PACKAGE_VERSION__ and __CONNECT_MULTICHAIN_PEER_VERSION_RANGE__ are esbuild define conventions */
import { defineConfig } from 'tsup';
import packageJson from './package.json';
import { resolveWorkspaceRange } from '../../scripts/resolve-workspace-range';
import multichainPackageJson from '../connect-multichain/package.json';
const pkg: any = packageJson as any;
const multichainPkg: any = multichainPackageJson as any;
const deps = Object.keys(pkg.dependencies ?? {});
const peerDeps = Object.keys(pkg.peerDependencies ?? {});
const external = [...deps, ...peerDeps];
const entryName = pkg.name.replace('@metamask/', '');
const multichainPeerRange = resolveWorkspaceRange(
pkg.peerDependencies?.['@metamask/connect-multichain'],
multichainPkg.version,
);
export default defineConfig([
{
entry: { [entryName]: 'src/index.ts' },
outDir: 'dist/browser/es',
format: 'esm',
platform: 'browser',
bundle: true,
clean: true,
splitting: false,
sourcemap: true,
external,
tsconfig: './tsconfig.json',
define: {
__PACKAGE_VERSION__: JSON.stringify(pkg.version),
__CONNECT_MULTICHAIN_PEER_VERSION_RANGE__:
JSON.stringify(multichainPeerRange),
},
esbuildOptions: (options) => {
options.platform = 'browser';
options.mainFields = ['browser', 'module', 'main'];
options.conditions = ['browser'];
options.loader = { ...options.loader, '.svg': 'dataurl' };
options.outExtension = { '.js': '.mjs' };
},
},
{
entry: { index: 'src/index.ts' },
outDir: 'dist/types',
tsconfig: './tsconfig.types.json',
dts: { only: true },
},
]);