UNPKG

native-file-system-adapter-ts

Version:
49 lines 1.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FileSystemWritableFileStreamImpl = void 0; class FileSystemWritableFileStreamImpl extends WritableStream { constructor(underlyingSink, strategy) { super(underlyingSink, strategy); // Stupid Safari hack to extend native classes // https://bugs.webkit.org/show_bug.cgi?id=226201 Object.setPrototypeOf(this, FileSystemWritableFileStreamImpl.prototype); this._closed = false; } close() { this._closed = true; const w = this.getWriter(); const p = w.close(); w.releaseLock(); return p; // return super.close ? super.close() : this.getWriter().close() } seek(position) { return this.write({ type: 'seek', position }); } truncate(size) { return this.write({ type: 'truncate', size }); } write(data) { if (this._closed) { return Promise.reject(new TypeError('Cannot write to a CLOSED writable stream')); } const writer = this.getWriter(); const p = writer.write(data); writer.releaseLock(); return p; } } exports.FileSystemWritableFileStreamImpl = FileSystemWritableFileStreamImpl; Object.defineProperty(FileSystemWritableFileStreamImpl.prototype, Symbol.toStringTag, { value: 'FileSystemWritableFileStream', writable: false, enumerable: false, configurable: true, }); Object.defineProperties(FileSystemWritableFileStreamImpl.prototype, { close: { enumerable: true }, seek: { enumerable: true }, truncate: { enumerable: true }, write: { enumerable: true }, }); //# sourceMappingURL=file-system-writable-file-stream.js.map