diff options
Diffstat (limited to 'src/javascript/jsc/fs.exports.js')
-rw-r--r-- | src/javascript/jsc/fs.exports.js | 228 |
1 files changed, 193 insertions, 35 deletions
diff --git a/src/javascript/jsc/fs.exports.js b/src/javascript/jsc/fs.exports.js index 923ef9801..e2f182137 100644 --- a/src/javascript/jsc/fs.exports.js +++ b/src/javascript/jsc/fs.exports.js @@ -1,39 +1,124 @@ var fs = Bun.fs(); -export default fs; -export var access = fs.access.bind(fs); -export var appendFile = fs.appendFile.bind(fs); -export var close = fs.close.bind(fs); -export var copyFile = fs.copyFile.bind(fs); -export var exists = fs.exists.bind(fs); -export var chown = fs.chown.bind(fs); -export var chmod = fs.chmod.bind(fs); -export var fchmod = fs.fchmod.bind(fs); -export var fchown = fs.fchown.bind(fs); -export var fstat = fs.fstat.bind(fs); -export var fsync = fs.fsync.bind(fs); -export var ftruncate = fs.ftruncate.bind(fs); -export var futimes = fs.futimes.bind(fs); -export var lchmod = fs.lchmod.bind(fs); -export var lchown = fs.lchown.bind(fs); -export var link = fs.link.bind(fs); -export var lstat = fs.lstat.bind(fs); -export var mkdir = fs.mkdir.bind(fs); -export var mkdtemp = fs.mkdtemp.bind(fs); -export var open = fs.open.bind(fs); -export var read = fs.read.bind(fs); -export var write = fs.write.bind(fs); -export var readdir = fs.readdir.bind(fs); -export var readFile = fs.readFile.bind(fs); -export var writeFile = fs.writeFile.bind(fs); -export var readlink = fs.readlink.bind(fs); -export var realpath = fs.realpath.bind(fs); -export var rename = fs.rename.bind(fs); -export var stat = fs.stat.bind(fs); -export var symlink = fs.symlink.bind(fs); -export var truncate = fs.truncate.bind(fs); -export var unlink = fs.unlink.bind(fs); -export var utimes = fs.utimes.bind(fs); -export var lutimes = fs.lutimes.bind(fs); + +export function access(...args) { + callbackify(fs.accessSync, args); +} +export function appendFile(...args) { + callbackify(fs.appendFileSync, args); +} +export function close(...args) { + callbackify(fs.closeSync, args); +} +export function copyFile(...args) { + callbackify(fs.copyFileSync, args); +} +export function exists(...args) { + callbackify(fs.existsSync, args); +} +export function chown(...args) { + callbackify(fs.chownSync, args); +} +export function chmod(...args) { + callbackify(fs.chmodSync, args); +} +export function fchmod(...args) { + callbackify(fs.fchmodSync, args); +} +export function fchown(...args) { + callbackify(fs.fchownSync, args); +} +export function fstat(...args) { + callbackify(fs.fstatSync, args); +} +export function fsync(...args) { + callbackify(fs.fsyncSync, args); +} +export function ftruncate(...args) { + callbackify(fs.ftruncateSync, args); +} +export function futimes(...args) { + callbackify(fs.futimesSync, args); +} +export function lchmod(...args) { + callbackify(fs.lchmodSync, args); +} +export function lchown(...args) { + callbackify(fs.lchownSync, args); +} +export function link(...args) { + callbackify(fs.linkSync, args); +} +export function lstat(...args) { + callbackify(fs.lstatSync, args); +} +export function mkdir(...args) { + callbackify(fs.mkdirSync, args); +} +export function mkdtemp(...args) { + callbackify(fs.mkdtempSync, args); +} +export function open(...args) { + callbackify(fs.openSync, args); +} +export function read(...args) { + callbackify(fs.readSync, args); +} +export function write(...args) { + callbackify(fs.writeSync, args); +} +export function readdir(...args) { + callbackify(fs.readdirSync, args); +} +export function readFile(...args) { + callbackify(fs.readFileSync, args); +} +export function writeFile(...args) { + callbackify(fs.writeFileSync, args); +} +export function readlink(...args) { + callbackify(fs.readlinkSync, args); +} +export function realpath(...args) { + callbackify(fs.realpathSync, args); +} +export function rename(...args) { + callbackify(fs.renameSync, args); +} +export function stat(...args) { + callbackify(fs.statSync, args); +} +export function symlink(...args) { + callbackify(fs.symlinkSync, args); +} +export function truncate(...args) { + callbackify(fs.truncateSync, args); +} +export function unlink(...args) { + callbackify(fs.unlinkSync, args); +} +export function utimes(...args) { + callbackify(fs.utimesSync, args); +} +export 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)) + ); + } catch (err) { + args[args.length - 1](err); + } finally { + // ensure we don't leak it + args = null; + } + }); +} + export var accessSync = fs.accessSync.bind(fs); export var appendFileSync = fs.appendFileSync.bind(fs); export var closeSync = fs.closeSync.bind(fs); @@ -75,3 +160,76 @@ export var createWriteStream = fs.createWriteStream.bind(fs); // lol realpath.native = realpath; realpathSync.native = realpathSync; + +export default { + access, + appendFile, + close, + copyFile, + exists, + chown, + chmod, + fchmod, + fchown, + fstat, + fsync, + ftruncate, + futimes, + lchmod, + lchown, + link, + lstat, + mkdir, + mkdtemp, + open, + 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, + readSync, + writeSync, + readdirSync, + readFileSync, + writeFileSync, + readlinkSync, + realpathSync, + renameSync, + statSync, + symlinkSync, + truncateSync, + unlinkSync, + utimesSync, + lutimesSync, + createReadStream, + createWriteStream, +}; |