Skip to content

Commit a2d1a44

Browse files
committed
add module-level utilities for stdio
1 parent 8d38d1a commit a2d1a44

File tree

3 files changed

+35
-18
lines changed

3 files changed

+35
-18
lines changed

examples/Cat.res

+1-5
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,7 @@ let catFile = filename => {
1010
let read = file->Deno.File.read
1111
}
1212
),
13-
~dst=module(
14-
{
15-
let write = Deno.stdout->Deno.Stdout.write
16-
}
17-
),
13+
~dst=module(Deno.Stdout.AsModule),
1814
(),
1915
)->Promise.thenResolve(_ => {
2016
file->Deno.File.close

examples/Catj.res

+2-7
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,7 @@ let rec print = (value, path) => {
5555
print(value, nodePath)
5656
})
5757
| JSONArray(value) =>
58-
value
59-
->Belt.Array.forEachWithIndex((i, value) => {
58+
value->Belt.Array.forEachWithIndex((i, value) => {
6059
let i = i->Belt.Int.toString
6160
let nodePath = (path != "" ? path : Color.cyan(".")) ++ `["${Color.cyan(i)}"]`
6261
print(value, nodePath)
@@ -78,11 +77,7 @@ if main {
7877
}
7978

8079
if parsedArgs["_"][0] == "-" {
81-
module(
82-
{
83-
let read = Deno.stdin->Deno.Stdin.read
84-
}
85-
)
80+
module(Deno.Stdin.AsModule)
8681
->Stream.readAll
8782
->Promise.thenResolve(decoder->TextDecoder.decode)
8883
->Promise.thenResolve(Js.Json.parseExn)

src/RescriptDeno.res

+32-6
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,8 @@ type memoryUsage = {
241241
@scope("Deno") @val external memoryUsage: unit => memoryUsage = "memoryUsage"
242242

243243
// https://doc.deno.land/deno/stable/~/Deno.readFile
244-
@scope("Deno") @val external readFile: (string, unit) => Promise.t<Js.TypedArray2.Uint8Array.t> = "readFile"
244+
@scope("Deno") @val
245+
external readFile: (string, unit) => Promise.t<Js.TypedArray2.Uint8Array.t> = "readFile"
245246

246247
// https://doc.deno.land/deno/stable/~/Deno.readFileSync
247248
@scope("Deno") @val external readFileSync: string => Js.TypedArray2.Uint8Array.t = "readFileSync"
@@ -252,13 +253,14 @@ type memoryUsage = {
252253
// https://doc.deno.land/deno/stable/~/Deno.readTextFileSync
253254
@scope("Deno") @val external readTextFileSync: string => string = "readTextFileSync"
254255

255-
256-
257256
module IO = RescriptDeno_IO
258257

259258
module Stdout = {
260259
type t
261260

261+
@scope("Deno") @val
262+
external stdout: t = "stdout"
263+
262264
@get
263265
external rid: t => int = "rid"
264266

@@ -270,11 +272,20 @@ module Stdout = {
270272

271273
@send
272274
external close: t => unit = "close"
275+
276+
module AsModule = {
277+
let write = stdout->write
278+
let writeSync = stdout->writeSync
279+
let close = stdout->close
280+
}
273281
}
274282

275283
module Stdin = {
276284
type t
277285

286+
@scope("Deno") @val
287+
external stdin: t = "stdin"
288+
278289
@get
279290
external rid: t => int = "rid"
280291

@@ -286,11 +297,20 @@ module Stdin = {
286297

287298
@send
288299
external close: t => unit = "close"
300+
301+
module AsModule = {
302+
let read = stdin->read
303+
let readSync = stdin->readSync
304+
let close = stdin->close
305+
}
289306
}
290307

291308
module Stderr = {
292309
type t
293310

311+
@scope("Deno") @val
312+
external stderr: t = "stderr"
313+
294314
@get
295315
external rid: t => int = "rid"
296316

@@ -302,11 +322,17 @@ module Stderr = {
302322

303323
@send
304324
external close: t => unit = "close"
325+
326+
module AsModule = {
327+
let write = stderr->write
328+
let writeSync = stderr->writeSync
329+
let close = stderr->close
330+
}
305331
}
306332

307-
@scope("Deno") @val external stdout: Stdout.t = "stdout"
308-
@scope("Deno") @val external stdin: Stdin.t = "stdin"
309-
@scope("Deno") @val external stderr: Stderr.t = "stderr"
333+
let stdout = Stdout.stdout
334+
let stdin = Stdin.stdin
335+
let stderr = Stderr.stderr
310336

311337
module File = RescriptDeno_File
312338

0 commit comments

Comments
 (0)