UNPKG

@reactionable/cli

Version:
97 lines 3.64 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.FileService = void 0; const fs_1 = require("fs"); const path_1 = require("path"); const inversify_1 = require("inversify"); const shelljs_1 = require("shelljs"); let FileService = class FileService { touchFileSync(path) { const time = new Date(); try { (0, fs_1.utimesSync)(path, time, time); } catch (err) { (0, fs_1.closeSync)((0, fs_1.openSync)(path, 'w')); } } fileExistsSync(path) { if (!(0, fs_1.existsSync)(path)) { return false; } return (0, fs_1.statSync)(path).isFile(); } dirExistsSync(path) { if (!(0, fs_1.existsSync)(path)) { return false; } return (0, fs_1.statSync)(path).isDirectory(); } fileDirExistsSync(path) { return this.dirExistsSync((0, path_1.dirname)(path)); } assertDirExists(path) { if (!this.dirExistsSync(path)) { throw new Error(`Directory "${path}" does not exist`); } return (0, fs_1.realpathSync)(path); } assertFileExists(path) { if (!this.fileExistsSync(path)) { throw new Error(`File "${path}" does not exist`); } return (0, fs_1.realpathSync)(path); } replaceFileExtension(filePath, newExtension, mustExist = false) { if (!this.fileExistsSync(filePath)) { if (mustExist) { throw new Error(`File "${filePath}" does not exist`); } return; } const newFilePath = (0, path_1.resolve)((0, path_1.dirname)(filePath), `${(0, path_1.basename)(filePath, (0, path_1.extname)(filePath))}.${newExtension.replace(/^[\s.]+/, '')}`); (0, shelljs_1.mv)(filePath, newFilePath); } mkdirSync(dirpath, recursive) { if (this.dirExistsSync(dirpath)) { return; } if (!this.fileDirExistsSync(dirpath)) { const parentDirectory = (0, path_1.dirname)(dirpath); if (!recursive) { throw new Error(`Unable to create directory "${dirpath}" in unexisting directory "${parentDirectory}"`); } } (0, fs_1.mkdirSync)(dirpath, { recursive }); } rmdirSync(dirpath) { if (!this.dirExistsSync(dirpath)) { return; } const list = (0, fs_1.readdirSync)(dirpath); for (const filepath of list) { const filename = (0, path_1.resolve)(dirpath, filepath); const stat = (0, fs_1.statSync)(filename); if (filename == '.' || filename == '..') { } else if (stat.isDirectory()) { this.rmdirSync(filename); } else { (0, fs_1.unlinkSync)(filename); } } (0, fs_1.rmdirSync)(dirpath); } }; FileService = __decorate([ (0, inversify_1.injectable)() ], FileService); exports.FileService = FileService; //# sourceMappingURL=FileService.js.map