summaryrefslogtreecommitdiff
path: root/node_modules/lilconfig
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2024-05-14 14:05:49 +0800
committerlittleblack111 <littleblack11111@gmail.com>2024-05-14 14:05:49 +0800
commit06823fbf1c2e763a5bf76c3990ca98fbbcd98691 (patch)
tree4280bece3888d12a022093bf1a9cd1b049393602 /node_modules/lilconfig
parent1368909b3cd552dbb0d12d5863c597f5be46177d (diff)
updated node_modules
Diffstat (limited to 'node_modules/lilconfig')
-rw-r--r--node_modules/lilconfig/dist/index.d.ts44
-rw-r--r--node_modules/lilconfig/dist/index.js320
-rw-r--r--node_modules/lilconfig/package.json88
-rw-r--r--node_modules/lilconfig/readme.md27
4 files changed, 46 insertions, 433 deletions
diff --git a/node_modules/lilconfig/dist/index.d.ts b/node_modules/lilconfig/dist/index.d.ts
deleted file mode 100644
index 5a0c2db3..00000000
--- a/node_modules/lilconfig/dist/index.d.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-export declare type LilconfigResult = null | {
- filepath: string;
- config: any;
- isEmpty?: boolean;
-};
-interface OptionsBase {
- cache?: boolean;
- stopDir?: string;
- searchPlaces?: string[];
- ignoreEmptySearchPlaces?: boolean;
- packageProp?: string | string[];
-}
-export declare type Transform = TransformSync | ((result: LilconfigResult) => Promise<LilconfigResult>);
-export declare type TransformSync = (result: LilconfigResult) => LilconfigResult;
-declare type LoaderResult = any;
-export declare type LoaderSync = (filepath: string, content: string) => LoaderResult;
-export declare type Loader = LoaderSync | ((filepath: string, content: string) => Promise<LoaderResult>);
-export declare type Loaders = Record<string, Loader>;
-export declare type LoadersSync = Record<string, LoaderSync>;
-export interface Options extends OptionsBase {
- loaders?: Loaders;
- transform?: Transform;
-}
-export interface OptionsSync extends OptionsBase {
- loaders?: LoadersSync;
- transform?: TransformSync;
-}
-export declare const defaultLoaders: LoadersSync;
-declare type ClearCaches = {
- clearLoadCache: () => void;
- clearSearchCache: () => void;
- clearCaches: () => void;
-};
-declare type AsyncSearcher = {
- search(searchFrom?: string): Promise<LilconfigResult>;
- load(filepath: string): Promise<LilconfigResult>;
-} & ClearCaches;
-export declare function lilconfig(name: string, options?: Partial<Options>): AsyncSearcher;
-declare type SyncSearcher = {
- search(searchFrom?: string): LilconfigResult;
- load(filepath: string): LilconfigResult;
-} & ClearCaches;
-export declare function lilconfigSync(name: string, options?: OptionsSync): SyncSearcher;
-export {};
diff --git a/node_modules/lilconfig/dist/index.js b/node_modules/lilconfig/dist/index.js
deleted file mode 100644
index dce42fa6..00000000
--- a/node_modules/lilconfig/dist/index.js
+++ /dev/null
@@ -1,320 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.lilconfigSync = exports.lilconfig = exports.defaultLoaders = void 0;
-const path = require("path");
-const fs = require("fs");
-const os = require("os");
-const fsReadFileAsync = fs.promises.readFile;
-function getDefaultSearchPlaces(name) {
- return [
- 'package.json',
- `.${name}rc.json`,
- `.${name}rc.js`,
- `.${name}rc.cjs`,
- `.config/${name}rc`,
- `.config/${name}rc.json`,
- `.config/${name}rc.js`,
- `.config/${name}rc.cjs`,
- `${name}.config.js`,
- `${name}.config.cjs`,
- ];
-}
-function parentDir(p) {
- return path.dirname(p) || path.sep;
-}
-exports.defaultLoaders = Object.freeze({
- '.js': require,
- '.json': require,
- '.cjs': require,
- noExt(_, content) {
- return JSON.parse(content);
- },
-});
-function getExtDesc(ext) {
- return ext === 'noExt' ? 'files without extensions' : `extension "${ext}"`;
-}
-function getOptions(name, options = {}) {
- const conf = {
- stopDir: os.homedir(),
- searchPlaces: getDefaultSearchPlaces(name),
- ignoreEmptySearchPlaces: true,
- cache: true,
- transform: (x) => x,
- packageProp: [name],
- ...options,
- loaders: { ...exports.defaultLoaders, ...options.loaders },
- };
- conf.searchPlaces.forEach(place => {
- const key = path.extname(place) || 'noExt';
- const loader = conf.loaders[key];
- if (!loader) {
- throw new Error(`No loader specified for ${getExtDesc(key)}, so searchPlaces item "${place}" is invalid`);
- }
- if (typeof loader !== 'function') {
- throw new Error(`loader for ${getExtDesc(key)} is not a function (type provided: "${typeof loader}"), so searchPlaces item "${place}" is invalid`);
- }
- });
- return conf;
-}
-function getPackageProp(props, obj) {
- if (typeof props === 'string' && props in obj)
- return obj[props];
- return ((Array.isArray(props) ? props : props.split('.')).reduce((acc, prop) => (acc === undefined ? acc : acc[prop]), obj) || null);
-}
-function validateFilePath(filepath) {
- if (!filepath)
- throw new Error('load must pass a non-empty string');
-}
-function validateLoader(loader, ext) {
- if (!loader)
- throw new Error(`No loader specified for extension "${ext}"`);
- if (typeof loader !== 'function')
- throw new Error('loader is not a function');
-}
-const makeEmplace = (enableCache) => (c, filepath, res) => {
- if (enableCache)
- c.set(filepath, res);
- return res;
-};
-function lilconfig(name, options) {
- const { ignoreEmptySearchPlaces, loaders, packageProp, searchPlaces, stopDir, transform, cache, } = getOptions(name, options);
- const searchCache = new Map();
- const loadCache = new Map();
- const emplace = makeEmplace(cache);
- return {
- async search(searchFrom = process.cwd()) {
- const result = {
- config: null,
- filepath: '',
- };
- const visited = new Set();
- let dir = searchFrom;
- dirLoop: while (true) {
- if (cache) {
- const r = searchCache.get(dir);
- if (r !== undefined) {
- for (const p of visited)
- searchCache.set(p, r);
- return r;
- }
- visited.add(dir);
- }
- for (const searchPlace of searchPlaces) {
- const filepath = path.join(dir, searchPlace);
- try {
- await fs.promises.access(filepath);
- }
- catch (_a) {
- continue;
- }
- const content = String(await fsReadFileAsync(filepath));
- const loaderKey = path.extname(searchPlace) || 'noExt';
- const loader = loaders[loaderKey];
- if (searchPlace === 'package.json') {
- const pkg = await loader(filepath, content);
- const maybeConfig = getPackageProp(packageProp, pkg);
- if (maybeConfig != null) {
- result.config = maybeConfig;
- result.filepath = filepath;
- break dirLoop;
- }
- continue;
- }
- const isEmpty = content.trim() === '';
- if (isEmpty && ignoreEmptySearchPlaces)
- continue;
- if (isEmpty) {
- result.isEmpty = true;
- result.config = undefined;
- }
- else {
- validateLoader(loader, loaderKey);
- result.config = await loader(filepath, content);
- }
- result.filepath = filepath;
- break dirLoop;
- }
- if (dir === stopDir || dir === parentDir(dir))
- break dirLoop;
- dir = parentDir(dir);
- }
- const transformed = result.filepath === '' && result.config === null
- ? transform(null)
- : transform(result);
- if (cache) {
- for (const p of visited)
- searchCache.set(p, transformed);
- }
- return transformed;
- },
- async load(filepath) {
- validateFilePath(filepath);
- const absPath = path.resolve(process.cwd(), filepath);
- if (cache && loadCache.has(absPath)) {
- return loadCache.get(absPath);
- }
- const { base, ext } = path.parse(absPath);
- const loaderKey = ext || 'noExt';
- const loader = loaders[loaderKey];
- validateLoader(loader, loaderKey);
- const content = String(await fsReadFileAsync(absPath));
- if (base === 'package.json') {
- const pkg = await loader(absPath, content);
- return emplace(loadCache, absPath, transform({
- config: getPackageProp(packageProp, pkg),
- filepath: absPath,
- }));
- }
- const result = {
- config: null,
- filepath: absPath,
- };
- const isEmpty = content.trim() === '';
- if (isEmpty && ignoreEmptySearchPlaces)
- return emplace(loadCache, absPath, transform({
- config: undefined,
- filepath: absPath,
- isEmpty: true,
- }));
- result.config = isEmpty
- ? undefined
- : await loader(absPath, content);
- return emplace(loadCache, absPath, transform(isEmpty ? { ...result, isEmpty, config: undefined } : result));
- },
- clearLoadCache() {
- if (cache)
- loadCache.clear();
- },
- clearSearchCache() {
- if (cache)
- searchCache.clear();
- },
- clearCaches() {
- if (cache) {
- loadCache.clear();
- searchCache.clear();
- }
- },
- };
-}
-exports.lilconfig = lilconfig;
-function lilconfigSync(name, options) {
- const { ignoreEmptySearchPlaces, loaders, packageProp, searchPlaces, stopDir, transform, cache, } = getOptions(name, options);
- const searchCache = new Map();
- const loadCache = new Map();
- const emplace = makeEmplace(cache);
- return {
- search(searchFrom = process.cwd()) {
- const result = {
- config: null,
- filepath: '',
- };
- const visited = new Set();
- let dir = searchFrom;
- dirLoop: while (true) {
- if (cache) {
- const r = searchCache.get(dir);
- if (r !== undefined) {
- for (const p of visited)
- searchCache.set(p, r);
- return r;
- }
- visited.add(dir);
- }
- for (const searchPlace of searchPlaces) {
- const filepath = path.join(dir, searchPlace);
- try {
- fs.accessSync(filepath);
- }
- catch (_a) {
- continue;
- }
- const loaderKey = path.extname(searchPlace) || 'noExt';
- const loader = loaders[loaderKey];
- const content = String(fs.readFileSync(filepath));
- if (searchPlace === 'package.json') {
- const pkg = loader(filepath, content);
- const maybeConfig = getPackageProp(packageProp, pkg);
- if (maybeConfig != null) {
- result.config = maybeConfig;
- result.filepath = filepath;
- break dirLoop;
- }
- continue;
- }
- const isEmpty = content.trim() === '';
- if (isEmpty && ignoreEmptySearchPlaces)
- continue;
- if (isEmpty) {
- result.isEmpty = true;
- result.config = undefined;
- }
- else {
- validateLoader(loader, loaderKey);
- result.config = loader(filepath, content);
- }
- result.filepath = filepath;
- break dirLoop;
- }
- if (dir === stopDir || dir === parentDir(dir))
- break dirLoop;
- dir = parentDir(dir);
- }
- const transformed = result.filepath === '' && result.config === null
- ? transform(null)
- : transform(result);
- if (cache) {
- for (const p of visited)
- searchCache.set(p, transformed);
- }
- return transformed;
- },
- load(filepath) {
- validateFilePath(filepath);
- const absPath = path.resolve(process.cwd(), filepath);
- if (cache && loadCache.has(absPath)) {
- return loadCache.get(absPath);
- }
- const { base, ext } = path.parse(absPath);
- const loaderKey = ext || 'noExt';
- const loader = loaders[loaderKey];
- validateLoader(loader, loaderKey);
- const content = String(fs.readFileSync(absPath));
- if (base === 'package.json') {
- const pkg = loader(absPath, content);
- return transform({
- config: getPackageProp(packageProp, pkg),
- filepath: absPath,
- });
- }
- const result = {
- config: null,
- filepath: absPath,
- };
- const isEmpty = content.trim() === '';
- if (isEmpty && ignoreEmptySearchPlaces)
- return emplace(loadCache, absPath, transform({
- filepath: absPath,
- config: undefined,
- isEmpty: true,
- }));
- result.config = isEmpty ? undefined : loader(absPath, content);
- return emplace(loadCache, absPath, transform(isEmpty ? { ...result, isEmpty, config: undefined } : result));
- },
- clearLoadCache() {
- if (cache)
- loadCache.clear();
- },
- clearSearchCache() {
- if (cache)
- searchCache.clear();
- },
- clearCaches() {
- if (cache) {
- loadCache.clear();
- searchCache.clear();
- }
- },
- };
-}
-exports.lilconfigSync = lilconfigSync;
diff --git a/node_modules/lilconfig/package.json b/node_modules/lilconfig/package.json
index 4782b541..a40f62c8 100644
--- a/node_modules/lilconfig/package.json
+++ b/node_modules/lilconfig/package.json
@@ -1,48 +1,44 @@
{
- "name": "lilconfig",
- "version": "3.0.0",
- "description": "A zero-dependency alternative to cosmiconfig",
- "main": "dist/index.js",
- "types": "dist/index.d.ts",
- "scripts": {
- "prebuild": "npm run clean",
- "build": "tsc --declaration",
- "postbuild": "du -h ./dist/*",
- "clean": "rm -rf ./dist",
- "test": "jest --coverage",
- "lint": "eslint ./src/*.ts"
- },
- "keywords": [
- "cosmiconfig",
- "config",
- "configuration",
- "search"
- ],
- "files": [
- "dist/*"
- ],
- "repository": {
- "type": "git",
- "url": "https://github.com/antonk52/lilconfig"
- },
- "bugs": "https://github.com/antonk52/lilconfig/issues",
- "author": "antonk52",
- "license": "MIT",
- "devDependencies": {
- "@types/jest": "^27.0.2",
- "@types/node": "^14.18.36",
- "@typescript-eslint/eslint-plugin": "^5.54.0",
- "@typescript-eslint/parser": "^5.54.0",
- "cosmiconfig": "^7.1.0",
- "eslint": "^8.35.0",
- "eslint-config-prettier": "^8.6.0",
- "eslint-plugin-prettier": "^4.2.1",
- "jest": "^27.3.1",
- "prettier": "^2.8.4",
- "ts-jest": "27.0.7",
- "typescript": "4.4.4"
- },
- "engines": {
- "node": ">=14"
- }
+ "name": "lilconfig",
+ "version": "3.1.1",
+ "description": "A zero-dependency alternative to cosmiconfig",
+ "main": "src/index.js",
+ "types": "src/index.d.ts",
+ "scripts": {
+ "test": "NODE_OPTIONS=--experimental-vm-modules ./node_modules/.bin/jest --coverage",
+ "lint": "eslint ./src",
+ "types": "tsc"
+ },
+ "keywords": [
+ "cosmiconfig",
+ "config",
+ "configuration",
+ "search"
+ ],
+ "files": [
+ "src/index.*"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/antonk52/lilconfig"
+ },
+ "bugs": "https://github.com/antonk52/lilconfig/issues",
+ "author": "antonk52",
+ "license": "MIT",
+ "devDependencies": {
+ "@types/jest": "^29.5.12",
+ "@types/node": "^14.18.63",
+ "cosmiconfig": "^8.3.6",
+ "eslint": "^8.56.0",
+ "eslint-config-prettier": "^9.1.0",
+ "eslint-plugin-prettier": "^5.1.3",
+ "jest": "^29.7.0",
+ "prettier": "^3.2.5",
+ "typescript": "^5.3.3",
+ "uvu": "^0.5.6"
+ },
+ "funding": "https://github.com/sponsors/antonk52",
+ "engines": {
+ "node": ">=14"
+ }
}
diff --git a/node_modules/lilconfig/readme.md b/node_modules/lilconfig/readme.md
index ac42df08..99c42623 100644
--- a/node_modules/lilconfig/readme.md
+++ b/node_modules/lilconfig/readme.md
@@ -42,6 +42,10 @@ lilconfigSync(
*/
```
+## ESM
+
+ESM configs can be loaded with **async API only**. Specifically `js` files in projects with `"type": "module"` in `package.json` or `mjs` files.
+
## Difference to `cosmiconfig`
Lilconfig does not intend to be 100% compatible with `cosmiconfig` but tries to mimic it where possible. The key difference is **no** support for yaml files out of the box(`lilconfig` attempts to parse files with no extension as JSON instead of YAML). You can still add the support for YAML files by providing a loader, see an [example](#yaml-loader) below.
@@ -87,29 +91,6 @@ lilconfig('myapp', options)
});
```
-### ESM loader
-
-Lilconfig v2 does not support ESM modules out of the box. However, you can support it with a custom a loader. Note that this will only work with the async `lilconfig` function and won't work with the sync `lilconfigSync`.
-
-```js
-import {lilconfig} from 'lilconfig';
-
-const loadEsm = filepath => import(filepath);
-
-lilconfig('myapp', {
- loaders: {
- '.js': loadEsm,
- '.mjs': loadEsm,
- }
-})
- .search()
- .then(result => {
- result // {config, filepath}
-
- result.config.default // if config uses `export default`
- });
-```
-
## Version correlation
- lilconig v1 → cosmiconfig v6