diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2018-08-22 13:19:32 -0400 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2018-08-22 18:39:07 -0400 |
commit | 7d7263c48f4280f8da5496273e85fb1a8fb79547 (patch) | |
tree | 709df115d6d2daf5a753a31a69bac637d65a33a7 /js/os.ts | |
parent | e7cab715749e4c5000c24ffeade1ef915d15a68d (diff) |
Implement writeFileSync
In collaboration with Tommy Savaria <tommy.savaria@protonmail.ch>
Diffstat (limited to 'js/os.ts')
-rw-r--r-- | js/os.ts | 25 |
1 files changed, 21 insertions, 4 deletions
@@ -121,15 +121,32 @@ export function readFileSync(filename: string): Uint8Array { export function writeFileSync( filename: string, data: Uint8Array, - perm: number + perm = 0o666 ): void { - util.notImplemented(); - /* - pubInternal("os", { + /* Ideally we could write: + const res = send({ command: fbs.Command.WRITE_FILE_SYNC, writeFileSyncFilename: filename, writeFileSyncData: data, writeFileSyncPerm: perm }); */ + const builder = new flatbuffers.Builder(); + const filename_ = builder.createString(filename); + const dataOffset = fbs.WriteFileSync.createDataVector(builder, data); + fbs.WriteFileSync.startWriteFileSync(builder); + fbs.WriteFileSync.addFilename(builder, filename_); + fbs.WriteFileSync.addData(builder, dataOffset); + fbs.WriteFileSync.addPerm(builder, perm); + const msg = fbs.WriteFileSync.endWriteFileSync(builder); + fbs.Base.startBase(builder); + fbs.Base.addMsg(builder, msg); + fbs.Base.addMsgType(builder, fbs.Any.WriteFileSync); + builder.finish(fbs.Base.endBase(builder)); + const resBuf = libdeno.send(builder.asUint8Array()); + if (resBuf != null) { + const bb = new flatbuffers.ByteBuffer(new Uint8Array(resBuf!)); + const baseRes = fbs.Base.getRootAsBase(bb); + maybeThrowError(baseRes); + } } |