diff options
| author | ruki <waruqi@gmail.com> | 2018-11-08 00:38:48 +0800 |
|---|---|---|
| committer | ruki <waruqi@gmail.com> | 2018-11-07 21:53:09 +0800 |
| commit | 26105034da4fcce7ac883c899d781f016559310d (patch) | |
| tree | c459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/cosmiconfig/dist/index.js | |
| parent | 2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff) | |
| download | xmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip | |
switch to vuepress
Diffstat (limited to 'node_modules/cosmiconfig/dist/index.js')
| -rw-r--r-- | node_modules/cosmiconfig/dist/index.js | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/node_modules/cosmiconfig/dist/index.js b/node_modules/cosmiconfig/dist/index.js new file mode 100644 index 00000000..e88224f1 --- /dev/null +++ b/node_modules/cosmiconfig/dist/index.js @@ -0,0 +1,81 @@ +// +'use strict'; + +const os = require('os'); +const createExplorer = require('./createExplorer'); +const loaders = require('./loaders'); + +module.exports = cosmiconfig; + +function cosmiconfig( + moduleName , + options + + + + + + + + +) { + options = options || {}; + const defaults = { + packageProp: moduleName, + searchPlaces: [ + 'package.json', + `.${moduleName}rc`, + `.${moduleName}rc.json`, + `.${moduleName}rc.yaml`, + `.${moduleName}rc.yml`, + `.${moduleName}rc.js`, + `${moduleName}.config.js`, + ], + ignoreEmptySearchPlaces: true, + stopDir: os.homedir(), + cache: true, + transform: identity, + }; + const normalizedOptions = Object.assign( + {}, + defaults, + options, + { + loaders: normalizeLoaders(options.loaders), + } + ); + + return createExplorer(normalizedOptions); +} + +cosmiconfig.loadJs = loaders.loadJs; +cosmiconfig.loadJson = loaders.loadJson; +cosmiconfig.loadYaml = loaders.loadYaml; + +function normalizeLoaders(rawLoaders ) { + const defaults = { + '.js': { sync: loaders.loadJs, async: loaders.loadJs }, + '.json': { sync: loaders.loadJson, async: loaders.loadJson }, + '.yaml': { sync: loaders.loadYaml, async: loaders.loadYaml }, + '.yml': { sync: loaders.loadYaml, async: loaders.loadYaml }, + noExt: { sync: loaders.loadYaml, async: loaders.loadYaml }, + }; + + if (!rawLoaders) { + return defaults; + } + + return Object.keys(rawLoaders).reduce((result, ext) => { + const entry = rawLoaders && rawLoaders[ext]; + if (typeof entry === 'function') { + result[ext] = { sync: entry, async: entry }; + } else { + result[ext] = entry; + } + return result; + }, defaults); +} + +function identity(x) { + return x; +} |
