std/jscore

    Dark Mode
Search:
  Source   Edit

This module wraps core JavaScript functions.

Unless your application has very specific requirements and solely targets JavaScript, you should be using the relevant functions in the math, json, and times stdlib modules instead.

Types

DateLib = ref object
  Source   Edit
DateTime = ref object
  Source   Edit
JsonLib = ref object
  Source   Edit
MathLib = ref object
  Source   Edit

Procs

proc abs(m: MathLib; a: SomeNumber): SomeNumber {.importcpp, ...raises: [],
    tags: [].}
  Source   Edit
proc acos(m: MathLib; a: SomeNumber): float {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc acosh(m: MathLib; a: SomeNumber): float {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc asin(m: MathLib; a: SomeNumber): float {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc asinh(m: MathLib; a: SomeNumber): float {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc atan(m: MathLib; a: SomeNumber): float {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc atan2(m: MathLib; a: SomeNumber): float {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc atanh(m: MathLib; a: SomeNumber): float {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc cbrt(m: MathLib; f: SomeFloat): SomeFloat {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc ceil(m: MathLib; f: SomeFloat): SomeFloat {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc clz32(m: MathLib; f: SomeInteger): int {.importcpp, ...raises: [], tags: [].}
  Source   Edit
func copyWithin[T](self: openArray[T]; target, start, ends: int): seq[T] {.
    importjs: "#.copyWithin(#, #, #)", ...raises: [], tags: [].}
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/copyWithin copyWithin uses shallow copy.

Example:

assert ['a', 'b', 'c', 'd', 'e'].copyWithin(0, 3, 4) == @['d', 'b', 'c', 'd', 'e']
assert ['a', 'b', 'c', 'd', 'e'].copyWithin(1, 3) == @['a', 'd', 'e', 'd', 'e']
assert [1, 2, 3, 4, 5].copyWithin(-2) == @[1, 2, 3, 1, 2]
assert [1, 2, 3, 4, 5].copyWithin(0, 3) == @[4, 5, 3, 4, 5]
assert [1, 2, 3, 4, 5].copyWithin(0, 3, 4) == @[4, 2, 3, 4, 5]
assert [1, 2, 3, 4, 5].copyWithin(-2, -3, -1) == @[1, 2, 3, 3, 4]
  Source   Edit
func copyWithin[T](self: openArray[T]; target, start: int): seq[T] {.
    importjs: "#.copyWithin(#, #)", ...raises: [], tags: [].}
  Source   Edit
func copyWithin[T](self: openArray[T]; target: int): seq[T] {.
    importjs: "#.copyWithin(#)", ...raises: [], tags: [].}
  Source   Edit
proc cos(m: MathLib; a: SomeNumber): float {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc cosh(m: MathLib; a: SomeNumber): float {.importcpp, ...raises: [], tags: [].}
  Source   Edit
func debugger() {.importjs: "debugger@", ...raises: [], tags: [].}
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/debugger   Source   Edit
proc exp(m: MathLib; a: SomeNumber): float {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc expm1(m: MathLib; a: SomeNumber): float {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc floor(m: MathLib; f: SomeFloat): int {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc fround(m: MathLib; f: SomeFloat): float32 {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc getDay(d: DateTime): int {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc getFullYear(d: DateTime): int {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc getHours(d: DateTime): int {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc getMilliseconds(d: DateTime): int {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc getMinutes(d: DateTime): int {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc getMonth(d: DateTime): int {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc getSeconds(d: DateTime): int {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc getTime(d: DateTime): int {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc getTimezoneOffset(d: DateTime): int {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc getUTCDate(d: DateTime): int {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc getUTCDay(d: DateTime): int {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc getUTCFullYear(d: DateTime): int {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc getUTCHours(d: DateTime): int {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc getUTCMilliseconds(d: DateTime): int {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc getUTCMinutes(d: DateTime): int {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc getUTCMonth(d: DateTime): int {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc getUTCSeconds(d: DateTime): int {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc getYear(d: DateTime): int {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc hypot(m: MathLib; args: varargs[distinct SomeNumber]): float {.importcpp,
    ...raises: [], tags: [].}
  Source   Edit
proc imul(m: MathLib; a, b: int32): int32 {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc log(m: MathLib; a: SomeNumber): float {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc log1p(m: MathLib; a: SomeNumber): float {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc log2(m: MathLib; a: SomeNumber): float {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc log10(m: MathLib; a: SomeNumber): float {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc max(m: MathLib; a, b: SomeNumber): SomeNumber {.importcpp, ...raises: [],
    tags: [].}
  Source   Edit
proc min[T: SomeNumber | JsRoot](m: MathLib; a, b: T): T {.importcpp,
    ...raises: [], tags: [].}
  Source   Edit
proc newDate(): DateTime {.importcpp: "new Date()", ...raises: [], tags: [].}
  Source   Edit
proc newDate(date: int | int64 | string): DateTime {.importcpp: "new Date(#)",
    ...raises: [], tags: [].}
  Source   Edit
proc newDate(year, month, day, hours, minutes, seconds, milliseconds: int): DateTime {.
    importcpp: "new Date(#,#,#,#,#,#,#)", ...raises: [], tags: [].}
  Source   Edit
proc now(d: DateLib): int {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc parse(d: DateLib; s: cstring): int {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc parse(l: JsonLib; s: cstring): JsRoot {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc pow(m: MathLib; a, b: distinct SomeNumber): float {.importcpp, ...raises: [],
    tags: [].}
  Source   Edit
proc random(m: MathLib): float {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc round(m: MathLib; f: SomeFloat): int {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc setFullYear(d: DateTime; year: int) {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc sign(m: MathLib; f: SomeNumber): int {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc sin(m: MathLib; a: SomeNumber): float {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc sinh(m: MathLib; a: SomeNumber): float {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc sqrt(m: MathLib; f: SomeFloat): SomeFloat {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc stringify(l: JsonLib; s: JsRoot): cstring {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc tan(m: MathLib; a: SomeNumber): float {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc tanh(m: MathLib; a: SomeNumber): float {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc toString(d: DateTime): cstring {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc trunc(m: MathLib; f: SomeFloat): int {.importcpp, ...raises: [], tags: [].}
  Source   Edit
proc UTC(d: DateLib): int {.importcpp, ...raises: [], tags: [].}
  Source   Edit