@vitus-labs/tools-core 0.46.0 → 1.0.1-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/{vitus-tools-core.module.js → index.js} +121 -119
- package/lib/index.js.map +1 -0
- package/lib/types/index.d.ts +17 -14
- package/package.json +12 -16
- package/src/index.ts +35 -28
- package/tsconfig.json +8 -5
- package/tsconfig.tsbuildinfo +1 -0
- package/.babelrc.js +0 -1
- package/lib/analysis/vitus-tools-core.js.html +0 -6638
- package/lib/analysis/vitus-tools-core.module.js.html +0 -6638
- package/lib/index.d.ts +0 -21
- package/lib/types/index.d.ts.map +0 -1
- package/lib/vitus-tools-core.js +0 -135
- package/lib/vitus-tools-core.js.map +0 -1
- package/lib/vitus-tools-core.module.js.map +0 -1
|
@@ -1,119 +1,121 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import
|
|
3
|
-
import { get, merge } from 'lodash';
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
data =
|
|
20
|
-
}
|
|
21
|
-
catch (e) {
|
|
22
|
-
// ignore eror
|
|
23
|
-
}
|
|
24
|
-
// try to read a plain json file like tsconfig.json
|
|
25
|
-
if (!data) {
|
|
26
|
-
try {
|
|
27
|
-
data = JSON.parse(fs.readFileSync(file, 'utf-8'));
|
|
28
|
-
}
|
|
29
|
-
catch (e) {
|
|
30
|
-
// ignore error
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return data;
|
|
34
|
-
};
|
|
35
|
-
// --------------------------------------------------------
|
|
36
|
-
// GET PACKAGE.JSON info
|
|
37
|
-
// --------------------------------------------------------
|
|
38
|
-
const getPackageJSON = () => {
|
|
39
|
-
const data = loadFileToJSON(PACKAGE_FILE_NAME);
|
|
40
|
-
return data;
|
|
41
|
-
};
|
|
42
|
-
// --------------------------------------------------------
|
|
43
|
-
// PACKAGE.json parsing functions
|
|
44
|
-
// --------------------------------------------------------
|
|
45
|
-
// GET LIST OF DEPENDENCIES from package.json
|
|
46
|
-
const getDependenciesList = (types) => {
|
|
47
|
-
const pkg = getPackageJSON();
|
|
48
|
-
let result = [];
|
|
49
|
-
types.forEach((item) => {
|
|
50
|
-
const data = pkg[item];
|
|
51
|
-
result = [...result, ...Object.keys(data || {})];
|
|
52
|
-
});
|
|
53
|
-
return result;
|
|
54
|
-
};
|
|
55
|
-
// parse namespace name
|
|
56
|
-
// const parseNamespace = (name) =>
|
|
57
|
-
// name.startsWith('@') ? name.split('/')[0] : ''
|
|
58
|
-
// converts package name to umd or iife valid format
|
|
59
|
-
// example: napespace-package-name => namespacePackageName
|
|
60
|
-
const camelspaceBundleName = (name) => {
|
|
61
|
-
const parsedName = name.replace('@', '').replace('/', '-');
|
|
62
|
-
const arrayStringsCamel = (arr) => arr.map((item, i) => i === 0
|
|
63
|
-
? item
|
|
64
|
-
: item.charAt(0).toUpperCase() + item.substr(1).toLowerCase());
|
|
65
|
-
const arr = parsedName.split('-');
|
|
66
|
-
const result = arrayStringsCamel(arr).join('');
|
|
67
|
-
return result;
|
|
68
|
-
};
|
|
69
|
-
// --------------------------------------------------------
|
|
70
|
-
// PACKAGE JSON DATA
|
|
71
|
-
// --------------------------------------------------------
|
|
72
|
-
const getPkgData = () => {
|
|
73
|
-
const pkg = getPackageJSON();
|
|
74
|
-
const { name } = pkg;
|
|
75
|
-
// const namespace = parseNamespace(name)
|
|
76
|
-
return {
|
|
77
|
-
...pkg,
|
|
78
|
-
// nameWithoutPrefix: name.replace(namespace, '').replace('/', ''),
|
|
79
|
-
// namespace,
|
|
80
|
-
// namespaceName: namespace.replace('@', ''),
|
|
81
|
-
// rootPath: findFilePath('package.json'),
|
|
82
|
-
bundleName: camelspaceBundleName(name),
|
|
83
|
-
externalDependencies: getDependenciesList([
|
|
84
|
-
'dependencies',
|
|
85
|
-
'peerDependencies',
|
|
86
|
-
]),
|
|
87
|
-
};
|
|
88
|
-
};
|
|
89
|
-
// --------------------------------------------------------
|
|
90
|
-
// LOAD EXTERNAL CONFIGURATION
|
|
91
|
-
// --------------------------------------------------------
|
|
92
|
-
const getExternalConfig = () => loadFileToJSON(VITUS_LABS_FILE_NAME);
|
|
93
|
-
const loadConfigParam = (filename) => (key, defaultValue = {}) => {
|
|
94
|
-
const externalConfig = loadFileToJSON(filename);
|
|
95
|
-
return
|
|
96
|
-
};
|
|
97
|
-
const loadVLToolsConfig = (
|
|
98
|
-
const externalConfig = getExternalConfig();
|
|
99
|
-
const
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
},
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import { findUpSync } from 'find-up';
|
|
3
|
+
import { get as _get, merge } from 'lodash-es';
|
|
4
|
+
const VITUS_LABS_FILE_NAME = 'vl-tools.config.mjs';
|
|
5
|
+
const PACKAGE_FILE_NAME = 'package.json';
|
|
6
|
+
const TYPESCRIPT_FILE_NAME = 'tsconfig.json';
|
|
7
|
+
// --------------------------------------------------------
|
|
8
|
+
// FIND & READ file helpers
|
|
9
|
+
// --------------------------------------------------------
|
|
10
|
+
const findFile = async (filename) => findUpSync(filename, { type: 'file' });
|
|
11
|
+
const loadFileToJSON = async (filename) => {
|
|
12
|
+
const file = await findFile(filename);
|
|
13
|
+
if (!file)
|
|
14
|
+
return {};
|
|
15
|
+
let data;
|
|
16
|
+
// try to read an exported module first
|
|
17
|
+
try {
|
|
18
|
+
const importedFile = await import(file);
|
|
19
|
+
data = importedFile.default;
|
|
20
|
+
}
|
|
21
|
+
catch (e) {
|
|
22
|
+
// ignore eror
|
|
23
|
+
}
|
|
24
|
+
// try to read a plain json file like tsconfig.json
|
|
25
|
+
if (!data) {
|
|
26
|
+
try {
|
|
27
|
+
data = JSON.parse(fs.readFileSync(file, 'utf-8'));
|
|
28
|
+
}
|
|
29
|
+
catch (e) {
|
|
30
|
+
// ignore error
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return data;
|
|
34
|
+
};
|
|
35
|
+
// --------------------------------------------------------
|
|
36
|
+
// GET PACKAGE.JSON info
|
|
37
|
+
// --------------------------------------------------------
|
|
38
|
+
const getPackageJSON = async () => {
|
|
39
|
+
const data = await loadFileToJSON(PACKAGE_FILE_NAME);
|
|
40
|
+
return data;
|
|
41
|
+
};
|
|
42
|
+
// --------------------------------------------------------
|
|
43
|
+
// PACKAGE.json parsing functions
|
|
44
|
+
// --------------------------------------------------------
|
|
45
|
+
// GET LIST OF DEPENDENCIES from package.json
|
|
46
|
+
const getDependenciesList = async (types) => {
|
|
47
|
+
const pkg = await getPackageJSON();
|
|
48
|
+
let result = [];
|
|
49
|
+
types.forEach((item) => {
|
|
50
|
+
const data = pkg[item];
|
|
51
|
+
result = [...result, ...Object.keys(data || {})];
|
|
52
|
+
});
|
|
53
|
+
return result;
|
|
54
|
+
};
|
|
55
|
+
// parse namespace name
|
|
56
|
+
// const parseNamespace = (name) =>
|
|
57
|
+
// name.startsWith('@') ? name.split('/')[0] : ''
|
|
58
|
+
// converts package name to umd or iife valid format
|
|
59
|
+
// example: napespace-package-name => namespacePackageName
|
|
60
|
+
const camelspaceBundleName = (name) => {
|
|
61
|
+
const parsedName = name.replace('@', '').replace('/', '-');
|
|
62
|
+
const arrayStringsCamel = (arr) => arr.map((item, i) => i === 0
|
|
63
|
+
? item
|
|
64
|
+
: item.charAt(0).toUpperCase() + item.substr(1).toLowerCase());
|
|
65
|
+
const arr = parsedName.split('-');
|
|
66
|
+
const result = arrayStringsCamel(arr).join('');
|
|
67
|
+
return result;
|
|
68
|
+
};
|
|
69
|
+
// --------------------------------------------------------
|
|
70
|
+
// PACKAGE JSON DATA
|
|
71
|
+
// --------------------------------------------------------
|
|
72
|
+
const getPkgData = async () => {
|
|
73
|
+
const pkg = await getPackageJSON();
|
|
74
|
+
const { name } = pkg;
|
|
75
|
+
// const namespace = parseNamespace(name)
|
|
76
|
+
return {
|
|
77
|
+
...pkg,
|
|
78
|
+
// nameWithoutPrefix: name.replace(namespace, '').replace('/', ''),
|
|
79
|
+
// namespace,
|
|
80
|
+
// namespaceName: namespace.replace('@', ''),
|
|
81
|
+
// rootPath: findFilePath('package.json'),
|
|
82
|
+
bundleName: camelspaceBundleName(name),
|
|
83
|
+
externalDependencies: await getDependenciesList([
|
|
84
|
+
'dependencies',
|
|
85
|
+
'peerDependencies',
|
|
86
|
+
]),
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
// --------------------------------------------------------
|
|
90
|
+
// LOAD EXTERNAL CONFIGURATION
|
|
91
|
+
// --------------------------------------------------------
|
|
92
|
+
const getExternalConfig = async () => loadFileToJSON(VITUS_LABS_FILE_NAME);
|
|
93
|
+
const loadConfigParam = (filename) => async (key, defaultValue = {}) => {
|
|
94
|
+
const externalConfig = await loadFileToJSON(filename);
|
|
95
|
+
return _get(externalConfig, key, defaultValue);
|
|
96
|
+
};
|
|
97
|
+
const loadVLToolsConfig = async () => {
|
|
98
|
+
const externalConfig = await getExternalConfig();
|
|
99
|
+
const cloneAndEnhance = (object) => ({
|
|
100
|
+
get config() {
|
|
101
|
+
return object;
|
|
102
|
+
},
|
|
103
|
+
get: (param, defaultValue) => _get(object, param, defaultValue || {}),
|
|
104
|
+
merge: (param) => cloneAndEnhance(merge(param, object)),
|
|
105
|
+
});
|
|
106
|
+
const getOutput = (key) => {
|
|
107
|
+
const result = _get(externalConfig, key, {});
|
|
108
|
+
return cloneAndEnhance(result);
|
|
109
|
+
};
|
|
110
|
+
return getOutput;
|
|
111
|
+
};
|
|
112
|
+
const swapGlobals = (globals) => Object.entries(globals).reduce((acc, [key, value]) => {
|
|
113
|
+
// eslint-disable-next-line no-param-reassign
|
|
114
|
+
acc[value] = key;
|
|
115
|
+
return acc;
|
|
116
|
+
}, {});
|
|
117
|
+
const PKG = await getPkgData();
|
|
118
|
+
const VL_CONFIG = await loadVLToolsConfig();
|
|
119
|
+
const TS_CONFIG = await loadFileToJSON(TYPESCRIPT_FILE_NAME);
|
|
120
|
+
export { findFile, loadConfigParam, loadFileToJSON, loadVLToolsConfig, swapGlobals, PKG, VL_CONFIG, TS_CONFIG, };
|
|
121
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/types/index.d.ts
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
declare const findFile: (filename: string) => string | undefined
|
|
2
|
-
declare const loadFileToJSON: (filename: string) => any
|
|
3
|
-
declare const loadConfigParam: (filename: string) => (key: string, defaultValue?: {}) => any
|
|
4
|
-
declare const loadVLToolsConfig: (key: string) => {
|
|
5
|
-
readonly config: any;
|
|
6
|
-
get: (param: string, defaultValue?: any) => any;
|
|
7
|
-
merge: (param: Record<string, any>) => any;
|
|
8
|
-
}
|
|
9
|
-
declare const swapGlobals: (globals: Record<string, string>) => {};
|
|
10
|
-
declare const PKG: any;
|
|
11
|
-
declare const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
declare const findFile: (filename: string) => Promise<string | undefined>;
|
|
2
|
+
declare const loadFileToJSON: (filename: string) => Promise<any>;
|
|
3
|
+
declare const loadConfigParam: (filename: string) => (key: string, defaultValue?: {}) => Promise<any>;
|
|
4
|
+
declare const loadVLToolsConfig: () => Promise<(key: string) => {
|
|
5
|
+
readonly config: any;
|
|
6
|
+
get: (param: string, defaultValue?: any) => any;
|
|
7
|
+
merge: (param: Record<string, any>) => any;
|
|
8
|
+
}>;
|
|
9
|
+
declare const swapGlobals: (globals: Record<string, string>) => {};
|
|
10
|
+
declare const PKG: any;
|
|
11
|
+
declare const VL_CONFIG: (key: string) => {
|
|
12
|
+
readonly config: any;
|
|
13
|
+
get: (param: string, defaultValue?: any) => any;
|
|
14
|
+
merge: (param: Record<string, any>) => any;
|
|
15
|
+
};
|
|
16
|
+
declare const TS_CONFIG: any;
|
|
17
|
+
export { findFile, loadConfigParam, loadFileToJSON, loadVLToolsConfig, swapGlobals, PKG, VL_CONFIG, TS_CONFIG, };
|
package/package.json
CHANGED
|
@@ -1,36 +1,32 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vitus-labs/tools-core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.1-alpha.10",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "Vit Bokisch <vit@bokisch.com>",
|
|
6
6
|
"maintainers": [
|
|
7
7
|
"Vit Bokisch <vit@bokisch.com>"
|
|
8
8
|
],
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"types": "lib/index.d.ts",
|
|
9
|
+
"type": "module",
|
|
10
|
+
"exports": "./lib/index.js",
|
|
11
|
+
"types": "./lib/types/index.d.ts",
|
|
12
12
|
"engines": {
|
|
13
|
-
"node": ">=
|
|
13
|
+
"node": ">= 16"
|
|
14
14
|
},
|
|
15
15
|
"publishConfig": {
|
|
16
16
|
"access": "public"
|
|
17
17
|
},
|
|
18
18
|
"scripts": {
|
|
19
19
|
"prepublish": "yarn build",
|
|
20
|
-
"build": "
|
|
21
|
-
"build:watch": "yarn vl_build-watch",
|
|
22
|
-
"lint:ts": "eslint src/*",
|
|
23
|
-
"lint": "yarn lint:ts"
|
|
20
|
+
"build": "tsc"
|
|
24
21
|
},
|
|
25
22
|
"dependencies": {
|
|
26
|
-
"find-up": "
|
|
27
|
-
"lodash": "^4.17.21"
|
|
23
|
+
"find-up": "^6.3.0",
|
|
24
|
+
"lodash-es": "^4.17.21"
|
|
28
25
|
},
|
|
29
26
|
"devDependencies": {
|
|
30
|
-
"@
|
|
31
|
-
"@vitus-labs/tools-
|
|
32
|
-
"
|
|
33
|
-
"@vitus-labs/tools-typescript": "0.46.0"
|
|
27
|
+
"@types/lodash-es": "^4.17.8",
|
|
28
|
+
"@vitus-labs/tools-typescript": "1.0.1-alpha.10",
|
|
29
|
+
"typescript": "^5.1.6"
|
|
34
30
|
},
|
|
35
|
-
"gitHead": "
|
|
31
|
+
"gitHead": "476c5e7fb8924cc57f4c19d5586eb6cbc9839f44"
|
|
36
32
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import fs from 'fs'
|
|
2
|
-
import
|
|
3
|
-
import { get as _get, merge } from 'lodash'
|
|
1
|
+
import fs from 'node:fs'
|
|
2
|
+
import { findUpSync } from 'find-up'
|
|
3
|
+
import { get as _get, merge } from 'lodash-es'
|
|
4
4
|
|
|
5
|
-
const VITUS_LABS_FILE_NAME = 'vl-tools.config.
|
|
5
|
+
const VITUS_LABS_FILE_NAME = 'vl-tools.config.mjs'
|
|
6
6
|
const PACKAGE_FILE_NAME = 'package.json'
|
|
7
|
-
const TYPESCRIPT_FILE_NAME = '
|
|
7
|
+
const TYPESCRIPT_FILE_NAME = 'tsconfig.json'
|
|
8
8
|
|
|
9
9
|
// --------------------------------------------------------
|
|
10
10
|
// FIND & READ file helpers
|
|
11
11
|
// --------------------------------------------------------
|
|
12
|
-
const findFile = (filename: string) =>
|
|
12
|
+
const findFile = async (filename: string) =>
|
|
13
|
+
findUpSync(filename, { type: 'file' })
|
|
13
14
|
|
|
14
|
-
const loadFileToJSON = (filename: string) => {
|
|
15
|
-
const file = findFile(filename)
|
|
15
|
+
const loadFileToJSON = async (filename: string) => {
|
|
16
|
+
const file = await findFile(filename)
|
|
16
17
|
|
|
17
18
|
if (!file) return {}
|
|
18
19
|
|
|
@@ -20,7 +21,8 @@ const loadFileToJSON = (filename: string) => {
|
|
|
20
21
|
|
|
21
22
|
// try to read an exported module first
|
|
22
23
|
try {
|
|
23
|
-
|
|
24
|
+
const importedFile = await import(file)
|
|
25
|
+
data = importedFile.default
|
|
24
26
|
} catch (e) {
|
|
25
27
|
// ignore eror
|
|
26
28
|
}
|
|
@@ -40,8 +42,8 @@ const loadFileToJSON = (filename: string) => {
|
|
|
40
42
|
// --------------------------------------------------------
|
|
41
43
|
// GET PACKAGE.JSON info
|
|
42
44
|
// --------------------------------------------------------
|
|
43
|
-
const getPackageJSON = () => {
|
|
44
|
-
const data = loadFileToJSON(PACKAGE_FILE_NAME)
|
|
45
|
+
const getPackageJSON = async () => {
|
|
46
|
+
const data = await loadFileToJSON(PACKAGE_FILE_NAME)
|
|
45
47
|
|
|
46
48
|
return data
|
|
47
49
|
}
|
|
@@ -51,8 +53,8 @@ const getPackageJSON = () => {
|
|
|
51
53
|
// --------------------------------------------------------
|
|
52
54
|
|
|
53
55
|
// GET LIST OF DEPENDENCIES from package.json
|
|
54
|
-
const getDependenciesList = (types: any) => {
|
|
55
|
-
const pkg = getPackageJSON()
|
|
56
|
+
const getDependenciesList = async (types: any) => {
|
|
57
|
+
const pkg = await getPackageJSON()
|
|
56
58
|
let result: any = []
|
|
57
59
|
|
|
58
60
|
types.forEach((item: any) => {
|
|
@@ -86,8 +88,8 @@ const camelspaceBundleName = (name: string) => {
|
|
|
86
88
|
// --------------------------------------------------------
|
|
87
89
|
// PACKAGE JSON DATA
|
|
88
90
|
// --------------------------------------------------------
|
|
89
|
-
const getPkgData = () => {
|
|
90
|
-
const pkg = getPackageJSON()
|
|
91
|
+
const getPkgData = async () => {
|
|
92
|
+
const pkg = await getPackageJSON()
|
|
91
93
|
const { name } = pkg
|
|
92
94
|
// const namespace = parseNamespace(name)
|
|
93
95
|
|
|
@@ -98,7 +100,7 @@ const getPkgData = () => {
|
|
|
98
100
|
// namespaceName: namespace.replace('@', ''),
|
|
99
101
|
// rootPath: findFilePath('package.json'),
|
|
100
102
|
bundleName: camelspaceBundleName(name),
|
|
101
|
-
externalDependencies: getDependenciesList([
|
|
103
|
+
externalDependencies: await getDependenciesList([
|
|
102
104
|
'dependencies',
|
|
103
105
|
'peerDependencies',
|
|
104
106
|
]),
|
|
@@ -108,31 +110,36 @@ const getPkgData = () => {
|
|
|
108
110
|
// --------------------------------------------------------
|
|
109
111
|
// LOAD EXTERNAL CONFIGURATION
|
|
110
112
|
// --------------------------------------------------------
|
|
111
|
-
const getExternalConfig = () => loadFileToJSON(VITUS_LABS_FILE_NAME)
|
|
113
|
+
const getExternalConfig = async () => loadFileToJSON(VITUS_LABS_FILE_NAME)
|
|
112
114
|
|
|
113
115
|
const loadConfigParam =
|
|
114
116
|
(filename: string) =>
|
|
115
|
-
(key: string, defaultValue = {}) => {
|
|
116
|
-
const externalConfig = loadFileToJSON(filename)
|
|
117
|
+
async (key: string, defaultValue = {}) => {
|
|
118
|
+
const externalConfig = await loadFileToJSON(filename)
|
|
117
119
|
|
|
118
120
|
return _get(externalConfig, key, defaultValue)
|
|
119
121
|
}
|
|
120
122
|
|
|
121
|
-
const loadVLToolsConfig = (
|
|
122
|
-
const externalConfig = getExternalConfig()
|
|
123
|
-
const result = _get(externalConfig, key, {})
|
|
123
|
+
const loadVLToolsConfig = async () => {
|
|
124
|
+
const externalConfig = await getExternalConfig()
|
|
124
125
|
|
|
125
126
|
const cloneAndEnhance = (object) => ({
|
|
126
127
|
get config() {
|
|
127
128
|
return object
|
|
128
129
|
},
|
|
129
130
|
get: (param: string, defaultValue?: any) =>
|
|
130
|
-
_get(object, param, defaultValue),
|
|
131
|
+
_get(object, param, defaultValue || {}),
|
|
131
132
|
merge: (param: Record<string, any>) =>
|
|
132
133
|
cloneAndEnhance(merge(param, object)),
|
|
133
134
|
})
|
|
134
135
|
|
|
135
|
-
|
|
136
|
+
const getOutput = (key: string) => {
|
|
137
|
+
const result = _get(externalConfig, key, {})
|
|
138
|
+
|
|
139
|
+
return cloneAndEnhance(result)
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
return getOutput
|
|
136
143
|
}
|
|
137
144
|
|
|
138
145
|
const swapGlobals = (globals: Record<string, string>) =>
|
|
@@ -142,9 +149,9 @@ const swapGlobals = (globals: Record<string, string>) =>
|
|
|
142
149
|
return acc
|
|
143
150
|
}, {})
|
|
144
151
|
|
|
145
|
-
const PKG = getPkgData()
|
|
146
|
-
const
|
|
147
|
-
const TS_CONFIG = loadFileToJSON(TYPESCRIPT_FILE_NAME)
|
|
152
|
+
const PKG = await getPkgData()
|
|
153
|
+
const VL_CONFIG = await loadVLToolsConfig()
|
|
154
|
+
const TS_CONFIG = await loadFileToJSON(TYPESCRIPT_FILE_NAME)
|
|
148
155
|
|
|
149
156
|
export {
|
|
150
157
|
findFile,
|
|
@@ -153,6 +160,6 @@ export {
|
|
|
153
160
|
loadVLToolsConfig,
|
|
154
161
|
swapGlobals,
|
|
155
162
|
PKG,
|
|
156
|
-
|
|
163
|
+
VL_CONFIG,
|
|
157
164
|
TS_CONFIG,
|
|
158
165
|
}
|
package/tsconfig.json
CHANGED
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"extends": "@vitus-labs/tools-typescript/lib",
|
|
3
3
|
"compilerOptions": {
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
4
|
+
"target": "ESNext",
|
|
5
|
+
"module": "ESNext",
|
|
6
|
+
"moduleResolution": "Bundler",
|
|
7
7
|
"outDir": "lib",
|
|
8
|
+
"rootDir": "src",
|
|
8
9
|
"baseUrl": ".",
|
|
10
|
+
"declarationDir": "./lib/types",
|
|
9
11
|
"paths": {
|
|
10
12
|
"~/*": [
|
|
11
13
|
"src/*"
|
|
12
14
|
]
|
|
13
|
-
}
|
|
15
|
+
},
|
|
14
16
|
},
|
|
15
17
|
"include": [
|
|
16
|
-
"
|
|
18
|
+
"typings",
|
|
19
|
+
"src",
|
|
17
20
|
],
|
|
18
21
|
"exclude": [
|
|
19
22
|
"node_modules",
|