Make fs extensible

This commit is contained in:
Jarred Sumner
2022-09-06 03:05:13 -07:00
parent 07e2c898c6
commit 308affdcf0

View File

@@ -1,114 +1,115 @@
var fs = Bun.fs();
var _fs = Bun.fs();
var fs = Object.create(_fs);
export function access(...args) {
export var access = function access(...args) {
callbackify(fs.accessSync, args);
}
export function appendFile(...args) {
};
export var appendFile = function appendFile(...args) {
callbackify(fs.appendFileSync, args);
}
export function close(...args) {
};
export var close = function close(...args) {
callbackify(fs.closeSync, args);
}
export function copyFile(...args) {
};
export var copyFile = function copyFile(...args) {
callbackify(fs.copyFileSync, args);
}
export function exists(...args) {
};
export var exists = function exists(...args) {
callbackify(fs.existsSync, args);
}
export function chown(...args) {
};
export var chown = function chown(...args) {
callbackify(fs.chownSync, args);
}
export function chmod(...args) {
};
export var chmod = function chmod(...args) {
callbackify(fs.chmodSync, args);
}
export function fchmod(...args) {
};
export var fchmod = function fchmod(...args) {
callbackify(fs.fchmodSync, args);
}
export function fchown(...args) {
};
export var fchown = function fchown(...args) {
callbackify(fs.fchownSync, args);
}
export function fstat(...args) {
};
export var fstat = function fstat(...args) {
callbackify(fs.fstatSync, args);
}
export function fsync(...args) {
};
export var fsync = function fsync(...args) {
callbackify(fs.fsyncSync, args);
}
export function ftruncate(...args) {
};
export var ftruncate = function ftruncate(...args) {
callbackify(fs.ftruncateSync, args);
}
export function futimes(...args) {
};
export var futimes = function futimes(...args) {
callbackify(fs.futimesSync, args);
}
export function lchmod(...args) {
};
export var lchmod = function lchmod(...args) {
callbackify(fs.lchmodSync, args);
}
export function lchown(...args) {
};
export var lchown = function lchown(...args) {
callbackify(fs.lchownSync, args);
}
export function link(...args) {
};
export var link = function link(...args) {
callbackify(fs.linkSync, args);
}
export function lstat(...args) {
};
export var lstat = function lstat(...args) {
callbackify(fs.lstatSync, args);
}
export function mkdir(...args) {
};
export var mkdir = function mkdir(...args) {
callbackify(fs.mkdirSync, args);
}
export function mkdtemp(...args) {
};
export var mkdtemp = function mkdtemp(...args) {
callbackify(fs.mkdtempSync, args);
}
export function open(...args) {
};
export var open = function open(...args) {
callbackify(fs.openSync, args);
}
export function read(...args) {
};
export var read = function read(...args) {
callbackify(fs.readSync, args);
}
export function write(...args) {
};
export var write = function write(...args) {
callbackify(fs.writeSync, args);
}
export function readdir(...args) {
};
export var readdir = function readdir(...args) {
callbackify(fs.readdirSync, args);
}
export function readFile(...args) {
};
export var readFile = function readFile(...args) {
callbackify(fs.readFileSync, args);
}
export function writeFile(...args) {
};
export var writeFile = function writeFile(...args) {
callbackify(fs.writeFileSync, args);
}
export function readlink(...args) {
};
export var readlink = function readlink(...args) {
callbackify(fs.readlinkSync, args);
}
export function realpath(...args) {
};
export var realpath = function realpath(...args) {
callbackify(fs.realpathSync, args);
}
export function rename(...args) {
};
export var rename = function rename(...args) {
callbackify(fs.renameSync, args);
}
export function stat(...args) {
};
export var stat = function stat(...args) {
callbackify(fs.statSync, args);
}
export function symlink(...args) {
};
export var symlink = function symlink(...args) {
callbackify(fs.symlinkSync, args);
}
export function truncate(...args) {
};
export var truncate = function truncate(...args) {
callbackify(fs.truncateSync, args);
}
export function unlink(...args) {
};
export var unlink = function unlink(...args) {
callbackify(fs.unlinkSync, args);
}
export function utimes(...args) {
};
export var utimes = function utimes(...args) {
callbackify(fs.utimesSync, args);
}
export function lutimes(...args) {
};
export var lutimes = function lutimes(...args) {
callbackify(fs.lutimesSync, args);
}
};
function callbackify(fsFunction, args) {
queueMicrotask(function () {
try {
args[args.length - 1](
null,
fsFunction.apply(fs, args.slice(0, args.length - 1))
fsFunction.apply(_fs, args.slice(0, args.length - 1))
);
} catch (err) {
args[args.length - 1](err);
@@ -130,7 +131,7 @@ function promisify(fsFunction) {
[fsFunction.name]: function (resolve, reject, args) {
var result;
try {
result = fsFunction.apply(fs, args);
result = fsFunction.apply(_fs, args);
args = undefined;
} catch (err) {
args = undefined;
@@ -152,43 +153,43 @@ function promisify(fsFunction) {
};
}
export var accessSync = fs.accessSync.bind(fs);
export var appendFileSync = fs.appendFileSync.bind(fs);
export var closeSync = fs.closeSync.bind(fs);
export var copyFileSync = fs.copyFileSync.bind(fs);
export var existsSync = fs.existsSync.bind(fs);
export var chownSync = fs.chownSync.bind(fs);
export var chmodSync = fs.chmodSync.bind(fs);
export var fchmodSync = fs.fchmodSync.bind(fs);
export var fchownSync = fs.fchownSync.bind(fs);
export var fstatSync = fs.fstatSync.bind(fs);
export var fsyncSync = fs.fsyncSync.bind(fs);
export var ftruncateSync = fs.ftruncateSync.bind(fs);
export var futimesSync = fs.futimesSync.bind(fs);
export var lchmodSync = fs.lchmodSync.bind(fs);
export var lchownSync = fs.lchownSync.bind(fs);
export var linkSync = fs.linkSync.bind(fs);
export var lstatSync = fs.lstatSync.bind(fs);
export var mkdirSync = fs.mkdirSync.bind(fs);
export var mkdtempSync = fs.mkdtempSync.bind(fs);
export var openSync = fs.openSync.bind(fs);
export var readSync = fs.readSync.bind(fs);
export var writeSync = fs.writeSync.bind(fs);
export var readdirSync = fs.readdirSync.bind(fs);
export var readFileSync = fs.readFileSync.bind(fs);
export var writeFileSync = fs.writeFileSync.bind(fs);
export var readlinkSync = fs.readlinkSync.bind(fs);
export var realpathSync = fs.realpathSync.bind(fs);
export var renameSync = fs.renameSync.bind(fs);
export var statSync = fs.statSync.bind(fs);
export var symlinkSync = fs.symlinkSync.bind(fs);
export var truncateSync = fs.truncateSync.bind(fs);
export var unlinkSync = fs.unlinkSync.bind(fs);
export var utimesSync = fs.utimesSync.bind(fs);
export var lutimesSync = fs.lutimesSync.bind(fs);
export var accessSync = fs.accessSync.bind(_fs);
export var appendFileSync = fs.appendFileSync.bind(_fs);
export var closeSync = fs.closeSync.bind(_fs);
export var copyFileSync = fs.copyFileSync.bind(_fs);
export var existsSync = fs.existsSync.bind(_fs);
export var chownSync = fs.chownSync.bind(_fs);
export var chmodSync = fs.chmodSync.bind(_fs);
export var fchmodSync = fs.fchmodSync.bind(_fs);
export var fchownSync = fs.fchownSync.bind(_fs);
export var fstatSync = fs.fstatSync.bind(_fs);
export var fsyncSync = fs.fsyncSync.bind(_fs);
export var ftruncateSync = fs.ftruncateSync.bind(_fs);
export var futimesSync = fs.futimesSync.bind(_fs);
export var lchmodSync = fs.lchmodSync.bind(_fs);
export var lchownSync = fs.lchownSync.bind(_fs);
export var linkSync = fs.linkSync.bind(_fs);
export var lstatSync = fs.lstatSync.bind(_fs);
export var mkdirSync = fs.mkdirSync.bind(_fs);
export var mkdtempSync = fs.mkdtempSync.bind(_fs);
export var openSync = fs.openSync.bind(_fs);
export var readSync = fs.readSync.bind(_fs);
export var writeSync = fs.writeSync.bind(_fs);
export var readdirSync = fs.readdirSync.bind(_fs);
export var readFileSync = fs.readFileSync.bind(_fs);
export var writeFileSync = fs.writeFileSync.bind(_fs);
export var readlinkSync = fs.readlinkSync.bind(_fs);
export var realpathSync = fs.realpathSync.bind(_fs);
export var renameSync = fs.renameSync.bind(_fs);
export var statSync = fs.statSync.bind(_fs);
export var symlinkSync = fs.symlinkSync.bind(_fs);
export var truncateSync = fs.truncateSync.bind(_fs);
export var unlinkSync = fs.unlinkSync.bind(_fs);
export var utimesSync = fs.utimesSync.bind(_fs);
export var lutimesSync = fs.lutimesSync.bind(_fs);
export var createReadStream = fs.createReadStream.bind(fs);
export var createWriteStream = fs.createWriteStream.bind(fs);
export var createReadStream = fs.createReadStream.bind(_fs);
export var createWriteStream = fs.createWriteStream.bind(_fs);
export var promises = {
access: promisify(fs.accessSync),
@@ -232,7 +233,7 @@ promises.readFile = promises.readfile = promisify(fs.readFileSync);
realpath.native = realpath;
realpathSync.native = realpathSync;
export default {
var object = {
access,
appendFile,
close,
@@ -306,3 +307,7 @@ export default {
constants,
promises,
};
var CJSInterop = () => object;
CJSInterop[Symbol.for("CommonJS")] = true;
export default CJSInterop;