rc-config-loader
Advanced tools
| export declare type ExtensionName = ".cjs" | ".js" | ".json" | ".yaml" | ".yml"; | ||
| export declare type RequiredOption = "packageJSON" | "defaultExtension" | "cwd"; | ||
| export declare type Loader = <R extends {}>(fileName: string, supperes: boolean) => R; | ||
| export declare type ExtensionLoaderMap = Record<ExtensionName, Loader>; | ||
| export declare type PossibleUndefined<T> = T | undefined; | ||
| export interface rcConfigResult<R extends Record<string, unknown>> { | ||
| config: R; | ||
| filePath: string; | ||
| } | ||
| export interface rcConfigLoaderOption { | ||
| /** does look for `package.json` */ | ||
| packageJSON?: boolean | { | ||
| fieldName: string; | ||
| }; | ||
| /** if config file name is not same with packageName, set the name */ | ||
| configFileName?: string; | ||
| /** treat default(no ext file) as some extension */ | ||
| defaultExtension?: ExtensionName | ExtensionName[]; | ||
| /** where start to load */ | ||
| cwd?: string; | ||
| } |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| //# sourceMappingURL=types.js.map |
| {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""} |
+32
| export type ExtensionName = ".cjs" | ".js" | ".json" | ".yaml" | ".yml"; | ||
| export type RequiredOption = "packageJSON" | "defaultExtension" | "cwd"; | ||
| export type Loader = <R extends {}>(fileName: string, supperes: boolean) => R; | ||
| export type ExtensionLoaderMap = Record<ExtensionName, Loader>; | ||
| export type PossibleUndefined<T> = T | undefined; | ||
| export interface rcConfigResult<R extends Record<string, unknown>> { | ||
| config: R; | ||
| filePath: string; | ||
| } | ||
| export interface rcConfigLoaderOption { | ||
| /** does look for `package.json` */ | ||
| packageJSON?: | ||
| | boolean | ||
| | { | ||
| fieldName: string; | ||
| }; | ||
| /** if config file name is not same with packageName, set the name */ | ||
| configFileName?: string; | ||
| /** treat default(no ext file) as some extension */ | ||
| defaultExtension?: ExtensionName | ExtensionName[]; | ||
| /** where start to load */ | ||
| cwd?: string; | ||
| } |
@@ -1,9 +0,2 @@ | ||
| export interface rcConfigLoaderOption { | ||
| packageJSON?: boolean | { | ||
| fieldName: string; | ||
| }; | ||
| configFileName?: string; | ||
| defaultExtension?: string | string[]; | ||
| cwd?: string; | ||
| } | ||
| import type { PossibleUndefined, rcConfigLoaderOption, rcConfigResult } from "./types"; | ||
| /** | ||
@@ -16,5 +9,2 @@ * Find and load rcfile, return { config, filePath } | ||
| */ | ||
| export declare function rcFile<R extends {}>(pkgName: string, opts?: rcConfigLoaderOption): { | ||
| config: R; | ||
| filePath: string; | ||
| } | undefined; | ||
| export declare function rcFile<R extends {}>(pkgName: string, opts?: rcConfigLoaderOption): PossibleUndefined<rcConfigResult<R>>; |
@@ -20,10 +20,8 @@ "use strict"; | ||
| ".yaml": loadYAMLConfigFile, | ||
| ".yml": loadYAMLConfigFile, | ||
| ".yml": loadYAMLConfigFile | ||
| }; | ||
| const defaultOptions = { | ||
| // does look for `package.json` | ||
| packageJSON: false, | ||
| // treat default(no ext file) as some extension | ||
| defaultExtension: [".json", ".yaml", ".yml", ".js", ".cjs"], | ||
| cwd: process.cwd(), | ||
| cwd: process.cwd() | ||
| }; | ||
@@ -61,3 +59,3 @@ const selectLoader = (defaultLoaderByExt, extension) => { | ||
| packageJSON, | ||
| packageJSONFieldName, | ||
| packageJSONFieldName | ||
| }); | ||
@@ -73,3 +71,3 @@ } | ||
| */ | ||
| function findConfig({ parts, loaderByExt, loadersByOrder, configFileName, packageJSON, packageJSONFieldName, }) { | ||
| function findConfig({ parts, loaderByExt, loadersByOrder, configFileName, packageJSON, packageJSONFieldName }) { | ||
| const extensions = Object.keys(loaderByExt); | ||
@@ -93,3 +91,3 @@ while (extensions.length) { | ||
| config: result, | ||
| filePath: configLocation, | ||
| filePath: configLocation | ||
| }; | ||
@@ -105,3 +103,3 @@ } | ||
| config: result, | ||
| filePath: configLocation, | ||
| filePath: configLocation | ||
| }; | ||
@@ -117,3 +115,3 @@ } | ||
| config: pkgJSON[packageJSONFieldName], | ||
| filePath: pkgJSONLoc, | ||
| filePath: pkgJSONLoc | ||
| }; | ||
@@ -138,3 +136,3 @@ } | ||
| const content = fs_1.default.readFileSync(filePath, "utf-8"); | ||
| return require_from_string_1.default(content, filePath); | ||
| return (0, require_from_string_1.default)(content, filePath); | ||
| } | ||
@@ -141,0 +139,0 @@ catch (error) { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"rc-config-loader.js","sourceRoot":"","sources":["../src/rc-config-loader.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"rc-config-loader.js","sourceRoot":"","sources":["../src/rc-config-loader.ts"],"names":[],"mappings":"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"} |
+19
-19
| { | ||
| "name": "rc-config-loader", | ||
| "version": "4.1.0", | ||
| "version": "4.1.1", | ||
| "description": "load config file from .{product}rc.{json,yml,js}", | ||
@@ -36,6 +36,7 @@ "keywords": [ | ||
| "build": "tsc -p .", | ||
| "prettier": "prettier --write '**/*.{js,jsx,ts,tsx,css}'", | ||
| "prepublish": "npm run --if-present build", | ||
| "test": "mocha \"test/**/*.{js,ts}\"", | ||
| "watch": "tsc -p . --watch" | ||
| "watch": "tsc -p . --watch", | ||
| "format": "prettier --write \"**/*.{js,jsx,ts,tsx,css}\"", | ||
| "prepare": "git config --local core.hooksPath .githooks" | ||
| }, | ||
@@ -54,25 +55,24 @@ "husky": { | ||
| "prettier": { | ||
| "singleQuote": false, | ||
| "printWidth": 120, | ||
| "tabWidth": 4 | ||
| "tabWidth": 4, | ||
| "trailingComma": "none" | ||
| }, | ||
| "dependencies": { | ||
| "debug": "^4.1.1", | ||
| "js-yaml": "^4.0.0", | ||
| "json5": "^2.1.2", | ||
| "debug": "^4.3.4", | ||
| "js-yaml": "^4.1.0", | ||
| "json5": "^2.2.1", | ||
| "require-from-string": "^2.0.2" | ||
| }, | ||
| "devDependencies": { | ||
| "@types/json5": "^0.0.30", | ||
| "@types/mocha": "^8.2.0", | ||
| "@types/node": "^14.14.20", | ||
| "@types/require-from-string": "^1.2.0", | ||
| "chai": "^4.2.0", | ||
| "husky": "^4.2.3", | ||
| "lint-staged": "^10.1.1", | ||
| "mocha": "^8.2.1", | ||
| "prettier": "^2.0.2", | ||
| "ts-node": "^9.1.1", | ||
| "ts-node-test-register": "^9.0.1", | ||
| "typescript": "^4.1.3" | ||
| "@types/mocha": "^9.1.0", | ||
| "@types/node": "^17.0.23", | ||
| "@types/require-from-string": "^1.2.1", | ||
| "lint-staged": "^12.3.7", | ||
| "mocha": "^9.2.2", | ||
| "prettier": "^2.6.2", | ||
| "ts-node": "^10.7.0", | ||
| "ts-node-test-register": "^10.0.0", | ||
| "typescript": "^4.6.3" | ||
| } | ||
| } |
+26
-39
@@ -8,5 +8,15 @@ // MIT © 2017 azu | ||
| import JSON5 from "json5"; | ||
| import type { | ||
| PossibleUndefined, | ||
| rcConfigLoaderOption, | ||
| rcConfigResult, | ||
| RequiredOption, | ||
| ExtensionName, | ||
| ExtensionLoaderMap, | ||
| Loader | ||
| } from "./types"; | ||
| const debug = require("debug")("rc-config-loader"); | ||
| const defaultLoaderByExt = { | ||
| const defaultLoaderByExt: ExtensionLoaderMap = { | ||
| ".cjs": loadJSConfigFile, | ||
@@ -16,31 +26,13 @@ ".js": loadJSConfigFile, | ||
| ".yaml": loadYAMLConfigFile, | ||
| ".yml": loadYAMLConfigFile, | ||
| ".yml": loadYAMLConfigFile | ||
| }; | ||
| const defaultOptions = { | ||
| // does look for `package.json` | ||
| const defaultOptions: Required<Pick<rcConfigLoaderOption, RequiredOption>> & | ||
| Omit<rcConfigLoaderOption, RequiredOption> = { | ||
| packageJSON: false, | ||
| // treat default(no ext file) as some extension | ||
| defaultExtension: [".json", ".yaml", ".yml", ".js", ".cjs"], | ||
| cwd: process.cwd(), | ||
| cwd: process.cwd() | ||
| }; | ||
| export interface rcConfigLoaderOption { | ||
| // does look for `package.json` | ||
| packageJSON?: | ||
| | boolean | ||
| | { | ||
| fieldName: string; | ||
| }; | ||
| // if config file name is not same with packageName, set the name | ||
| configFileName?: string; | ||
| // treat default(no ext file) as some extension | ||
| defaultExtension?: string | string[]; | ||
| // where start to load | ||
| cwd?: string; | ||
| } | ||
| type Loader = <R extends object>(fileName: string, suppress: boolean) => R; | ||
| const selectLoader = (defaultLoaderByExt: { [index: string]: Loader }, extension: string) => { | ||
| const selectLoader = (defaultLoaderByExt: ExtensionLoaderMap, extension: ExtensionName): Loader => { | ||
| if (!defaultOptions.defaultExtension.includes(extension)) { | ||
@@ -62,8 +54,3 @@ throw new Error(`${extension} is not supported.`); | ||
| opts: rcConfigLoaderOption = {} | ||
| ): | ||
| | { | ||
| config: R; | ||
| filePath: string; | ||
| } | ||
| | undefined { | ||
| ): PossibleUndefined<rcConfigResult<R>> { | ||
| // path/to/config or basename of config file. | ||
@@ -83,3 +70,3 @@ const configFileName = opts.configFileName || `.${pkgName}rc`; | ||
| ...defaultLoaderByExt, | ||
| "": loadersByOrder, | ||
| "": loadersByOrder | ||
| }; | ||
@@ -92,3 +79,3 @@ return findConfig<R>({ | ||
| packageJSON, | ||
| packageJSONFieldName, | ||
| packageJSONFieldName | ||
| }); | ||
@@ -110,3 +97,3 @@ } | ||
| packageJSON, | ||
| packageJSONFieldName, | ||
| packageJSONFieldName | ||
| }: { | ||
@@ -145,3 +132,3 @@ parts: string[]; | ||
| config: result, | ||
| filePath: configLocation, | ||
| filePath: configLocation | ||
| }; | ||
@@ -157,3 +144,3 @@ } | ||
| config: result, | ||
| filePath: configLocation, | ||
| filePath: configLocation | ||
| }; | ||
@@ -170,3 +157,3 @@ } | ||
| config: pkgJSON[packageJSONFieldName], | ||
| filePath: pkgJSONLoc, | ||
| filePath: pkgJSONLoc | ||
| }; | ||
@@ -195,3 +182,3 @@ } | ||
| return requireFromString(content, filePath); | ||
| } catch (error) { | ||
| } catch (error: any) { | ||
| debug(`Error reading JavaScript file: ${filePath}`); | ||
@@ -210,3 +197,3 @@ if (!suppress) { | ||
| return JSON5.parse(readFile(filePath)); | ||
| } catch (error) { | ||
| } catch (error: any) { | ||
| debug(`Error reading JSON file: ${filePath}`); | ||
@@ -231,3 +218,3 @@ if (!suppress) { | ||
| return yaml.load(readFile(filePath)) || {}; | ||
| } catch (error) { | ||
| } catch (error: any) { | ||
| debug(`Error reading YAML file: ${filePath}`); | ||
@@ -234,0 +221,0 @@ if (!suppress) { |
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
28411
5.61%9
-25%11
57.14%424
5.47%Updated
Updated
Updated