From f776b5e6ea85bad455ee906072a3d341bf6070b9 Mon Sep 17 00:00:00 2001 From: Pedro Castro Date: Mon, 13 Feb 2023 19:35:30 -0300 Subject: [PATCH 1/3] add console docs --- src/Core__Console.res | 2 +- src/Core__Console.resi | 333 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 334 insertions(+), 1 deletion(-) create mode 100644 src/Core__Console.resi diff --git a/src/Core__Console.res b/src/Core__Console.res index 4f8d7109..8fefe380 100644 --- a/src/Core__Console.res +++ b/src/Core__Console.res @@ -24,5 +24,5 @@ @val external trace: unit => unit = "console.trace" -@val external timeStart: string => unit = "console.timeStart" +@val external time: string => unit = "console.time" @val external timeEnd: string => unit = "console.timeEnd" diff --git a/src/Core__Console.resi b/src/Core__Console.resi new file mode 100644 index 00000000..864e21ab --- /dev/null +++ b/src/Core__Console.resi @@ -0,0 +1,333 @@ +/*** +Functions for interacting with JavaScript console. +See: [`Console`](https://developer.mozilla.org/en-US/docs/Web/API/Console). +*/ + +/** +`log(value)` outputs a message to console. +See [`Console.log`](https://developer.mozilla.org/en-US/docs/Web/API/console/log) +on MDN. + +## Examples + +```rescript +Console.log("Hello") +let obj = {"name": "ReScript", "version": 10} +Console.log(obj) +``` +*/ +@val +external log: 'a => unit = "console.log" + +/** +`log2(v1, v2)`. Like `log`, but with two arguments. + +## Examples + +```rescript +Console.log2("Hello", "World") +Console.log2([1, 2, 3], [4]) +``` +*/ +@val +external log2: ('a, 'b) => unit = "console.log" + +/** +`log3(v1, v2, v3)`. Like `log`, but with three arguments. + +## Examples + +```rescript +Console.log3("Hello", "World", "ReScript") +Console.log2([1, 2, 3], [4], [5]) +``` +*/ +@val +external log3: ('a, 'b, 'c) => unit = "console.log" +/** +`log4(v1, v2, v3, v4)`. Like `log`, but with four arguments. + +## Examples + +```rescript +Console.log4("Hello", "World", "ReScript", "!!!") +Console.log4([1, 2, 3], [4], [5]) +``` +*/ +@val +external log4: ('a, 'b, 'c, 'd) => unit = "console.log" + +/** +`log5(v1, v2, v3, v4, v5)`. Like `log`, but with five arguments. + +## Examples + +```rescript +Console.log5("Hello", "World", "from", "JS", "!!!") +Console.log5(1, 2, 3, 4, 5) +``` +*/ +@val +external log5: ('a, 'b, 'c, 'd, 'e) => unit = "console.log" +/** +`info(value)` outputs an informational message to console. +See [`Console.info`](https://developer.mozilla.org/en-US/docs/Web/API/console/info) +on MDN. + +## Examples + +```rescript +Console.info("Hello") +Console.info([1, 2, 3]) +Console.info(("Hello", "ReScript")) +``` +*/ +@val +external info: 'a => unit = "console.info" + +/** +`info2(v1, v2)`. Like `info`, but two arguments. + +## Examples + +```rescript +Console.info2("Failed to", "download") +Console.info2([""]) +``` +*/ +@val +external info2: ('a, 'b) => unit = "console.info" + +/** +`info3(v1, v2, v3)`. Like `info`, but three arguments. + +## Examples + +```rescript +Console.info3("Hello", "World", "ReScript") +Console.info3([1, 2, 3], [4], [5]) +``` +*/ +@val +external info3: ('a, 'b, 'c) => unit = "console.info" + +/** +`info4(v1, v2, v3, v4)`. Like `info`, but with four arguments. + +## Examples + +```rescript +Console.info4("Hello", "World", "ReScript", "!!!") +Console.info4([1, 2, 3], [4], [5]) +``` +*/ +@val +external info4: ('a, 'b, 'c, 'd) => unit = "console.info" + +/** +`info5(v1, v2, v3, v4, v5)`. Like `info`, but with five arguments. + +## Examples + +```rescript +Console.info5("Hello", "World", "from", "JS", "!!!") +Console.info5(1, 2, 3, 4, 5) +``` +*/ +@val +external info5: ('a, 'b, 'c, 'd, 'e) => unit = "console.info" + +/** +`warn(value)` outputs a warning message to console. +See [`Console.warn`](https://developer.mozilla.org/en-US/docs/Web/API/console/warn) +on MDN. + +## Examples + +```rescript +Console.warn("Hello") +Console.warn([1, 2, 3]) +Console.warn(("Hello", "ReScript")) +``` +*/ +@val +external warn: 'a => unit = "console.warn" + +/** +`warn2(v1, v2)`. Like `warn`, but two arguments. + +## Examples + +```rescript +Console.warn2("Hello", "World") +Console.warn2([1, 2, 3], [4]) +``` +*/ +@val +external warn2: ('a, 'b) => unit = "console.warn" + +/** +`warn3(v1, v2, v3)`. Like `warn`, but three arguments. + +## Examples + +```rescript +Console.warn3("Hello", "World", "ReScript") +Console.warn3([1, 2, 3], [4], [5]) +``` +*/ +@val +external warn3: ('a, 'b, 'c) => unit = "console.warn" + +/** +`warn4(v1, v2, v3, v4)`. Like `warn`, but with four arguments. + +## Examples + +```rescript +Console.warn4("Hello", "World", "ReScript", "!!!") +Console.warn4([1, 2, 3], [4], [5]) +``` +*/ +@val +external warn4: ('a, 'b, 'c, 'd) => unit = "console.warn" + +/** +`warn5(v1, v2, v3, v4, v5)`. Like `warn`, but with five arguments. + +## Examples + +```rescript +Console.warn5("Hello", "World", "from", "JS", "!!!") +Console.warn5(1, 2, 3, 4, 5) +``` +*/ +@val +external warn5: ('a, 'b, 'c, 'd, 'e) => unit = "console.warn" + +/** +`error(value)` outputs an error message to console. +See [`Console.error`](https://developer.mozilla.org/en-US/docs/Web/API/console/error) +on MDN. + +## Examples + +```rescript +Console.error("Hello") +Console.error([1, 2, 3]) +Console.error(("Hello", "ReScript")) +``` +*/ +@val +external error: 'a => unit = "console.error" + +/** +`error(v1, v2)`. Like `error`, but two arguments. + +## Examples + +```rescript +Console.error("Hello", "World") +Console.error([1, 2, 3], [4]) +``` +*/ +@val +external error2: ('a, 'b) => unit = "console.error" + +/** +`error3(v1, v2, v3)`. Like `error`, but three arguments. + +## Examples + +```rescript +Console.error3("Hello", "World", "ReScript") +Console.error3([1, 2, 3], [4], [5]) +``` +*/ +@val +external error3: ('a, 'b, 'c) => unit = "console.error" + +/** +`error4(v1, v2, v3, v4)`. Like `error`, but with four arguments. + +## Examples + +```rescript +Console.error("Hello", "World", "ReScript", "!!!") +Console.error([1, 2, 3], [4], [5]) +``` +*/ +@val +external error4: ('a, 'b, 'c, 'd) => unit = "console.error" + +/** +`error5(v1, v2, v3, v4, v5)`. Like `error`, but with five arguments. + +## Examples + +```rescript +Console.error5("Hello", "World", "from", "JS", "!!!") +Console.error5(1, 2, 3, 4, 5) +``` +*/ +@val +external error5: ('a, 'b, 'c, 'd, 'e) => unit = "console.error" + +/** +`trace()` outputs a stack trace to console. +See [`Console.trace`](https://developer.mozilla.org/en-US/docs/Web/API/console/trace) +on MDN. + +## Examples + +```rescript +let main = () => { + Console.trace() +} +main() +// In the console, the following trace will be displayed: +// main +// +``` +*/ +@val +external trace: unit => unit = "console.trace" + +/** +`time(label)` starts a timer you can use to track how long an operation takes. +You give each timer a unique name `label`, and may have up to 10,000 timers +running on a given page. Call `Console.timeEnd` with the same `label` to browser +output time, in milliseconds. +See [`Console.time`](https://developer.mozilla.org/en-US/docs/Web/API/console/time) +on MDN. + +## Examples + +```rescript +Console.time("for_time") +for x in 3 downto 1 { + Console.log(x) +} +Console.timeEnd("for_time") +``` +*/ +@val +external time: string => unit = "console.time" + +/** +`timeEnd(label)` stops a timer that was previously started by calling +`Console.time(label)`. See [`Console.timeEnd`](https://developer.mozilla.org/en-US/docs/Web/API/console/timeEnd) +on MDN. + +## Examples + +```rescript +Console.time("for_time") +for x in 3 downto 1 { + Console.log(x) +} +Console.timeEnd("for_time") +``` +*/ +@val +external timeEnd: string => unit = "console.timeEnd" From 7c0104e6e7e7f13401357802447893bf7c82aca5 Mon Sep 17 00:00:00 2001 From: Pedro Castro Date: Mon, 13 Feb 2023 20:04:35 -0300 Subject: [PATCH 2/3] fix examples --- src/Core__Console.resi | 65 ++++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 34 deletions(-) diff --git a/src/Core__Console.resi b/src/Core__Console.resi index 864e21ab..250de00b 100644 --- a/src/Core__Console.resi +++ b/src/Core__Console.resi @@ -26,7 +26,7 @@ external log: 'a => unit = "console.log" ```rescript Console.log2("Hello", "World") -Console.log2([1, 2, 3], [4]) +Console.log2([1, 2, 3], '4') ``` */ @val @@ -39,7 +39,7 @@ external log2: ('a, 'b) => unit = "console.log" ```rescript Console.log3("Hello", "World", "ReScript") -Console.log2([1, 2, 3], [4], [5]) +Console.log2("One", 2, #3) ``` */ @val @@ -51,7 +51,7 @@ external log3: ('a, 'b, 'c) => unit = "console.log" ```rescript Console.log4("Hello", "World", "ReScript", "!!!") -Console.log4([1, 2, 3], [4], [5]) +Console.log4([1, 2], (3, 4), [#5, #6], #"polyvar") ``` */ @val @@ -63,8 +63,8 @@ external log4: ('a, 'b, 'c, 'd) => unit = "console.log" ## Examples ```rescript -Console.log5("Hello", "World", "from", "JS", "!!!") -Console.log5(1, 2, 3, 4, 5) +Console.log5("Hello", "World", "JS", '!', '!') +Console.log5([1, 2], (3, 4), [#5, #6], #"polyvar", {"name": "ReScript"}) ``` */ @val @@ -77,35 +77,34 @@ on MDN. ## Examples ```rescript -Console.info("Hello") -Console.info([1, 2, 3]) -Console.info(("Hello", "ReScript")) +Console.info("Information") +Console.info(("Hello", "JS")) ``` */ @val external info: 'a => unit = "console.info" /** -`info2(v1, v2)`. Like `info`, but two arguments. +`info2(v1, v2)`. Like `info`, but with two arguments. ## Examples ```rescript -Console.info2("Failed to", "download") -Console.info2([""]) +Console.info2("Info", "failed to download") +Console.info2(#info, {"name": "ReScript"}) ``` */ @val external info2: ('a, 'b) => unit = "console.info" /** -`info3(v1, v2, v3)`. Like `info`, but three arguments. +`info3(v1, v2, v3)`. Like `info`, but with three arguments. ## Examples ```rescript Console.info3("Hello", "World", "ReScript") -Console.info3([1, 2, 3], [4], [5]) +Console.info3([1, 2, 3], #4, #5) ``` */ @val @@ -117,8 +116,8 @@ external info3: ('a, 'b, 'c) => unit = "console.info" ## Examples ```rescript -Console.info4("Hello", "World", "ReScript", "!!!") -Console.info4([1, 2, 3], [4], [5]) +Console.info4("Hello", "World", "ReScript", '!') +Console.info4([1, 2, 3], #4, #5, #lastinfo) ``` */ @val @@ -131,7 +130,7 @@ external info4: ('a, 'b, 'c, 'd) => unit = "console.info" ```rescript Console.info5("Hello", "World", "from", "JS", "!!!") -Console.info5(1, 2, 3, 4, 5) +Console.info5([1, 2], (3, 4), [#5, #6], #"polyvar", {"name": "ReScript"}) ``` */ @val @@ -145,9 +144,8 @@ on MDN. ## Examples ```rescript -Console.warn("Hello") -Console.warn([1, 2, 3]) -Console.warn(("Hello", "ReScript")) +Console.warn("Warning") +Console.warn(("Warning", "invalid number")) ``` */ @val @@ -160,7 +158,7 @@ external warn: 'a => unit = "console.warn" ```rescript Console.warn2("Hello", "World") -Console.warn2([1, 2, 3], [4]) +Console.warn2([1, 2, 3], 4) ``` */ @val @@ -173,7 +171,7 @@ external warn2: ('a, 'b) => unit = "console.warn" ```rescript Console.warn3("Hello", "World", "ReScript") -Console.warn3([1, 2, 3], [4], [5]) +Console.warn3([1, 2, 3], #4, #5) ``` */ @val @@ -186,7 +184,7 @@ external warn3: ('a, 'b, 'c) => unit = "console.warn" ```rescript Console.warn4("Hello", "World", "ReScript", "!!!") -Console.warn4([1, 2, 3], [4], [5]) +Console.warn4(#first, #second, #third, ("fourth")) ``` */ @val @@ -199,7 +197,7 @@ external warn4: ('a, 'b, 'c, 'd) => unit = "console.warn" ```rescript Console.warn5("Hello", "World", "from", "JS", "!!!") -Console.warn5(1, 2, 3, 4, 5) +Console.warn5([1, 2], (3, 4), [#5, #6], #"polyvar", {"name": "ReScript"}) ``` */ @val @@ -213,9 +211,8 @@ on MDN. ## Examples ```rescript -Console.error("Hello") -Console.error([1, 2, 3]) -Console.error(("Hello", "ReScript")) +Console.error("error message") +Console.error(("error", "invalid value")) ``` */ @val @@ -227,8 +224,8 @@ external error: 'a => unit = "console.error" ## Examples ```rescript -Console.error("Hello", "World") -Console.error([1, 2, 3], [4]) +Console.error2("Error", "here") +Console.error2(("log", "error"), "message") ``` */ @val @@ -240,8 +237,8 @@ external error2: ('a, 'b) => unit = "console.error" ## Examples ```rescript -Console.error3("Hello", "World", "ReScript") -Console.error3([1, 2, 3], [4], [5]) +Console.error3("Hello", "World", "!!!") +Console.error3(#first, #second, #third) ``` */ @val @@ -253,8 +250,8 @@ external error3: ('a, 'b, 'c) => unit = "console.error" ## Examples ```rescript -Console.error("Hello", "World", "ReScript", "!!!") -Console.error([1, 2, 3], [4], [5]) +Console.error4("Hello", "World", "ReScript", '!') +Console.error4(#first, #second, #third, ("fourth")) ``` */ @val @@ -266,8 +263,8 @@ external error4: ('a, 'b, 'c, 'd) => unit = "console.error" ## Examples ```rescript -Console.error5("Hello", "World", "from", "JS", "!!!") -Console.error5(1, 2, 3, 4, 5) +Console.error5('e', 'r, 'r', 'o', 'r') +Console.error5(1, #second, #third, ("fourth"), 'c') ``` */ @val From 7684401acda908e87931949aac555ad9c75f8492 Mon Sep 17 00:00:00 2001 From: Pedro Castro Date: Wed, 15 Feb 2023 20:11:59 -0300 Subject: [PATCH 3/3] rewrite some comments --- src/Core__Console.resi | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/Core__Console.resi b/src/Core__Console.resi index 250de00b..7aa5f7b5 100644 --- a/src/Core__Console.resi +++ b/src/Core__Console.resi @@ -4,7 +4,7 @@ See: [`Console`](https://developer.mozilla.org/en-US/docs/Web/API/Console). */ /** -`log(value)` outputs a message to console. +`log(value)` print a message to console. See [`Console.log`](https://developer.mozilla.org/en-US/docs/Web/API/console/log) on MDN. @@ -70,7 +70,7 @@ Console.log5([1, 2], (3, 4), [#5, #6], #"polyvar", {"name": "ReScript"}) @val external log5: ('a, 'b, 'c, 'd, 'e) => unit = "console.log" /** -`info(value)` outputs an informational message to console. +`info(value)` print an informational message to console. See [`Console.info`](https://developer.mozilla.org/en-US/docs/Web/API/console/info) on MDN. @@ -137,7 +137,7 @@ Console.info5([1, 2], (3, 4), [#5, #6], #"polyvar", {"name": "ReScript"}) external info5: ('a, 'b, 'c, 'd, 'e) => unit = "console.info" /** -`warn(value)` outputs a warning message to console. +`warn(value)` print a warning message to console. See [`Console.warn`](https://developer.mozilla.org/en-US/docs/Web/API/console/warn) on MDN. @@ -204,7 +204,7 @@ Console.warn5([1, 2], (3, 4), [#5, #6], #"polyvar", {"name": "ReScript"}) external warn5: ('a, 'b, 'c, 'd, 'e) => unit = "console.warn" /** -`error(value)` outputs an error message to console. +`error(value)` prints an error message to console. See [`Console.error`](https://developer.mozilla.org/en-US/docs/Web/API/console/error) on MDN. @@ -271,7 +271,7 @@ Console.error5(1, #second, #third, ("fourth"), 'c') external error5: ('a, 'b, 'c, 'd, 'e) => unit = "console.error" /** -`trace()` outputs a stack trace to console. +`trace()` print a stack trace to console. See [`Console.trace`](https://developer.mozilla.org/en-US/docs/Web/API/console/trace) on MDN. @@ -291,10 +291,9 @@ main() external trace: unit => unit = "console.trace" /** -`time(label)` starts a timer you can use to track how long an operation takes. -You give each timer a unique name `label`, and may have up to 10,000 timers -running on a given page. Call `Console.timeEnd` with the same `label` to browser -output time, in milliseconds. +`time(label)` creates a timer to measure how long an operation takes. `label` +must be a unique name. Call `Console.timeEnd` with the same `label` to print +output time. See [`Console.time`](https://developer.mozilla.org/en-US/docs/Web/API/console/time) on MDN. @@ -312,8 +311,8 @@ Console.timeEnd("for_time") external time: string => unit = "console.time" /** -`timeEnd(label)` stops a timer that was previously started by calling -`Console.time(label)`. See [`Console.timeEnd`](https://developer.mozilla.org/en-US/docs/Web/API/console/timeEnd) +`timeEnd(label)` stops a timer created by `time`. +See [`Console.timeEnd`](https://developer.mozilla.org/en-US/docs/Web/API/console/timeEnd) on MDN. ## Examples