Jsconsole update (#12448)
* Improve jsconsole adding the rest of the stable api as documented on the standard at https://developer.mozilla.org/docs/Web/API/Console * Improve jsconsole, add runnableexamples * Simplify jsconsole
This commit is contained in:
parent
46ca19ff18
commit
160d5fe589
2 changed files with 37 additions and 35 deletions
|
|
@ -124,6 +124,7 @@ echo f
|
||||||
through an SSL-wrapped `Socket`/`AsyncSocket`.
|
through an SSL-wrapped `Socket`/`AsyncSocket`.
|
||||||
- Added `distinctBase` overload for values: `assert 12.MyInt.distinctBase == 12`
|
- Added `distinctBase` overload for values: `assert 12.MyInt.distinctBase == 12`
|
||||||
- Added `browsers.openDefaultBrowser` without URL, implements IETF RFC-6694 Section-3.
|
- Added `browsers.openDefaultBrowser` without URL, implements IETF RFC-6694 Section-3.
|
||||||
|
- Added `jsconsole.trace`, `jsconsole.table`, `jsconsole.exception` for JavaScript target.
|
||||||
|
|
||||||
|
|
||||||
## Library changes
|
## Library changes
|
||||||
|
|
|
||||||
|
|
@ -13,57 +13,58 @@
|
||||||
when not defined(js) and not defined(Nimdoc):
|
when not defined(js) and not defined(Nimdoc):
|
||||||
{.error: "This module only works on the JavaScript platform".}
|
{.error: "This module only works on the JavaScript platform".}
|
||||||
|
|
||||||
import macros
|
type Console* = ref object of RootObj
|
||||||
|
|
||||||
type Console* {.importc.} = ref object of RootObj
|
proc log*(console: Console) {.importcpp, varargs.}
|
||||||
|
## https://developer.mozilla.org/docs/Web/API/Console/log
|
||||||
|
|
||||||
proc convertToConsoleLoggable*[T](v: T): RootRef {.importcpp: "#".}
|
proc debug*(console: Console) {.importcpp, varargs.}
|
||||||
template convertToConsoleLoggable*(v: string): RootRef = cast[RootRef](cstring(v))
|
## https://developer.mozilla.org/docs/Web/API/Console/debug
|
||||||
|
|
||||||
proc logImpl(console: Console) {.importcpp: "log", varargs.}
|
proc info*(console: Console) {.importcpp, varargs.}
|
||||||
proc debugImpl(console: Console) {.importcpp: "debug", varargs.}
|
## https://developer.mozilla.org/docs/Web/API/Console/info
|
||||||
proc infoImpl(console: Console) {.importcpp: "info", varargs.}
|
|
||||||
proc errorImpl(console: Console) {.importcpp: "error", varargs.}
|
|
||||||
proc warnImpl(console: Console) {.importcpp: "warn", varargs.}
|
|
||||||
|
|
||||||
proc makeConsoleCall(console: NimNode, procName: NimNode, args: NimNode): NimNode =
|
proc error*(console: Console) {.importcpp, varargs.}
|
||||||
result = newCall(procName, console)
|
## https://developer.mozilla.org/docs/Web/API/Console/error
|
||||||
for c in args: result.add(c)
|
|
||||||
|
|
||||||
macro log*(console: Console, args: varargs[RootRef, convertToConsoleLoggable]): untyped =
|
template exception*(console: Console, args: varargs[untyped]) =
|
||||||
makeConsoleCall(console, bindSym "logImpl", args)
|
## Alias for `console.error()`.
|
||||||
|
error(console, args)
|
||||||
|
|
||||||
macro debug*(console: Console, args: varargs[RootRef, convertToConsoleLoggable]): untyped =
|
proc trace*(console: Console) {.importcpp, varargs.}
|
||||||
makeConsoleCall(console, bindSym "debugImpl", args)
|
## https://developer.mozilla.org/docs/Web/API/Console/trace
|
||||||
|
|
||||||
macro info*(console: Console, args: varargs[RootRef, convertToConsoleLoggable]): untyped =
|
proc warn*(console: Console) {.importcpp, varargs.}
|
||||||
makeConsoleCall(console, bindSym "infoImpl", args)
|
## https://developer.mozilla.org/docs/Web/API/Console/warn
|
||||||
|
|
||||||
macro error*(console: Console, args: varargs[RootRef, convertToConsoleLoggable]): untyped =
|
proc clear*(console: Console) {.importcpp, varargs.}
|
||||||
makeConsoleCall(console, bindSym "errorImpl", args)
|
## https://developer.mozilla.org/docs/Web/API/Console/clear
|
||||||
|
|
||||||
|
proc count*(console: Console, label = "".cstring) {.importcpp.}
|
||||||
|
## https://developer.mozilla.org/docs/Web/API/Console/count
|
||||||
|
|
||||||
macro warn*(console: Console, args: varargs[RootRef, convertToConsoleLoggable]): untyped =
|
proc countReset*(console: Console, label = "".cstring) {.importcpp.}
|
||||||
## https://developer.mozilla.org/en-US/docs/Web/API/Console/warn
|
## https://developer.mozilla.org/docs/Web/API/Console/countReset
|
||||||
makeConsoleCall(console, bindSym "warnImpl", args)
|
|
||||||
|
|
||||||
proc clear*(console: Console) {.importcpp: "clear".} ## https://developer.mozilla.org/en-US/docs/Web/API/Console/clear
|
proc group*(console: Console, label = "".cstring) {.importcpp.}
|
||||||
|
## https://developer.mozilla.org/docs/Web/API/Console/group
|
||||||
|
|
||||||
proc count*(console: Console, label = "".cstring) {.importcpp: "count".} ## https://developer.mozilla.org/en-US/docs/Web/API/Console/count
|
proc groupCollapsed*(console: Console, label = "".cstring) {.importcpp.}
|
||||||
|
## https://developer.mozilla.org/en-US/docs/Web/API/Console/groupCollapsed
|
||||||
|
|
||||||
proc countReset*(console: Console, label = "".cstring) {.importcpp: "countReset".} ## https://developer.mozilla.org/en-US/docs/Web/API/Console/countReset
|
proc groupEnd*(console: Console) {.importcpp.}
|
||||||
|
## https://developer.mozilla.org/docs/Web/API/Console/groupEnd
|
||||||
|
|
||||||
proc group*(console: Console, label = "".cstring) {.importcpp: "group".} ## https://developer.mozilla.org/en-US/docs/Web/API/Console/group
|
proc time*(console: Console, label = "".cstring) {.importcpp.}
|
||||||
|
## https://developer.mozilla.org/docs/Web/API/Console/time
|
||||||
|
|
||||||
proc groupCollapsed*(console: Console, label = "".cstring) {.importcpp: "groupCollapsed".} ## https://developer.mozilla.org/en-US/docs/Web/API/Console/groupCollapsed
|
proc timeEnd*(console: Console, label = "".cstring) {.importcpp.}
|
||||||
|
## https://developer.mozilla.org/docs/Web/API/Console/timeEnd
|
||||||
|
|
||||||
proc groupEnd*(console: Console) {.importcpp: "groupEnd".} ## https://developer.mozilla.org/en-US/docs/Web/API/Console/groupEnd
|
proc timeLog*(console: Console, label = "".cstring) {.importcpp.}
|
||||||
|
## https://developer.mozilla.org/docs/Web/API/Console/timeLog
|
||||||
proc time*(console: Console, label = "".cstring) {.importcpp: "time".} ## https://developer.mozilla.org/en-US/docs/Web/API/Console/time
|
|
||||||
|
|
||||||
proc timeEnd*(console: Console, label = "".cstring) {.importcpp: "timeEnd".} ## https://developer.mozilla.org/en-US/docs/Web/API/Console/timeEnd
|
|
||||||
|
|
||||||
proc timeLog*(console: Console, label = "".cstring) {.importcpp: "timeLog".} ## https://developer.mozilla.org/en-US/docs/Web/API/Console/timeLog
|
|
||||||
|
|
||||||
|
proc table*(console: Console) {.importcpp, varargs.}
|
||||||
|
## https://developer.mozilla.org/docs/Web/API/Console/table
|
||||||
|
|
||||||
var console* {.importc, nodecl.}: Console
|
var console* {.importc, nodecl.}: Console
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue