forked from codesandbox/codesandbox-client
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathis-babel-7.ts
More file actions
56 lines (46 loc) · 1.21 KB
/
is-babel-7.ts
File metadata and controls
56 lines (46 loc) · 1.21 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
55
56
import semver from 'semver';
import { Dependencies } from '../templates/template';
function isCRAVersion2(
dependencies: Dependencies,
devDependencies: Dependencies
) {
const reactScriptsVersion =
dependencies['react-scripts'] || devDependencies['react-scripts'];
if (reactScriptsVersion) {
return (
/^[a-z]/.test(reactScriptsVersion) ||
semver.intersects(reactScriptsVersion, '^2.0.0') ||
semver.intersects(reactScriptsVersion, '^3.0.0')
);
}
return false;
}
export function isBabel7(
dependencies: Dependencies = {},
devDependencies: Dependencies = {}
) {
if (
dependencies['@vue/cli-plugin-babel'] ||
devDependencies['@vue/cli-plugin-babel']
) {
return true;
}
if (devDependencies['@babel/core'] || dependencies['@babel/core']) {
return true;
}
if (dependencies.svelte || devDependencies.svelte) {
const ver = dependencies.svelte || devDependencies.svelte;
const [maj] = ver.split('.');
if (maj) {
return +maj > 2;
}
return false;
}
if ('typescript' in devDependencies && !dependencies['@angular/core']) {
return true;
}
if (isCRAVersion2(dependencies, devDependencies)) {
return true;
}
return false;
}