This commit is contained in:
21
node_modules/lilconfig/LICENSE
generated
vendored
Normal file
21
node_modules/lilconfig/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2022 Anton Kastritskiy
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
48
node_modules/lilconfig/package.json
generated
vendored
Normal file
48
node_modules/lilconfig/package.json
generated
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"name": "lilconfig",
|
||||
"version": "2.1.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": ">=10"
|
||||
}
|
||||
}
|
||||
118
node_modules/lilconfig/readme.md
generated
vendored
Normal file
118
node_modules/lilconfig/readme.md
generated
vendored
Normal file
@@ -0,0 +1,118 @@
|
||||
# Lilconfig ⚙️
|
||||
[](https://badge.fury.io/js/lilconfig)
|
||||
[](https://packagephobia.now.sh/result?p=lilconfig)
|
||||
[](https://coveralls.io/github/antonk52/lilconfig)
|
||||
|
||||
A zero-dependency alternative to [cosmiconfig](https://www.npmjs.com/package/cosmiconfig) with the same API.
|
||||
|
||||
## Installation
|
||||
|
||||
```sh
|
||||
npm install lilconfig
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```js
|
||||
import {lilconfig, lilconfigSync} from 'lilconfig';
|
||||
|
||||
// all keys are optional
|
||||
const options = {
|
||||
stopDir: '/Users/you/some/dir',
|
||||
searchPlaces: ['package.json', 'myapp.conf.js'],
|
||||
ignoreEmptySearchPlaces: false
|
||||
}
|
||||
|
||||
lilconfig(
|
||||
'myapp',
|
||||
options // optional
|
||||
).search() // Promise<LilconfigResult>
|
||||
|
||||
lilconfigSync(
|
||||
'myapp',
|
||||
options // optional
|
||||
).load(pathToConfig) // LilconfigResult
|
||||
|
||||
/**
|
||||
* LilconfigResult
|
||||
* {
|
||||
* config: any; // your config
|
||||
* filepath: string;
|
||||
* }
|
||||
*/
|
||||
```
|
||||
|
||||
## Difference to `cosmiconfig`
|
||||
Lilconfig does not intend to be 100% compatible with `cosmiconfig` but tries to mimic it where possible. The key differences are:
|
||||
- **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.
|
||||
- **no** cache
|
||||
|
||||
### Options difference between the two.
|
||||
|
||||
|cosmiconfig option | lilconfig |
|
||||
|------------------------|-----------|
|
||||
|cache | ❌ |
|
||||
|loaders | ✅ |
|
||||
|ignoreEmptySearchPlaces | ✅ |
|
||||
|packageProp | ✅ |
|
||||
|searchPlaces | ✅ |
|
||||
|stopDir | ✅ |
|
||||
|transform | ✅ |
|
||||
|
||||
## Loaders examples
|
||||
|
||||
### Yaml loader
|
||||
|
||||
If you need the YAML support you can provide your own loader
|
||||
|
||||
```js
|
||||
import {lilconfig} from 'lilconfig';
|
||||
import yaml from 'yaml';
|
||||
|
||||
function loadYaml(filepath, content) {
|
||||
return yaml.parse(content);
|
||||
}
|
||||
|
||||
const options = {
|
||||
loaders: {
|
||||
'.yaml': loadYaml,
|
||||
'.yml': loadYaml,
|
||||
// loader for files with no extension
|
||||
noExt: loadYaml
|
||||
}
|
||||
};
|
||||
|
||||
lilconfig('myapp', options)
|
||||
.search()
|
||||
.then(result => {
|
||||
result // {config, filepath}
|
||||
});
|
||||
```
|
||||
|
||||
### 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
|
||||
- lilconig v2 → cosmiconfig v7
|
||||
Reference in New Issue
Block a user