UNPKG

@sebastianwessel/quickjs

Version:

A typescript package to execute JavaScript and TypeScript code in a WebAssembly QuickJS sandbox

164 lines (163 loc) 6.97 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.provideFs = void 0; const expose_js_1 = require("../expose/expose.js"); const provideFs = (ctx, scope, runtimeOptions, fs) => { const disabledFn = (..._params) => { throw new Error('File access is disabled'); }; const enabledFileSystem = { access: (...params) => fs.access(...params), accessSync: (...params) => fs.accessSync(...params), appendFile: (...params) => fs.appendFile(...params), appendFileSync: (...params) => fs.appendFileSync(...params), chmod: (...params) => fs.chmod(...params), chmodSync: (...params) => fs.chmodSync(...params), chown: (...params) => fs.chown(...params), chownSync: (...params) => fs.chownSync(...params), close: (...params) => fs.close(...params), closeSync: (...params) => fs.closeSync(...params), copyFile: (...params) => fs.copyFile(...params), copyFileSync: (...params) => fs.copyFileSync(...params), createReadStream: (...params) => fs.createReadStream(...params), createWriteStream: (...params) => fs.createWriteStream(...params), exists: (...params) => fs.exists(...params), existsSync: (...params) => fs.existsSync(...params), fchmod: (...params) => fs.fchmod(...params), fchmodSync: (...params) => fs.fchmodSync(...params), fchown: (...params) => fs.fchown(...params), fchownSync: (...params) => fs.fchownSync(...params), fdatasync: (...params) => fs.fdatasync(...params), fdatasyncSync: (...params) => fs.fdatasyncSync(...params), fstat: (...params) => fs.fstat(...params), fstatSync: (...params) => fs.fstatSync(...params), fsync: (...params) => fs.fsync(...params), fsyncSync: (...params) => fs.fsyncSync(...params), ftruncate: (...params) => fs.ftruncate(...params), ftruncateSync: (...params) => fs.ftruncateSync(...params), futimes: (...params) => fs.futimes(...params), futimesSync: (...params) => fs.futimesSync(...params), lchmod: (...params) => fs.lchmod(...params), lchmodSync: (...params) => fs.lchmodSync(...params), lchown: (...params) => fs.lchown(...params), lchownSync: (...params) => fs.lchownSync(...params), link: (...params) => fs.link(...params), linkSync: (...params) => fs.linkSync(...params), lstat: (...params) => fs.lstat(...params), lstatSync: (...params) => fs.lstatSync(...params), mkdir: (...params) => fs.mkdir(...params), mkdirSync: (...params) => fs.mkdirSync(...params), mkdtemp: (...params) => fs.mkdtemp(...params), mkdtempSync: (...params) => fs.mkdtempSync(...params), open: (...params) => fs.open(...params), openSync: (...params) => fs.openSync(...params), readdir: (...params) => fs.readdir(...params), readdirSync: (...params) => fs.readdirSync(...params), read: (...params) => fs.read(...params), readSync: (...params) => fs.readSync(...params), readFile: (...params) => fs.readFile(...params), readFileSync: (...params) => fs.readFileSync(...params).toString(), readlink: (...params) => fs.readlink(...params), readlinkSync: (...params) => fs.readlinkSync(...params), realpath: (...params) => fs.realpath(...params), realpathSync: (...params) => fs.realpathSync(...params), rename: (...params) => fs.rename(...params), renameSync: (...params) => fs.renameSync(...params), rmdir: (...params) => fs.rmdir(...params), rmdirSync: (...params) => fs.rmdirSync(...params), stat: (...params) => fs.stat(...params), statSync: (...params) => fs.statSync(...params), symlink: (...params) => fs.symlink(...params), symlinkSync: (...params) => fs.symlinkSync(...params), truncate: (...params) => fs.truncate(...params), truncateSync: (...params) => fs.truncateSync(...params), unlink: (...params) => fs.unlink(...params), unlinkSync: (...params) => fs.unlinkSync(...params), utimes: (...params) => fs.utimes(...params), utimesSync: (...params) => fs.utimesSync(...params), write: (...params) => fs.write(...params), writeSync: (...params) => fs.writeSync(...params), writeFile: (...params) => fs.writeFile(...params), writeFileSync: (...params) => { fs.writeFileSync(...params); }, }; const disabledFileSystem = { access: disabledFn, accessSync: disabledFn, appendFile: disabledFn, appendFileSync: disabledFn, chmod: disabledFn, chmodSync: disabledFn, chown: disabledFn, chownSync: disabledFn, close: disabledFn, closeSync: disabledFn, copyFile: disabledFn, copyFileSync: disabledFn, createReadStream: disabledFn, createWriteStream: disabledFn, exists: disabledFn, existsSync: disabledFn, fchmod: disabledFn, fchmodSync: disabledFn, fchown: disabledFn, fchownSync: disabledFn, fdatasync: disabledFn, fdatasyncSync: disabledFn, fstat: disabledFn, fstatSync: disabledFn, fsync: disabledFn, fsyncSync: disabledFn, ftruncate: disabledFn, ftruncateSync: disabledFn, futimes: disabledFn, futimesSync: disabledFn, lchmod: disabledFn, lchmodSync: disabledFn, lchown: disabledFn, lchownSync: disabledFn, link: disabledFn, linkSync: disabledFn, lstat: disabledFn, lstatSync: disabledFn, mkdir: disabledFn, mkdirSync: disabledFn, mkdtemp: disabledFn, mkdtempSync: disabledFn, open: disabledFn, openSync: disabledFn, readdir: disabledFn, readdirSync: disabledFn, read: disabledFn, readSync: disabledFn, readFile: disabledFn, readFileSync: disabledFn, readlink: disabledFn, readlinkSync: disabledFn, realpath: disabledFn, realpathSync: disabledFn, rename: disabledFn, renameSync: disabledFn, rmdir: disabledFn, rmdirSync: disabledFn, stat: disabledFn, statSync: disabledFn, symlink: disabledFn, symlinkSync: disabledFn, truncate: disabledFn, truncateSync: disabledFn, unlink: disabledFn, unlinkSync: disabledFn, utimes: disabledFn, utimesSync: disabledFn, write: disabledFn, writeSync: disabledFn, writeFile: disabledFn, writeFileSync: disabledFn, }; (0, expose_js_1.expose)(ctx, scope, { __fs: runtimeOptions.allowFs ? enabledFileSystem : disabledFileSystem, }); }; exports.provideFs = provideFs;