ts-simple-ast
Version:
TypeScript compiler wrapper for AST navigation and code generation.
85 lines (83 loc) • 2.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const fs = require("fs");
const globby = require("globby");
const utils_1 = require("./utils");
/**
* @internal
*/
class DefaultFileSystemHost {
readFile(filePath, encoding = "utf-8") {
return fs.readFileSync(filePath, encoding);
}
writeFile(filePath, fileText) {
return new Promise((resolve, reject) => {
fs.writeFile(filePath, fileText, err => {
if (err)
reject(err);
else
resolve();
});
});
}
writeFileSync(filePath, fileText) {
fs.writeFileSync(filePath, fileText);
}
mkdir(dirPath) {
return new Promise((resolve, reject) => {
fs.mkdir(dirPath, err => {
if (err)
reject(err);
else
resolve();
});
});
}
mkdirSync(dirPath) {
fs.mkdirSync(dirPath);
}
fileExists(filePath) {
return new Promise((resolve, reject) => {
fs.stat(filePath, (err, stat) => {
if (err)
resolve(false);
else
resolve(stat.isFile());
});
});
}
fileExistsSync(filePath) {
try {
return fs.statSync(filePath).isFile();
}
catch (err) {
return false;
}
}
directoryExists(dirPath) {
return new Promise((resolve, reject) => {
fs.stat(dirPath, (err, stat) => {
if (err)
resolve(false);
else
resolve(stat.isDirectory());
});
});
}
directoryExistsSync(dirPath) {
try {
return fs.statSync(dirPath).isDirectory();
}
catch (err) {
return false;
}
}
getCurrentDirectory() {
return utils_1.FileUtils.getCurrentDirectory();
}
glob(patterns) {
return globby.sync(patterns);
}
}
exports.DefaultFileSystemHost = DefaultFileSystemHost;
//# sourceMappingURL=DefaultFileSystemHost.js.map