| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 | 
							- //      
 
- '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;
 
- }
 
 
  |