Javascript utilities
This reference covers built-in Javascript utility functions. These functions are available anywhere that Javascript can be used in Sirveo.
Built-in functions are usually implemented because they are either convenient for common needs, or much more performant than pure-javascript alternatives, or because they provide capabilities which are impractical or impossible to implement in pure javascript.
Accessing utility functions
All built-in utility functions are namespaced on a global lib object, such that they can be accessed with lib.UUID(), for example.
Utility functions
The following code snippets are for use in JS Code nodes, although the utility functions are available everywhere that javascript is supported in Sirveo.
lib.UUID
Generate a new UUIDv4 value.
$out.uuid = lib.UUID()Output:
{ "uuid": "37f96aa4-3968-45e7-be3e-1122d309067a"}lib.NowISO
Obtain the current timestamp, as an ISO string format, necessarily in UTC.
$out.ts = lib.NowISO()Output:
{ "ts": "2024-06-15T21:44:34.689Z"}lib.NowSec
Obtain the current timestamp, as unix time / unix epoch.
$out.ts = lib.NowSec()Output:
{ "ts": 1718487989}lib.NowMs
Obtain the current timestamp, as unix time / unix epoch, but with milliseconds.
$out.ts = lib.NowMs()Output:
{ "ts": 1718487925668}lib.SHA256
Obtain the hex-encoded SHA256 digest for the given input. It is recommended to use string inputs.
$out = { // strings are expected string: lib.SHA256("input string"), // booleans are treated as strings bool: lib.SHA256(true), // "true" // numbers are treated as strings number: lib.SHA256(123.4), // "123.4" // null is treated as empty string null: lib.SHA256(null), // "" // undefined is treated as empty string undefined: lib.SHA256(undefined), // ""}Output:
{ "bool": "b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b", "null": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "number": "5f466d7afa48b619c7045d54b15d8d48f47e401335078e9267f5e1d942e09ca5", "string": "f23f4781d6814ebe349c6b230c1f700714f4f70f735022bd4b1fb69421859993", "undefined": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}lib.Base64Encode
Perform base64 encoding on the input string, as per RFC4648.
The following example demonstrates all base64-related utilities.
$out.a_input = "http://127.0.0.1:1234/path?a=b"
// RFC4648 section 4 (standard)$out.b_encoded = lib.Base64Encode($out.a_input)$out.c_decoded = lib.Base64Decode($out.b_encoded)
// RFC4648 section 5 (filename & url safe)$out.d_url_encoded = lib.Base64EncodeUrl($out.a_input)$out.e_url_decoded = lib.Base64DecodeUrl($out.d_url_encoded)
// bad input$out.f_bad_decode = lib.Base64Decode("badBase64")Output:
{ "a_input": "http://127.0.0.1:1234/path?a=b",
"b_encoded": "aHR0cDovLzEyNy4wLjAuMToxMjM0L3BhdGg/YT1i", "c_decoded": "http://127.0.0.1:1234/path?a=b",
"d_url_encoded": "aHR0cDovLzEyNy4wLjAuMToxMjM0L3BhdGg_YT1i", "e_url_decoded": "http://127.0.0.1:1234/path?a=b",
"f_bad_decode": ""}lib.Base64Decode
Decodes a base64 string value. Invalid input results in an empty string.
See example usage.
lib.Base64EncodeUrl
Perform URL-safe base64 encoding on the input string, as per section 5.
See example usage.
lib.Base64DecodeUrl
Decodes a url-safe base64 string value. Invalid input results in an empty string.
See example usage.
Tips
The output of the timestamp-related utility functions will be as accurate as the system clock.