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.
		
		
		
		
		
			
		
			
				
					
					
						
							159 lines
						
					
					
						
							4.5 KiB
						
					
					
				
			
		
		
	
	
							159 lines
						
					
					
						
							4.5 KiB
						
					
					
				"use strict"; | 
						|
Object.defineProperty(exports, "__esModule", { value: true }); | 
						|
var fs = require("fs"); | 
						|
var path = require("path"); | 
						|
var stripBom = require("strip-bom"); | 
						|
var stripComments = require("strip-json-comments"); | 
						|
var CONFIG_FILENAME = 'tsconfig.json'; | 
						|
function resolve(cwd, filename) { | 
						|
    if (!filename) { | 
						|
        return find(cwd); | 
						|
    } | 
						|
    var fullPath = path.resolve(cwd, filename); | 
						|
    return stat(fullPath) | 
						|
        .then(function (stats) { | 
						|
        if (isFile(stats)) { | 
						|
            return fullPath; | 
						|
        } | 
						|
        if (isDirectory(stats)) { | 
						|
            var configFile_1 = path.join(fullPath, CONFIG_FILENAME); | 
						|
            return stat(configFile_1) | 
						|
                .then(function (stats) { | 
						|
                if (isFile(stats)) { | 
						|
                    return configFile_1; | 
						|
                } | 
						|
                throw new TypeError("Cannot find a " + CONFIG_FILENAME + " file at the specified directory: " + filename); | 
						|
            }); | 
						|
        } | 
						|
        throw new TypeError("The specified path does not exist: " + filename); | 
						|
    }); | 
						|
} | 
						|
exports.resolve = resolve; | 
						|
function resolveSync(cwd, filename) { | 
						|
    if (!filename) { | 
						|
        return findSync(cwd); | 
						|
    } | 
						|
    var fullPath = path.resolve(cwd, filename); | 
						|
    var stats = statSync(fullPath); | 
						|
    if (isFile(stats)) { | 
						|
        return fullPath; | 
						|
    } | 
						|
    if (isDirectory(stats)) { | 
						|
        var configFile = path.join(fullPath, CONFIG_FILENAME); | 
						|
        var stats_1 = statSync(configFile); | 
						|
        if (isFile(stats_1)) { | 
						|
            return configFile; | 
						|
        } | 
						|
        throw new TypeError("Cannot find a " + CONFIG_FILENAME + " file at the specified directory: " + filename); | 
						|
    } | 
						|
    throw new TypeError("The specified path does not exist: " + filename); | 
						|
} | 
						|
exports.resolveSync = resolveSync; | 
						|
function find(dir) { | 
						|
    var configFile = path.resolve(dir, CONFIG_FILENAME); | 
						|
    return stat(configFile) | 
						|
        .then(function (stats) { | 
						|
        if (isFile(stats)) { | 
						|
            return configFile; | 
						|
        } | 
						|
        var parentDir = path.dirname(dir); | 
						|
        if (dir === parentDir) { | 
						|
            return; | 
						|
        } | 
						|
        return find(parentDir); | 
						|
    }); | 
						|
} | 
						|
exports.find = find; | 
						|
function findSync(dir) { | 
						|
    var configFile = path.resolve(dir, CONFIG_FILENAME); | 
						|
    var stats = statSync(configFile); | 
						|
    if (isFile(stats)) { | 
						|
        return configFile; | 
						|
    } | 
						|
    var parentDir = path.dirname(dir); | 
						|
    if (dir === parentDir) { | 
						|
        return; | 
						|
    } | 
						|
    return findSync(parentDir); | 
						|
} | 
						|
exports.findSync = findSync; | 
						|
function load(cwd, filename) { | 
						|
    return resolve(cwd, filename) | 
						|
        .then(function (path) { | 
						|
        if (path == null) { | 
						|
            return Promise.resolve({ | 
						|
                config: { | 
						|
                    files: [], | 
						|
                    compilerOptions: {} | 
						|
                } | 
						|
            }); | 
						|
        } | 
						|
        return readFile(path).then(function (config) { return ({ path: path, config: config }); }); | 
						|
    }); | 
						|
} | 
						|
exports.load = load; | 
						|
function loadSync(cwd, filename) { | 
						|
    var path = resolveSync(cwd, filename); | 
						|
    if (path == null) { | 
						|
        return { | 
						|
            config: { | 
						|
                files: [], | 
						|
                compilerOptions: {} | 
						|
            } | 
						|
        }; | 
						|
    } | 
						|
    var config = readFileSync(path); | 
						|
    return { path: path, config: config }; | 
						|
} | 
						|
exports.loadSync = loadSync; | 
						|
function readFile(filename) { | 
						|
    return new Promise(function (resolve, reject) { | 
						|
        fs.readFile(filename, 'utf8', function (err, contents) { | 
						|
            if (err) { | 
						|
                return reject(err); | 
						|
            } | 
						|
            try { | 
						|
                return resolve(parse(contents, filename)); | 
						|
            } | 
						|
            catch (err) { | 
						|
                return reject(err); | 
						|
            } | 
						|
        }); | 
						|
    }); | 
						|
} | 
						|
exports.readFile = readFile; | 
						|
function readFileSync(filename) { | 
						|
    var contents = fs.readFileSync(filename, 'utf8'); | 
						|
    return parse(contents, filename); | 
						|
} | 
						|
exports.readFileSync = readFileSync; | 
						|
function parse(contents, filename) { | 
						|
    var data = stripComments(stripBom(contents)); | 
						|
    if (/^\s*$/.test(data)) { | 
						|
        return {}; | 
						|
    } | 
						|
    return JSON.parse(data); | 
						|
} | 
						|
exports.parse = parse; | 
						|
function stat(filename) { | 
						|
    return new Promise(function (resolve, reject) { | 
						|
        fs.stat(filename, function (err, stats) { | 
						|
            return err ? resolve(undefined) : resolve(stats); | 
						|
        }); | 
						|
    }); | 
						|
} | 
						|
function statSync(filename) { | 
						|
    try { | 
						|
        return fs.statSync(filename); | 
						|
    } | 
						|
    catch (e) { | 
						|
        return; | 
						|
    } | 
						|
} | 
						|
function isFile(stats) { | 
						|
    return stats ? stats.isFile() || stats.isFIFO() : false; | 
						|
} | 
						|
function isDirectory(stats) { | 
						|
    return stats ? stats.isDirectory() : false; | 
						|
} | 
						|
//# sourceMappingURL=tsconfig.js.map
 |