@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.
@@ -1,119 +1,121 @@
1
- import fs from 'fs';
2
- import findUp from 'find-up';
3
- import { get, merge } from 'lodash';
4
-
5
- const VITUS_LABS_FILE_NAME = 'vl-tools.config.js';
6
- const PACKAGE_FILE_NAME = 'package.json';
7
- const TYPESCRIPT_FILE_NAME = 'package.json';
8
- // --------------------------------------------------------
9
- // FIND & READ file helpers
10
- // --------------------------------------------------------
11
- const findFile = (filename) => findUp.sync(filename, { type: 'file' });
12
- const loadFileToJSON = (filename) => {
13
- const file = findFile(filename);
14
- if (!file)
15
- return {};
16
- let data;
17
- // try to read an exported module first
18
- try {
19
- data = require(file);
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 get(externalConfig, key, defaultValue);
96
- };
97
- const loadVLToolsConfig = (key) => {
98
- const externalConfig = getExternalConfig();
99
- const result = get(externalConfig, key, {});
100
- const cloneAndEnhance = (object) => ({
101
- get config() {
102
- return object;
103
- },
104
- get: (param, defaultValue) => get(object, param, defaultValue),
105
- merge: (param) => cloneAndEnhance(merge(param, object)),
106
- });
107
- return cloneAndEnhance(result);
108
- };
109
- const swapGlobals = (globals) => Object.entries(globals).reduce((acc, [key, value]) => {
110
- // eslint-disable-next-line no-param-reassign
111
- acc[value] = key;
112
- return acc;
113
- }, {});
114
- const PKG = getPkgData();
115
- const CONFIG = getExternalConfig();
116
- const TS_CONFIG = loadFileToJSON(TYPESCRIPT_FILE_NAME);
117
-
118
- export { CONFIG, PKG, TS_CONFIG, findFile, loadConfigParam, loadFileToJSON, loadVLToolsConfig, swapGlobals };
119
- //# sourceMappingURL=vitus-tools-core.module.js.map
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -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 CONFIG: any;
12
- declare const TS_CONFIG: any;
13
- export { findFile, loadConfigParam, loadFileToJSON, loadVLToolsConfig, swapGlobals, PKG, CONFIG, TS_CONFIG, };
14
- //# sourceMappingURL=index.d.ts.map
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.46.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
- "main": "lib/vitus-tools-core.js",
10
- "module": "lib/vitus-tools-core.module.js",
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": ">= 14"
13
+ "node": ">= 16"
14
14
  },
15
15
  "publishConfig": {
16
16
  "access": "public"
17
17
  },
18
18
  "scripts": {
19
19
  "prepublish": "yarn build",
20
- "build": "yarn vl_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": "5.0.0",
27
- "lodash": "^4.17.21"
23
+ "find-up": "^6.3.0",
24
+ "lodash-es": "^4.17.21"
28
25
  },
29
26
  "devDependencies": {
30
- "@vitus-labs/tools-babel": "0.46.0",
31
- "@vitus-labs/tools-core": "0.46.0",
32
- "@vitus-labs/tools-rollup": "0.46.0",
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": "81660f866ad89ae42fcca35ad103fac72305467b"
31
+ "gitHead": "476c5e7fb8924cc57f4c19d5586eb6cbc9839f44"
36
32
  }
package/src/index.ts CHANGED
@@ -1,18 +1,19 @@
1
- import fs from 'fs'
2
- import findUp from 'find-up'
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.js'
5
+ const VITUS_LABS_FILE_NAME = 'vl-tools.config.mjs'
6
6
  const PACKAGE_FILE_NAME = 'package.json'
7
- const TYPESCRIPT_FILE_NAME = 'package.json'
7
+ const TYPESCRIPT_FILE_NAME = 'tsconfig.json'
8
8
 
9
9
  // --------------------------------------------------------
10
10
  // FIND & READ file helpers
11
11
  // --------------------------------------------------------
12
- const findFile = (filename: string) => findUp.sync(filename, { type: 'file' })
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
- data = require(file)
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 = (key: string) => {
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
- return cloneAndEnhance(result)
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 CONFIG = getExternalConfig()
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
- CONFIG,
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
- "strictNullChecks": true,
5
- "types": ["@vitus-labs/tools-rollup/global"],
6
- "rootDir": "src",
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
- "src"
18
+ "typings",
19
+ "src",
17
20
  ],
18
21
  "exclude": [
19
22
  "node_modules",