{"version":3,"file":"ExplorerSync.js","names":["ExplorerSync","ExplorerBase","constructor","options","searchSync","searchFrom","process","cwd","startDirectory","getDirectorySync","result","searchFromDirectorySync","dir","absoluteDir","path","resolve","run","searchDirectorySync","nextDir","nextDirectoryToSearch","transformResult","config","transform","searchCache","cacheWrapperSync","place","searchPlaces","placeResult","loadSearchPlaceSync","shouldSearchStopWithResult","filepath","join","content","readFileSync","createCosmiconfigResultSync","loadFileContentSync","trim","undefined","loader","getLoaderEntryForFile","e","fileContent","loadedContentToCosmiconfigResult","loadSync","validateFilePath","absoluteFilePath","runLoadSync","throwNotFound","cosmiconfigResult","loadCache"],"sources":["../src/ExplorerSync.ts"],"sourcesContent":["import path from 'path';\nimport { cacheWrapperSync } from './cacheWrapper';\nimport { ExplorerBase } from './ExplorerBase';\nimport { getDirectorySync } from './getDirectory';\nimport { readFileSync } from './readFile';\nimport {\n CosmiconfigResult,\n ExplorerOptionsSync,\n LoadedFileContent,\n} from './types';\n\nclass ExplorerSync extends ExplorerBase {\n public constructor(options: ExplorerOptionsSync) {\n super(options);\n }\n\n public searchSync(searchFrom: string = process.cwd()): CosmiconfigResult {\n const startDirectory = getDirectorySync(searchFrom);\n const result = this.searchFromDirectorySync(startDirectory);\n\n return result;\n }\n\n private searchFromDirectorySync(dir: string): CosmiconfigResult {\n const absoluteDir = path.resolve(process.cwd(), dir);\n\n const run = (): CosmiconfigResult => {\n const result = this.searchDirectorySync(absoluteDir);\n const nextDir = this.nextDirectoryToSearch(absoluteDir, result);\n\n if (nextDir) {\n return this.searchFromDirectorySync(nextDir);\n }\n\n const transformResult = this.config.transform(result);\n\n return transformResult;\n };\n\n if (this.searchCache) {\n return cacheWrapperSync(this.searchCache, absoluteDir, run);\n }\n\n return run();\n }\n\n private searchDirectorySync(dir: string): CosmiconfigResult {\n for (const place of this.config.searchPlaces) {\n const placeResult = this.loadSearchPlaceSync(dir, place);\n\n if (this.shouldSearchStopWithResult(placeResult) === true) {\n return placeResult;\n }\n }\n\n // config not found\n return null;\n }\n\n private loadSearchPlaceSync(dir: string, place: string): CosmiconfigResult {\n const filepath = path.join(dir, place);\n const content = readFileSync(filepath);\n\n const result = this.createCosmiconfigResultSync(filepath, content);\n\n return result;\n }\n\n private loadFileContentSync(\n filepath: string,\n content: string | null,\n ): 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 loader(filepath, content);\n } catch (e) {\n e.filepath = filepath;\n throw e;\n }\n }\n\n private createCosmiconfigResultSync(\n filepath: string,\n content: string | null,\n ): CosmiconfigResult {\n const fileContent = this.loadFileContentSync(filepath, content);\n const result = this.loadedContentToCosmiconfigResult(filepath, fileContent);\n\n return result;\n }\n\n public loadSync(filepath: string): CosmiconfigResult {\n this.validateFilePath(filepath);\n const absoluteFilePath = path.resolve(process.cwd(), filepath);\n\n const runLoadSync = (): CosmiconfigResult => {\n const content = readFileSync(absoluteFilePath, { throwNotFound: true });\n const cosmiconfigResult = this.createCosmiconfigResultSync(\n absoluteFilePath,\n content,\n );\n\n const transformResult = this.config.transform(cosmiconfigResult);\n\n return transformResult;\n };\n\n if (this.loadCache) {\n return cacheWrapperSync(this.loadCache, absoluteFilePath, runLoadSync);\n }\n\n return runLoadSync();\n }\n}\n\nexport { ExplorerSync };\n"],"mappings":"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"}