1 | const fs = require('fs')
|
2 | const path = require('path')
|
3 |
|
4 | exports.identity = _ => _
|
5 |
|
6 | let pkg = {}
|
7 |
|
8 | try {
|
9 | pkg = require(path.resolve('package.json'))
|
10 | } catch (e) {}
|
11 |
|
12 | exports.isMonorepo =
|
13 | fs.existsSync(path.resolve('lerna.json')) || !!pkg.workspaces
|
14 |
|
15 | try {
|
16 | const pkgs = path.resolve('packages')
|
17 | exports.allowModules =
|
18 | exports.isMonorepo &&
|
19 | fs.readdirSync(pkgs).reduce((acc, pkg) => {
|
20 | const pkgJson = path.resolve(pkgs, pkg, 'package.json')
|
21 | return fs.existsSync(pkgJson) ? acc.concat(require(pkgJson).name) : acc
|
22 | }, [])
|
23 | } catch (e) {}
|
24 |
|
25 | try {
|
26 | exports.isSrcDirAvailable = fs.statSync(path.resolve('src')).isDirectory()
|
27 | } catch (e) {}
|
28 |
|
29 | try {
|
30 | exports.isSrcAppDirAvailable = fs
|
31 | .statSync(path.resolve('src/app'))
|
32 | .isDirectory()
|
33 | } catch (e) {}
|
34 |
|
35 | try {
|
36 |
|
37 | require.resolve('@angular/core')
|
38 | exports.isNgAvailable = true
|
39 | } catch (e) {}
|
40 |
|
41 | try {
|
42 |
|
43 | require.resolve('webpack')
|
44 | exports.isWebpackAvailable = true
|
45 | } catch (e) {}
|
46 |
|
47 |
|
48 | exports.webpackSpecVars = [
|
49 | '__resourceQuery',
|
50 | '__non_webpack_require__',
|
51 | '__webpack_chunk_load__',
|
52 | '__webpack_hash__',
|
53 | '__webpack_modules__',
|
54 | '__webpack_public_path__',
|
55 | '__webpack_require__',
|
56 | 'DEBUG',
|
57 | ]
|
58 |
|
59 | try {
|
60 |
|
61 | require.resolve('browserslist')
|
62 | exports.isBrowserslistEnabled = pkg.devDependencies.browserslist
|
63 | } catch (e) {}
|
64 |
|
65 | exports.magicNumbers = [
|
66 | -1,
|
67 | 0,
|
68 | 1,
|
69 | 2,
|
70 | 5,
|
71 | 7,
|
72 | 10,
|
73 | 12,
|
74 | 15,
|
75 | 20,
|
76 | 24,
|
77 | 30,
|
78 | 50,
|
79 | 60,
|
80 | 100,
|
81 | 365,
|
82 | 500,
|
83 | 1000,
|
84 | 1024,
|
85 | 3600,
|
86 | ]
|