UNPKG

file-reader-writer

Version:
54 lines (53 loc) 2.05 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const fs_1 = __importDefault(require("fs")); const bluebird_1 = __importDefault(require("bluebird")); const fsOpen = bluebird_1.default.promisify(fs_1.default.open); const fsClose = bluebird_1.default.promisify(fs_1.default.close); class FileBase { constructor(file, flags) { this.pointer = 0; this.file = file; this.flags = flags; } init() { return __awaiter(this, void 0, void 0, function* () { if (typeof this.file === 'number') { this.fd = this.file; } else { this.fd = yield fsOpen(this.file, this.flags); } return this.refreshStats(); }); } destroy() { return __awaiter(this, void 0, void 0, function* () { if (typeof this.file !== 'number' && typeof this.fd === 'number') { yield fsClose(this.fd); } this.fd = this.file = -1; }); } offset(size) { this.pointer += size; return this; } setPointer(pointer) { this.pointer = pointer; return this; } } exports.FileBase = FileBase;