-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathrollup.config.js
86 lines (76 loc) · 2.28 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
84
85
86
import { outdent } from 'outdent';
import alias from '@rollup/plugin-alias';
import commonJs from '@rollup/plugin-commonjs';
import nodeResolve from '@rollup/plugin-node-resolve';
import copy from 'rollup-plugin-copy';
import manifest from './package.json';
const banner = () => {
const year = new Date().getFullYear();
const version = (process?.env?.SEM_VER ?? manifest.version) // eslint-disable-line no-undef
.replace(/\*\//gm, ''); // Prevents injection
const comment = outdent`
* Evolv Client for JavaScript v${version} <https://github.com/evolv-ai/javascript-sdk>
*
* Copyright 2020-${year} Evolv Technology Solutions
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
`;
return `/*!\n ${comment}\n */\n`;
};
function rollupConfig(type, isNodeRuntime = false) {
const ext = type === 'esm'
? 'mjs'
: 'cjs'
const dir = isNodeRuntime
? 'node'
: 'browser'
return {
input: './src/index.js',
output: {
file: `./dist/${dir}/index.${ext}`,
format: type,
exports: 'named',
sourcemap: true,
banner
},
external: [
...Object.keys(manifest.peerDependencies || {}),
'http',
'https'
],
plugins: [
alias({
entries: [
{
find: './helpers/requests/index.js',
replacement: isNodeRuntime
? './helpers/requests/fetch-request'
: './helpers/requests/xhr-request'
}
]
}),
copy({
targets: [
{ src: 'src/types.d.ts', dest: 'dist' }
]
}),
nodeResolve(),
commonJs()
]
};
}
export default [
rollupConfig('esm', true),
rollupConfig('esm', false),
rollupConfig('cjs', false)
];