123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.cosmiconfig = cosmiconfig;
- exports.cosmiconfigSync = cosmiconfigSync;
- exports.metaSearchPlaces = exports.defaultLoadersSync = 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 */
- // this needs to be hardcoded, as this is intended for end users, who can't supply options at this point
- const metaSearchPlaces = ['package.json', '.config.json', '.config.yaml', '.config.yml', '.config.js', '.config.cjs', '.config.mjs']; // do not allow mutation of default loaders. Make sure it is set inside options
- exports.metaSearchPlaces = metaSearchPlaces;
- const defaultLoaders = Object.freeze({
- '.mjs': _loaders.loaders.loadJs,
- '.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 defaultLoadersSync = Object.freeze({
- '.cjs': _loaders.loaders.loadJsSync,
- '.js': _loaders.loaders.loadJsSync,
- '.json': _loaders.loaders.loadJson,
- '.yaml': _loaders.loaders.loadYaml,
- '.yml': _loaders.loaders.loadYaml,
- noExt: _loaders.loaders.loadYaml
- });
- exports.defaultLoadersSync = defaultLoadersSync;
- const identity = function identity(x) {
- return x;
- };
- function replaceMetaPlaceholders(paths, moduleName) {
- return paths.map(path => path.replace('{name}', moduleName));
- }
- function getExplorerOptions(moduleName, options) {
- var _metaConfig$config;
- const metaExplorer = new _ExplorerSync.ExplorerSync({
- packageProp: 'cosmiconfig',
- stopDir: process.cwd(),
- searchPlaces: metaSearchPlaces,
- ignoreEmptySearchPlaces: false,
- usePackagePropInConfigFiles: true,
- loaders: defaultLoaders,
- transform: identity,
- cache: true,
- metaConfigFilePath: null
- });
- const metaConfig = metaExplorer.searchSync();
- if (!metaConfig) {
- return options;
- }
- if ((_metaConfig$config = metaConfig.config) !== null && _metaConfig$config !== void 0 && _metaConfig$config.loaders) {
- throw new Error('Can not specify loaders in meta config file');
- }
- const overrideOptions = metaConfig.config ?? {};
- if (overrideOptions.searchPlaces) {
- overrideOptions.searchPlaces = replaceMetaPlaceholders(overrideOptions.searchPlaces, moduleName);
- }
- overrideOptions.metaConfigFilePath = metaConfig.filepath;
- return { ...options,
- ...overrideOptions
- };
- }
- function cosmiconfig(moduleName, options = {}) {
- const explorerOptions = getExplorerOptions(moduleName, options);
- const normalizedOptions = normalizeOptions(moduleName, explorerOptions);
- 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 explorerOptions = getExplorerOptions(moduleName, options);
- const normalizedOptions = normalizeOptionsSync(moduleName, explorerOptions);
- 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)
- };
- }
- 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}rc.mjs`, `.config/${moduleName}rc`, `.config/${moduleName}rc.json`, `.config/${moduleName}rc.yaml`, `.config/${moduleName}rc.yml`, `.config/${moduleName}rc.js`, `.config/${moduleName}rc.cjs`, `.config/${moduleName}rc.mjs`, `${moduleName}.config.js`, `${moduleName}.config.cjs`, `${moduleName}.config.mjs`].filter(Boolean),
- ignoreEmptySearchPlaces: true,
- stopDir: _os.default.homedir(),
- cache: true,
- transform: identity,
- loaders: defaultLoaders,
- metaConfigFilePath: null
- };
- const normalizedOptions = { ...defaults,
- ...options,
- loaders: { ...defaults.loaders,
- ...options.loaders
- }
- };
- return normalizedOptions;
- }
- function normalizeOptionsSync(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`, `.config/${moduleName}rc`, `.config/${moduleName}rc.json`, `.config/${moduleName}rc.yaml`, `.config/${moduleName}rc.yml`, `.config/${moduleName}rc.js`, `.config/${moduleName}rc.cjs`, `${moduleName}.config.js`, `${moduleName}.config.cjs`],
- ignoreEmptySearchPlaces: true,
- stopDir: _os.default.homedir(),
- cache: true,
- transform: identity,
- loaders: defaultLoadersSync,
- metaConfigFilePath: null
- };
- const normalizedOptions = { ...defaults,
- ...options,
- loaders: { ...defaults.loaders,
- ...options.loaders
- }
- };
- return normalizedOptions;
- }
- //# sourceMappingURL=index.js.map
|