paranormal
Version:
Phenomenal Code Examples
121 lines (85 loc) • 3.13 kB
JavaScript
;
exports.__esModule = true;
exports.readFile = readFile;
exports.writeFile = writeFile;
exports.stat = stat;
exports.lstat = lstat;
exports.readdir = readdir;
exports.unlink = unlink;
exports.mkdirp = mkdirp;
exports.rimraf = rimraf;
exports.tempdir = tempdir;
exports.findGlobPatterns = findGlobPatterns;
exports.matchesGlobPatterns = matchesGlobPatterns;
exports.watchDirectory = watchDirectory;
var _typeablePromisify = require('typeable-promisify');
var _typeablePromisify2 = _interopRequireDefault(_typeablePromisify);
var _fs = require('fs');
var _fs2 = _interopRequireDefault(_fs);
var _mkdirp2 = require('mkdirp');
var _mkdirp3 = _interopRequireDefault(_mkdirp2);
var _rimraf2 = require('rimraf');
var _rimraf3 = _interopRequireDefault(_rimraf2);
var _tempy = require('tempy');
var _tempy2 = _interopRequireDefault(_tempy);
var _globby = require('globby');
var _globby2 = _interopRequireDefault(_globby);
var _micromatch = require('micromatch');
var _micromatch2 = _interopRequireDefault(_micromatch);
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _chokidar = require('chokidar');
var _chokidar2 = _interopRequireDefault(_chokidar);
var _signalExit = require('signal-exit');
var _signalExit2 = _interopRequireDefault(_signalExit);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function readFile(filePath) {
return (0, _typeablePromisify2.default)(cb => _fs2.default.readFile(filePath, cb));
}
function writeFile(filePath, fileContents) {
return (0, _typeablePromisify2.default)(cb => _fs2.default.writeFile(filePath, fileContents, cb));
}
function stat(filePath) {
return (0, _typeablePromisify2.default)(cb => _fs2.default.stat(filePath, cb));
}
function lstat(filePath) {
return (0, _typeablePromisify2.default)(cb => _fs2.default.lstat(filePath, cb));
}
function readdir(filePath) {
return (0, _typeablePromisify2.default)(cb => _fs2.default.readdir(filePath, cb));
}
function unlink(filePath) {
return (0, _typeablePromisify2.default)(cb => _fs2.default.unlink(filePath, cb));
}
function mkdirp(dirPath) {
return (0, _typeablePromisify2.default)(cb => (0, _mkdirp3.default)(dirPath, cb));
}
function rimraf(dirPath) {
return (0, _typeablePromisify2.default)(cb => (0, _rimraf3.default)(dirPath, cb));
}
let TEMP_DIRECTORIES = [];
function tempdir() {
let dirPath = _tempy2.default.directory();
TEMP_DIRECTORIES.push(dirPath);
return dirPath;
}
(0, _signalExit2.default)(async () => {
for (let dirPath of TEMP_DIRECTORIES) {
await rimraf(dirPath);
}
});
async function findGlobPatterns(cwd, patterns) {
let matches = await (0, _globby2.default)(patterns, { cwd });
return matches.map(match => _path2.default.join(cwd, match));
}
function matchesGlobPatterns(cwd, filePath, patterns) {
return _micromatch2.default.every(_path2.default.relative(cwd, filePath), patterns);
}
function watchDirectory(dirPath) {
return _chokidar2.default.watch(dirPath, {
recursive: true,
encoding: 'utf8',
persistent: true,
ignoreInitial: true
});
}