rc-config-loader 4.1.0 → 4.1.2

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,11 +1,4 @@
1
- export interface rcConfigLoaderOption {
2
- packageJSON?: boolean | {
3
- fieldName: string;
4
- };
5
- configFileName?: string;
6
- defaultExtension?: string | string[];
7
- cwd?: string;
8
- }
1
+ import type { PossibleUndefined, rcConfigLoaderOption, rcConfigResult } from "./types";
9
2
  /**
10
3
  * Find and load rcfile, return { config, filePath }
11
4
  * If not found any rcfile, throw an Error.
@@ -13,7 +6,4 @@ export interface rcConfigLoaderOption {
13
6
  * @param {rcConfigLoaderOption} [opts]
14
7
  * @returns {{ config: Object, filePath:string } | undefined}
15
8
  */
16
- export declare function rcFile<R extends {}>(pkgName: string, opts?: rcConfigLoaderOption): {
17
- config: R;
18
- filePath: string;
19
- } | undefined;
9
+ export declare function rcFile<R extends {}>(pkgName: string, opts?: rcConfigLoaderOption): PossibleUndefined<rcConfigResult<R>>;
@@ -17,14 +17,12 @@ const defaultLoaderByExt = {
17
17
  ".js": loadJSConfigFile,
18
18
  ".json": loadJSONConfigFile,
19
19
  ".yaml": loadYAMLConfigFile,
20
- ".yml": loadYAMLConfigFile,
20
+ ".yml": loadYAMLConfigFile
21
21
  };
22
22
  const defaultOptions = {
23
- // does look for `package.json`
24
23
  packageJSON: false,
25
- // treat default(no ext file) as some extension
26
24
  defaultExtension: [".json", ".yaml", ".yml", ".js", ".cjs"],
27
- cwd: process.cwd(),
25
+ cwd: process.cwd()
28
26
  };
29
27
  const selectLoader = (defaultLoaderByExt, extension) => {
30
28
  if (!defaultOptions.defaultExtension.includes(extension)) {
@@ -57,7 +55,7 @@ function rcFile(pkgName, opts = {}) {
57
55
  loadersByOrder,
58
56
  configFileName,
59
57
  packageJSON,
60
- packageJSONFieldName,
58
+ packageJSONFieldName
61
59
  });
62
60
  }
63
61
  exports.rcFile = rcFile;
@@ -68,7 +66,7 @@ exports.rcFile = rcFile;
68
66
  * filePath: string
69
67
  * }}
70
68
  */
71
- function findConfig({ parts, loaderByExt, loadersByOrder, configFileName, packageJSON, packageJSONFieldName, }) {
69
+ function findConfig({ parts, loaderByExt, loadersByOrder, configFileName, packageJSON, packageJSONFieldName }) {
72
70
  const extensions = Object.keys(loaderByExt);
73
71
  while (extensions.length) {
74
72
  const ext = extensions.shift();
@@ -87,7 +85,7 @@ function findConfig({ parts, loaderByExt, loadersByOrder, configFileName, packag
87
85
  }
88
86
  return {
89
87
  config: result,
90
- filePath: configLocation,
88
+ filePath: configLocation
91
89
  };
92
90
  }
93
91
  for (let i = 0; i < loaders.length; i++) {
@@ -98,7 +96,7 @@ function findConfig({ parts, loaderByExt, loadersByOrder, configFileName, packag
98
96
  }
99
97
  return {
100
98
  config: result,
101
- filePath: configLocation,
99
+ filePath: configLocation
102
100
  };
103
101
  }
104
102
  }
@@ -109,7 +107,7 @@ function findConfig({ parts, loaderByExt, loadersByOrder, configFileName, packag
109
107
  if (pkgJSON[packageJSONFieldName]) {
110
108
  return {
111
109
  config: pkgJSON[packageJSONFieldName],
112
- filePath: pkgJSONLoc,
110
+ filePath: pkgJSONLoc
113
111
  };
114
112
  }
115
113
  }
@@ -129,7 +127,7 @@ function loadJSConfigFile(filePath, suppress) {
129
127
  debug(`Loading JavaScript config file: ${filePath}`);
130
128
  try {
131
129
  const content = fs_1.default.readFileSync(filePath, "utf-8");
132
- return require_from_string_1.default(content, filePath);
130
+ return (0, require_from_string_1.default)(content, filePath);
133
131
  }
134
132
  catch (error) {
135
133
  debug(`Error reading JavaScript file: ${filePath}`);
@@ -1 +1 @@
1
- {"version":3,"file":"rc-config-loader.js","sourceRoot":"","sources":["../src/rc-config-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rc-config-loader.js","sourceRoot":"","sources":["../src/rc-config-loader.ts"],"names":[],"mappings":"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"}
package/lib/types.d.ts ADDED
@@ -0,0 +1,21 @@
1
+ export declare type ExtensionName = ".cjs" | ".js" | ".json" | ".yaml" | ".yml";
2
+ export declare type RequiredOption = "packageJSON" | "defaultExtension" | "cwd";
3
+ export declare type Loader = <R extends {}>(fileName: string, supperes: boolean) => R;
4
+ export declare type ExtensionLoaderMap = Record<ExtensionName, Loader>;
5
+ export declare type PossibleUndefined<T> = T | undefined;
6
+ export interface rcConfigResult<R extends Record<string, unknown>> {
7
+ config: R;
8
+ filePath: string;
9
+ }
10
+ export interface rcConfigLoaderOption {
11
+ /** does look for `package.json` */
12
+ packageJSON?: boolean | {
13
+ fieldName: string;
14
+ };
15
+ /** if config file name is not same with packageName, set the name */
16
+ configFileName?: string;
17
+ /** treat default(no ext file) as some extension */
18
+ defaultExtension?: ExtensionName | ExtensionName[];
19
+ /** where start to load */
20
+ cwd?: string;
21
+ }
package/lib/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rc-config-loader",
3
- "version": "4.1.0",
3
+ "version": "4.1.2",
4
4
  "description": "load config file from .{product}rc.{json,yml,js}",
5
5
  "keywords": [
6
6
  "config",
@@ -33,10 +33,11 @@
33
33
  },
34
34
  "scripts": {
35
35
  "build": "tsc -p .",
36
- "prettier": "prettier --write '**/*.{js,jsx,ts,tsx,css}'",
37
36
  "prepublish": "npm run --if-present build",
38
37
  "test": "mocha \"test/**/*.{js,ts}\"",
39
- "watch": "tsc -p . --watch"
38
+ "watch": "tsc -p . --watch",
39
+ "format": "prettier --write \"**/*.{js,jsx,ts,tsx,css}\"",
40
+ "prepare": "git config --local core.hooksPath .githooks"
40
41
  },
41
42
  "husky": {
42
43
  "hooks": {
@@ -50,27 +51,26 @@
50
51
  ]
51
52
  },
52
53
  "prettier": {
54
+ "singleQuote": false,
53
55
  "printWidth": 120,
54
- "tabWidth": 4
56
+ "tabWidth": 4,
57
+ "trailingComma": "none"
55
58
  },
56
59
  "dependencies": {
57
- "debug": "^4.1.1",
58
- "js-yaml": "^4.0.0",
59
- "json5": "^2.1.2",
60
+ "debug": "^4.3.4",
61
+ "js-yaml": "^4.1.0",
62
+ "json5": "^2.2.2",
60
63
  "require-from-string": "^2.0.2"
61
64
  },
62
65
  "devDependencies": {
63
- "@types/json5": "^0.0.30",
64
- "@types/mocha": "^8.2.0",
65
- "@types/node": "^14.14.20",
66
- "@types/require-from-string": "^1.2.0",
67
- "chai": "^4.2.0",
68
- "husky": "^4.2.3",
69
- "lint-staged": "^10.1.1",
70
- "mocha": "^8.2.1",
71
- "prettier": "^2.0.2",
72
- "ts-node": "^9.1.1",
73
- "ts-node-test-register": "^9.0.1",
74
- "typescript": "^4.1.3"
66
+ "@types/mocha": "^9.1.0",
67
+ "@types/node": "^17.0.23",
68
+ "@types/require-from-string": "^1.2.1",
69
+ "lint-staged": "^12.3.7",
70
+ "mocha": "^9.2.2",
71
+ "prettier": "^2.6.2",
72
+ "ts-node": "^10.7.0",
73
+ "ts-node-test-register": "^10.0.0",
74
+ "typescript": "^4.6.3"
75
75
  }
76
76
  }
@@ -5,42 +5,34 @@ import path from "path";
5
5
  import fs from "fs";
6
6
  import requireFromString from "require-from-string";
7
7
  import JSON5 from "json5";
8
+ import type {
9
+ PossibleUndefined,
10
+ rcConfigLoaderOption,
11
+ rcConfigResult,
12
+ RequiredOption,
13
+ ExtensionName,
14
+ ExtensionLoaderMap,
15
+ Loader
16
+ } from "./types";
8
17
 
9
18
  const debug = require("debug")("rc-config-loader");
10
- const defaultLoaderByExt = {
19
+
20
+ const defaultLoaderByExt: ExtensionLoaderMap = {
11
21
  ".cjs": loadJSConfigFile,
12
22
  ".js": loadJSConfigFile,
13
23
  ".json": loadJSONConfigFile,
14
24
  ".yaml": loadYAMLConfigFile,
15
- ".yml": loadYAMLConfigFile,
25
+ ".yml": loadYAMLConfigFile
16
26
  };
17
27
 
18
- const defaultOptions = {
19
- // does look for `package.json`
28
+ const defaultOptions: Required<Pick<rcConfigLoaderOption, RequiredOption>> &
29
+ Omit<rcConfigLoaderOption, RequiredOption> = {
20
30
  packageJSON: false,
21
- // treat default(no ext file) as some extension
22
31
  defaultExtension: [".json", ".yaml", ".yml", ".js", ".cjs"],
23
- cwd: process.cwd(),
32
+ cwd: process.cwd()
24
33
  };
25
34
 
26
- export interface rcConfigLoaderOption {
27
- // does look for `package.json`
28
- packageJSON?:
29
- | boolean
30
- | {
31
- fieldName: string;
32
- };
33
- // if config file name is not same with packageName, set the name
34
- configFileName?: string;
35
- // treat default(no ext file) as some extension
36
- defaultExtension?: string | string[];
37
- // where start to load
38
- cwd?: string;
39
- }
40
-
41
- type Loader = <R extends object>(fileName: string, suppress: boolean) => R;
42
-
43
- const selectLoader = (defaultLoaderByExt: { [index: string]: Loader }, extension: string) => {
35
+ const selectLoader = (defaultLoaderByExt: ExtensionLoaderMap, extension: ExtensionName): Loader => {
44
36
  if (!defaultOptions.defaultExtension.includes(extension)) {
45
37
  throw new Error(`${extension} is not supported.`);
46
38
  }
@@ -57,12 +49,7 @@ const selectLoader = (defaultLoaderByExt: { [index: string]: Loader }, extension
57
49
  export function rcFile<R extends {}>(
58
50
  pkgName: string,
59
51
  opts: rcConfigLoaderOption = {}
60
- ):
61
- | {
62
- config: R;
63
- filePath: string;
64
- }
65
- | undefined {
52
+ ): PossibleUndefined<rcConfigResult<R>> {
66
53
  // path/to/config or basename of config file.
67
54
  const configFileName = opts.configFileName || `.${pkgName}rc`;
68
55
  const defaultExtension = opts.defaultExtension || defaultOptions.defaultExtension;
@@ -77,7 +64,7 @@ export function rcFile<R extends {}>(
77
64
 
78
65
  const loaderByExt = {
79
66
  ...defaultLoaderByExt,
80
- "": loadersByOrder,
67
+ "": loadersByOrder
81
68
  };
82
69
  return findConfig<R>({
83
70
  parts,
@@ -85,7 +72,7 @@ export function rcFile<R extends {}>(
85
72
  loadersByOrder,
86
73
  configFileName,
87
74
  packageJSON,
88
- packageJSONFieldName,
75
+ packageJSONFieldName
89
76
  });
90
77
  }
91
78
 
@@ -102,7 +89,7 @@ function findConfig<R extends {}>({
102
89
  loadersByOrder,
103
90
  configFileName,
104
91
  packageJSON,
105
- packageJSONFieldName,
92
+ packageJSONFieldName
106
93
  }: {
107
94
  parts: string[];
108
95
  loaderByExt: {
@@ -136,7 +123,7 @@ function findConfig<R extends {}>({
136
123
  }
137
124
  return {
138
125
  config: result,
139
- filePath: configLocation,
126
+ filePath: configLocation
140
127
  };
141
128
  }
142
129
  for (let i = 0; i < loaders.length; i++) {
@@ -147,7 +134,7 @@ function findConfig<R extends {}>({
147
134
  }
148
135
  return {
149
136
  config: result,
150
- filePath: configLocation,
137
+ filePath: configLocation
151
138
  };
152
139
  }
153
140
  }
@@ -159,7 +146,7 @@ function findConfig<R extends {}>({
159
146
  if (pkgJSON[packageJSONFieldName]) {
160
147
  return {
161
148
  config: pkgJSON[packageJSONFieldName],
162
- filePath: pkgJSONLoc,
149
+ filePath: pkgJSONLoc
163
150
  };
164
151
  }
165
152
  }
@@ -183,7 +170,7 @@ function loadJSConfigFile(filePath: string, suppress: boolean) {
183
170
  try {
184
171
  const content = fs.readFileSync(filePath, "utf-8");
185
172
  return requireFromString(content, filePath);
186
- } catch (error) {
173
+ } catch (error: any) {
187
174
  debug(`Error reading JavaScript file: ${filePath}`);
188
175
  if (!suppress) {
189
176
  error.message = `Cannot read config file: ${filePath}\nError: ${error.message}`;
@@ -197,7 +184,7 @@ function loadJSONConfigFile(filePath: string, suppress: boolean) {
197
184
 
198
185
  try {
199
186
  return JSON5.parse(readFile(filePath));
200
- } catch (error) {
187
+ } catch (error: any) {
201
188
  debug(`Error reading JSON file: ${filePath}`);
202
189
  if (!suppress) {
203
190
  error.message = `Cannot read config file: ${filePath}\nError: ${error.message}`;
@@ -217,7 +204,7 @@ function loadYAMLConfigFile(filePath: string, suppress: boolean) {
217
204
  try {
218
205
  // empty YAML file can be null, so always use
219
206
  return yaml.load(readFile(filePath)) || {};
220
- } catch (error) {
207
+ } catch (error: any) {
221
208
  debug(`Error reading YAML file: ${filePath}`);
222
209
  if (!suppress) {
223
210
  error.message = `Cannot read config file: ${filePath}\nError: ${error.message}`;
package/src/types.ts ADDED
@@ -0,0 +1,32 @@
1
+ export type ExtensionName = ".cjs" | ".js" | ".json" | ".yaml" | ".yml";
2
+
3
+ export type RequiredOption = "packageJSON" | "defaultExtension" | "cwd";
4
+
5
+ export type Loader = <R extends {}>(fileName: string, supperes: boolean) => R;
6
+
7
+ export type ExtensionLoaderMap = Record<ExtensionName, Loader>;
8
+
9
+ export type PossibleUndefined<T> = T | undefined;
10
+
11
+ export interface rcConfigResult<R extends Record<string, unknown>> {
12
+ config: R;
13
+ filePath: string;
14
+ }
15
+
16
+ export interface rcConfigLoaderOption {
17
+ /** does look for `package.json` */
18
+ packageJSON?:
19
+ | boolean
20
+ | {
21
+ fieldName: string;
22
+ };
23
+
24
+ /** if config file name is not same with packageName, set the name */
25
+ configFileName?: string;
26
+
27
+ /** treat default(no ext file) as some extension */
28
+ defaultExtension?: ExtensionName | ExtensionName[];
29
+
30
+ /** where start to load */
31
+ cwd?: string;
32
+ }