You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.7 KiB
82 lines
2.7 KiB
"use strict"; |
|
|
|
Object.defineProperty(exports, "__esModule", { |
|
value: true |
|
}); |
|
exports.cosmiconfig = cosmiconfig; |
|
exports.cosmiconfigSync = cosmiconfigSync; |
|
exports.defaultLoaders = void 0; |
|
|
|
var _os = _interopRequireDefault(require("os")); |
|
|
|
var _Explorer = require("./Explorer"); |
|
|
|
var _ExplorerSync = require("./ExplorerSync"); |
|
|
|
var _loaders = require("./loaders"); |
|
|
|
var _types = require("./types"); |
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
|
|
|
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ |
|
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type |
|
function cosmiconfig(moduleName, options = {}) { |
|
const normalizedOptions = normalizeOptions(moduleName, options); |
|
const explorer = new _Explorer.Explorer(normalizedOptions); |
|
return { |
|
search: explorer.search.bind(explorer), |
|
load: explorer.load.bind(explorer), |
|
clearLoadCache: explorer.clearLoadCache.bind(explorer), |
|
clearSearchCache: explorer.clearSearchCache.bind(explorer), |
|
clearCaches: explorer.clearCaches.bind(explorer) |
|
}; |
|
} // eslint-disable-next-line @typescript-eslint/explicit-function-return-type |
|
|
|
|
|
function cosmiconfigSync(moduleName, options = {}) { |
|
const normalizedOptions = normalizeOptions(moduleName, options); |
|
const explorerSync = new _ExplorerSync.ExplorerSync(normalizedOptions); |
|
return { |
|
search: explorerSync.searchSync.bind(explorerSync), |
|
load: explorerSync.loadSync.bind(explorerSync), |
|
clearLoadCache: explorerSync.clearLoadCache.bind(explorerSync), |
|
clearSearchCache: explorerSync.clearSearchCache.bind(explorerSync), |
|
clearCaches: explorerSync.clearCaches.bind(explorerSync) |
|
}; |
|
} // do not allow mutation of default loaders. Make sure it is set inside options |
|
|
|
|
|
const defaultLoaders = Object.freeze({ |
|
'.cjs': _loaders.loaders.loadJs, |
|
'.js': _loaders.loaders.loadJs, |
|
'.json': _loaders.loaders.loadJson, |
|
'.yaml': _loaders.loaders.loadYaml, |
|
'.yml': _loaders.loaders.loadYaml, |
|
noExt: _loaders.loaders.loadYaml |
|
}); |
|
exports.defaultLoaders = defaultLoaders; |
|
|
|
const identity = function identity(x) { |
|
return x; |
|
}; |
|
|
|
function normalizeOptions(moduleName, options) { |
|
const defaults = { |
|
packageProp: moduleName, |
|
searchPlaces: ['package.json', `.${moduleName}rc`, `.${moduleName}rc.json`, `.${moduleName}rc.yaml`, `.${moduleName}rc.yml`, `.${moduleName}rc.js`, `.${moduleName}rc.cjs`, `${moduleName}.config.js`, `${moduleName}.config.cjs`], |
|
ignoreEmptySearchPlaces: true, |
|
stopDir: _os.default.homedir(), |
|
cache: true, |
|
transform: identity, |
|
loaders: defaultLoaders |
|
}; |
|
const normalizedOptions = { ...defaults, |
|
...options, |
|
loaders: { ...defaults.loaders, |
|
...options.loaders |
|
} |
|
}; |
|
return normalizedOptions; |
|
} |
|
//# sourceMappingURL=index.js.map
|