-
Notifications
You must be signed in to change notification settings - Fork 0
/
rollup.config.js
83 lines (78 loc) · 1.87 KB
/
rollup.config.js
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
/** @type {import('rollup').RollupOptions} */
import dts from 'rollup-plugin-dts';
import copy from 'rollup-plugin-copy';
import typescript from '@rollup/plugin-typescript';
import alias from '@rollup/plugin-alias';
import json from '@rollup/plugin-json';
import { writeFile, mkdir } from 'fs/promises';
import path from 'path';
const pathAliases = {
'@/*': ['./src/*'],
};
const createCommonJsPackage = () => {
const pkg = { type: 'commonjs' };
return {
name: 'cjs-package',
buildEnd: async () => {
await mkdir('./dist/cjs', { recursive: true });
await writeFile('./dist/cjs/package.json', JSON.stringify(pkg, null, 2));
},
};
};
const jsConfig = {
external: ['@sap/hana-client', '@sap/xsenv'],
input: 'src/index.ts',
output: [
{
file: 'dist/cjs/index.js',
format: 'cjs',
sourcemap: true,
},
{
file: 'dist/esm/index.js',
format: 'esm',
sourcemap: true,
},
],
plugins: [
json(),
alias({
entries: Object.entries(pathAliases).map(([find, replacement]) => ({
find,
replacement: path.resolve(path.dirname(new URL(import.meta.url).pathname), ...replacement),
})),
}),
typescript({
tsconfig: './tsconfig.json',
}),
copy({
targets: [
{
src: './package.json',
dest: 'dist',
},
],
}),
createCommonJsPackage(),
],
};
const dtsConfig = {
external: ['@sap/hana-client', '@sap/xsenv'],
input: './src/index.ts',
plugins: [
alias({
entries: Object.entries(pathAliases).map(([find, replacement]) => ({
find,
replacement: path.resolve(path.dirname(new URL(import.meta.url).pathname), ...replacement),
})),
}),
dts({
tsconfig: './tsconfig.json',
}),
],
output: {
format: 'es',
file: './dist/index.d.ts',
},
};
export default [jsConfig, dtsConfig];