-
Notifications
You must be signed in to change notification settings - Fork 0
/
rollup.config.cjs
112 lines (109 loc) · 3.03 KB
/
rollup.config.cjs
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
const {nodeResolve} = require('@rollup/plugin-node-resolve');
const commonjs = require('@rollup/plugin-commonjs');
const json = require('@rollup/plugin-json');
const terser = require('@rollup/plugin-terser');
const typescript = require('@rollup/plugin-typescript');
const pkg = require('./package.json');
const {defineConfig} = require('rollup');
const banner = '/*! ' + pkg.name + ' v' + pkg.version + ' */';
const iifeGlobals = {
'@hebcal/core': 'hebcal',
'@hebcal/core/dist/esm/locale': 'hebcal',
'@hebcal/core/dist/esm/holidays': 'hebcal',
'@hebcal/core/dist/esm/sedra': 'hebcal',
'@hebcal/core/dist/esm/event': 'hebcal',
'@hebcal/core/dist/esm/ParshaEvent': 'hebcal',
'@hebcal/core/dist/esm/reformatTimeStr': 'hebcal',
'@hebcal/core/dist/esm/pkgVersion': 'hebcal',
'@hebcal/core/dist/esm/zmanim': 'hebcal',
'@hebcal/hdate': 'hebcal',
'@hebcal/leyning': 'hebcal__leyning',
'@hebcal/leyning/dist/esm/leyning': 'hebcal__leyning',
'@hebcal/leyning/dist/esm/csv': 'hebcal__leyning',
'@hebcal/leyning/dist/esm/summary': 'hebcal__leyning',
'@hebcal/leyning/dist/esm/clone': 'hebcal__leyning',
'@hebcal/leyning/dist/esm/getLeyningKeyForEvent': 'hebcal__leyning',
'@hebcal/leyning/dist/esm/specialReadings': 'hebcal__leyning',
'@hebcal/leyning/dist/esm/common': 'hebcal__leyning',
'@hebcal/leyning/dist/esm/getLeyningForHoliday': 'hebcal__leyning',
'@hebcal/triennial': 'hebcal__triennial',
};
const tsOptions = {rootDir: './src'};
module.exports = defineConfig([
{
input: 'src/index.ts',
output: [
{
dir: 'dist/esm',
format: 'es',
preserveModules: true,
preserveModulesRoot: 'src',
name: pkg.name,
banner,
},
],
plugins: [
json({compact: true, preferConst: true}),
typescript({...tsOptions, outDir: 'dist/esm'}),
nodeResolve(),
commonjs(),
],
external: [/@hebcal/],
},
{
input: 'src/index.ts',
output: [
{
file: 'dist/bundle.js',
format: 'iife',
name: 'hebcal__rest_api',
globals: iifeGlobals,
indent: false,
banner,
},
{
file: 'dist/bundle.min.js',
format: 'iife',
name: 'hebcal__rest_api',
globals: iifeGlobals,
plugins: [terser()],
banner,
},
],
plugins: [
json({compact: true, preferConst: true}),
typescript(),
nodeResolve(),
commonjs(),
],
external: [/@hebcal/],
},
{
input: 'src/fullcalendar.ts',
output: [
{
file: 'dist/fullcalendar.js',
format: 'iife',
name: 'hebcalFullCalendar',
globals: iifeGlobals,
indent: false,
banner,
},
{
file: 'dist/fullcalendar.min.js',
format: 'iife',
name: 'hebcalFullCalendar',
globals: iifeGlobals,
plugins: [terser()],
banner,
},
],
plugins: [
json({compact: true, preferConst: true}),
typescript(),
nodeResolve(),
commonjs(),
],
external: [/@hebcal/],
},
]);