UNPKG

7.34 kBSource Map (JSON)View Raw
1{"version":3,"file":"Explorer.js","names":["Explorer","ExplorerBase","constructor","options","search","searchFrom","process","cwd","config","metaConfigFilePath","_loadFile","isEmpty","searchFromDirectory","getDirectory","dir","absoluteDir","path","resolve","run","result","searchDirectory","nextDir","nextDirectoryToSearch","transform","searchCache","cacheWrapper","place","searchPlaces","placeResult","loadSearchPlace","shouldSearchStopWithResult","filepath","join","fileContents","readFile","createCosmiconfigResult","loadFileContent","content","trim","undefined","loader","getLoaderEntryForFile","e","forceProp","fileContent","loadedContentToCosmiconfigResult","load","validateFilePath","absoluteFilePath","runLoad","throwNotFound","loadCache"],"sources":["../src/Explorer.ts"],"sourcesContent":["import path from 'path';\nimport { cacheWrapper } from './cacheWrapper';\nimport { ExplorerBase } from './ExplorerBase';\nimport { getDirectory } from './getDirectory';\nimport { readFile } from './readFile';\nimport { CosmiconfigResult, ExplorerOptions, LoadedFileContent } from './types';\n\nclass Explorer extends ExplorerBase<ExplorerOptions> {\n public constructor(options: ExplorerOptions) {\n super(options);\n }\n\n public async search(\n searchFrom: string = process.cwd(),\n ): Promise<CosmiconfigResult> {\n if (this.config.metaConfigFilePath) {\n const config = await this._loadFile(this.config.metaConfigFilePath, true);\n if (config && !config.isEmpty) {\n return config;\n }\n }\n return await this.searchFromDirectory(await getDirectory(searchFrom));\n }\n\n private async searchFromDirectory(dir: string): Promise<CosmiconfigResult> {\n const absoluteDir = path.resolve(process.cwd(), dir);\n\n const run = async (): Promise<CosmiconfigResult> => {\n const result = await this.searchDirectory(absoluteDir);\n const nextDir = this.nextDirectoryToSearch(absoluteDir, result);\n\n if (nextDir) {\n return this.searchFromDirectory(nextDir);\n }\n\n return await this.config.transform(result);\n };\n\n if (this.searchCache) {\n return cacheWrapper(this.searchCache, absoluteDir, run);\n }\n\n return run();\n }\n\n private async searchDirectory(dir: string): Promise<CosmiconfigResult> {\n for await (const place of this.config.searchPlaces) {\n const placeResult = await this.loadSearchPlace(dir, place);\n\n if (this.shouldSearchStopWithResult(placeResult)) {\n return placeResult;\n }\n }\n\n // config not found\n return null;\n }\n\n private async loadSearchPlace(\n dir: string,\n place: string,\n ): Promise<CosmiconfigResult> {\n const filepath = path.join(dir, place);\n const fileContents = await readFile(filepath);\n\n return await this.createCosmiconfigResult(filepath, fileContents, false);\n }\n\n private async loadFileContent(\n filepath: string,\n content: string | null,\n ): Promise<LoadedFileContent> {\n if (content === null) {\n return null;\n }\n if (content.trim() === '') {\n return undefined;\n }\n const loader = this.getLoaderEntryForFile(filepath);\n try {\n return await loader(filepath, content);\n } catch (e: any) {\n e.filepath = filepath;\n throw e;\n }\n }\n\n private async createCosmiconfigResult(\n filepath: string,\n content: string | null,\n forceProp: boolean,\n ): Promise<CosmiconfigResult> {\n const fileContent = await this.loadFileContent(filepath, content);\n\n return this.loadedContentToCosmiconfigResult(\n filepath,\n fileContent,\n forceProp,\n );\n }\n\n public async load(filepath: string): Promise<CosmiconfigResult> {\n return this._loadFile(filepath, false);\n }\n\n private async _loadFile(\n filepath: string,\n forceProp: boolean,\n ): Promise<CosmiconfigResult> {\n this.validateFilePath(filepath);\n const absoluteFilePath = path.resolve(process.cwd(), filepath);\n\n const runLoad = async (): Promise<CosmiconfigResult> => {\n const fileContents = await readFile(absoluteFilePath, {\n throwNotFound: true,\n });\n\n const result = await this.createCosmiconfigResult(\n absoluteFilePath,\n fileContents,\n forceProp,\n );\n\n return await this.config.transform(result);\n };\n\n if (this.loadCache) {\n return cacheWrapper(this.loadCache, absoluteFilePath, runLoad);\n }\n\n return runLoad();\n }\n}\n\nexport { Explorer };\n"],"mappings":"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"}
\No newline at end of file