aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-10-05 17:58:26 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-10-05 18:07:41 -0700
commit632e4ac6acd4bd2aa2147eca5c72df12a768d71d (patch)
treee79f575999ebb624866e220ab76b0d4e3781f00e /src
parent18ae17871d1e69ebaad52119aef648bf60761fd2 (diff)
downloadbun-632e4ac6acd4bd2aa2147eca5c72df12a768d71d.tar.gz
bun-632e4ac6acd4bd2aa2147eca5c72df12a768d71d.tar.zst
bun-632e4ac6acd4bd2aa2147eca5c72df12a768d71d.zip
Improve stack traces in fs functions
This is a hack
Diffstat (limited to 'src')
-rw-r--r--src/bun.js/fs.exports.js119
1 files changed, 57 insertions, 62 deletions
diff --git a/src/bun.js/fs.exports.js b/src/bun.js/fs.exports.js
index f8e44f330..495250a3a 100644
--- a/src/bun.js/fs.exports.js
+++ b/src/bun.js/fs.exports.js
@@ -107,19 +107,13 @@ export var lutimes = function lutimes(...args) {
};
function callbackify(fsFunction, args) {
- queueMicrotask(function () {
- try {
- args[args.length - 1](
- null,
- fsFunction.apply(fs, args.slice(0, args.length - 1))
- );
- } catch (err) {
- args[args.length - 1](err);
- } finally {
- // ensure we don't leak it
- args = null;
- }
- });
+
+ try {
+ const result = fsFunction.apply(fs, args.slice(0, args.length - 1));
+ queueMicrotask(() => args[args.length - 1](null, result));
+ } catch (e) {
+ queueMicrotask(() => args[args.length - 1](e));
+ }
}
// note: this is not quite the same as how node does it
@@ -197,11 +191,11 @@ export var createWriteStream = fs.createWriteStream.bind(fs);
export var promises = {
access: promisify(fs.accessSync),
appendFile: promisify(fs.appendFileSync),
+ chmod: promisify(fs.chmodSync),
+ chown: promisify(fs.chownSync),
close: promisify(fs.closeSync),
copyFile: promisify(fs.copyFileSync),
exists: promisify(fs.existsSync),
- chown: promisify(fs.chownSync),
- chmod: promisify(fs.chmodSync),
fchmod: promisify(fs.fchmodSync),
fchown: promisify(fs.fchownSync),
fstat: promisify(fs.fstatSync),
@@ -212,23 +206,23 @@ export var promises = {
lchown: promisify(fs.lchownSync),
link: promisify(fs.linkSync),
lstat: promisify(fs.lstatSync),
+ lutimes: promisify(fs.lutimesSync),
mkdir: promisify(fs.mkdirSync),
mkdtemp: promisify(fs.mkdtempSync),
open: promisify(fs.openSync),
read: promisify(fs.readSync),
- write: promisify(fs.writeSync),
readdir: promisify(fs.readdirSync),
- writeFile: promisify(fs.writeFileSync),
readlink: promisify(fs.readlinkSync),
realpath: promisify(fs.realpathSync),
rename: promisify(fs.renameSync),
+ rm: promisify(fs.rmSync),
stat: promisify(fs.statSync),
symlink: promisify(fs.symlinkSync),
truncate: promisify(fs.truncateSync),
unlink: promisify(fs.unlinkSync),
utimes: promisify(fs.utimesSync),
- lutimes: promisify(fs.lutimesSync),
- rm: promisify(fs.rmSync),
+ write: promisify(fs.writeSync),
+ writeFile: promisify(fs.writeFileSync),
};
promises.readFile = promises.readfile = promisify(fs.readFileSync);
@@ -240,76 +234,77 @@ realpathSync.native = realpathSync;
export default {
[Symbol.for("CommonJS")]: 0,
access,
+ accessSync,
appendFile,
+ appendFileSync,
+ chmod,
+ chmodSync,
+ chown,
+ chownSync,
close,
+ closeSync,
+ constants,
copyFile,
+ copyFileSync,
+ createReadStream,
+ createWriteStream,
exists,
- chown,
- chmod,
+ existsSync,
fchmod,
+ fchmodSync,
fchown,
+ fchownSync,
fstat,
+ fstatSync,
fsync,
+ fsyncSync,
ftruncate,
+ ftruncateSync,
futimes,
+ futimesSync,
lchmod,
+ lchmodSync,
lchown,
+ lchownSync,
link,
+ linkSync,
lstat,
+ lstatSync,
+ lutimes,
+ lutimesSync,
mkdir,
+ mkdirSync,
mkdtemp,
+ mkdtempSync,
open,
+ openSync,
+ promises,
read,
- write,
- readdir,
readFile,
- writeFile,
- readlink,
- realpath,
- rename,
- stat,
- symlink,
- truncate,
- unlink,
- utimes,
- lutimes,
- accessSync,
- appendFileSync,
- closeSync,
- copyFileSync,
- existsSync,
- chownSync,
- chmodSync,
- fchmodSync,
- fchownSync,
- fstatSync,
- fsyncSync,
- ftruncateSync,
- futimesSync,
- lchmodSync,
- lchownSync,
- linkSync,
- lstatSync,
- mkdirSync,
- mkdtempSync,
- openSync,
+ readFileSync,
readSync,
- writeSync,
+ readdir,
readdirSync,
- readFileSync,
- writeFileSync,
- rmSync,
+ readlink,
readlinkSync,
+ realpath,
realpathSync,
+ rename,
renameSync,
+ rm,
+ rmSync,
+ stat,
statSync,
+ symlink,
symlinkSync,
+ truncate,
truncateSync,
+ unlink,
unlinkSync,
+ utimes,
utimesSync,
- lutimesSync,
- createReadStream,
- createWriteStream,
- constants,
- promises,
+ write,
+ writeFile,
+ writeFileSync,
+ writeSync,
};