12345678910111213141516171819202122232425 |
- 'use strict'
-
- const fs = require('fs')
- const pify = require('pify')
- const pTry = require('p-try')
- const pFinally = require('p-finally')
-
- const fsP = pify(fs)
-
- module.exports = (...args) => {
- const callback = args.pop()
- return fsP
- .open(...args)
- .then(fd => pFinally(pTry(callback, fd), _ => fsP.close(fd)))
- }
-
- module.exports.sync = (...args) => {
- const callback = args.pop()
- const fd = fs.openSync(...args)
- try {
- return callback(fd)
- } finally {
- fs.closeSync(fd)
- }
- }
|