UNPKG

1.92 kBJavaScriptView Raw
1import * as path from 'path';
2
3import { nodeResolve } from '@rollup/plugin-node-resolve';
4
5
6const outputDir = process.env.OUTPUT_DIR || path.join(__dirname, 'dist');
7
8const noStrict = {
9 renderChunk(code) {
10 return code.replace("'use strict';", '');
11 }
12};
13
14const watchOptions = {
15 exclude: 'node_modules/**',
16 chokidar: {
17 alwaysStat: true,
18 usePolling: true
19 }
20};
21
22const wombat = {
23 input: 'src/wbWombat.js',
24 output: {
25 name: 'wombat',
26 file: path.join(outputDir, 'wombat.js'),
27 sourcemap: false,
28 format: 'iife'
29 },
30 watch: watchOptions,
31 plugins: [nodeResolve(), noStrict]
32};
33
34const wombatProxyMode = {
35 input: 'src/wbWombatProxyMode.js',
36 output: {
37 name: 'wombat',
38 file: path.join(outputDir, 'wombatProxyMode.js'),
39 sourcemap: false,
40 format: 'iife'
41 },
42 watch: watchOptions,
43 plugins: [noStrict]
44};
45
46const wombatWorker = {
47 input: 'src/wombatWorkers.js',
48 output: {
49 name: 'wombatWorkers',
50 file: path.join(outputDir, 'wombatWorkers.js'),
51 format: 'es',
52 sourcemap: false,
53 exports: 'none'
54 },
55 watch: watchOptions,
56 plugins: [noStrict]
57};
58
59const wombatAutoFetchWorker = {
60 input: 'src/autoFetchWorker.js',
61 output: {
62 name: 'autoFetchWorker',
63 file: path.join(outputDir, 'autoFetchWorker.js'),
64 format: 'es',
65 sourcemap: false,
66 exports: 'none'
67 },
68 watch: watchOptions,
69 plugins: [
70 {
71 renderChunk(code) {
72 if (!code.startsWith("'use strict';")) {
73 return "'use strict';\n" + code;
74 }
75 return code;
76 }
77 }
78 ]
79};
80
81let config;
82
83if (process.env.ALL) {
84 config = [wombat, wombatProxyMode, wombatWorker, wombatAutoFetchWorker];
85} else if (process.env.PROXY) {
86 config = wombatProxyMode;
87} else if (process.env.WORKER) {
88 config = wombatProxyMode;
89} else if (process.env.AUTO_WORKER) {
90 config = wombatAutoFetchWorker;
91} else {
92 config = wombat;
93}
94
95export default config;