UNPKG

1.81 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const fs = require("fs");
4// fs.promises polyfill for node 8.x
5if (!('promises' in fs)) {
6 class FileHandle {
7 constructor(fd) {
8 this.fd = fd;
9 }
10 stat() {
11 return new Promise((resolve, reject) => {
12 fs.fstat(this.fd, (err, stats) => {
13 if (err) {
14 reject(err);
15 }
16 else {
17 resolve(stats);
18 }
19 });
20 });
21 }
22 read(buffer, offset, length, position) {
23 return new Promise((resolve, reject) => {
24 fs.read(this.fd, buffer, offset, length, position, (err) => {
25 if (err) {
26 reject(err);
27 }
28 else {
29 resolve();
30 }
31 });
32 });
33 }
34 close() {
35 return new Promise((resolve, reject) => {
36 fs.close(this.fd, (err) => {
37 if (err) {
38 reject(err);
39 }
40 else {
41 resolve();
42 }
43 });
44 });
45 }
46 }
47 Object.defineProperty(fs, 'promises', {
48 value: {
49 open: (filepath, flags) => (new Promise((resolve, reject) => {
50 fs.open(filepath, flags, (err, fd) => {
51 if (err) {
52 reject(err);
53 }
54 else {
55 resolve(new FileHandle(fd));
56 }
57 });
58 })),
59 },
60 writable: false
61 });
62}