Suite.js Documentation

Introduction


Getting Started

• Downloading & Installing
• Running
Examples


Technical Support


Functions

Cryptography
• hashSHA256
• hmacSHA256
• hashSHA512
• hmacSHA512
• hashMD5
• hmacMD5

File System
fileExists
fileRead
fileWrite
folderExists
unzip
zip

Input / Output
beep
prompt
write
writeln

Networking
curlExecute
• nsapiExecute

Operating System
shellExecute

Text Encoding
base64Decode
base64Encode


Advanced Topics

info

Provides helpful information about the Suite.js runtime engine, the environment that it is running in, and much more.

Note that "info" is actually an object. An instance of the object is created automatically at runtime, and its properties can be refreshed using the "infoRefresh" function.

info Example

<span class="pln">writeln</span><span class="pun">(</span><span class="pln"> </span><span class="str">"The version of "</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> info</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="pln">name </span><span class="pun">+</span><span class="pln"> </span><span class="str">" that you are running is: "</span><span class="pln"> </span><span class="pun">);</span><span class="pln">
writeln</span><span class="pun">(</span><span class="pln"> info</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="pln">majorVersion </span><span class="pun">+</span><span class="pln"> </span><span class="str">"."</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> info</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="pln">minorVersion </span><span class="pun">);</span><span class="pln">
writeln</span><span class="pun">;</span><span class="pln">

writeln</span><span class="pun">(</span><span class="pln"> </span><span class="str">"Today is: "</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> info</span><span class="pun">.</span><span class="pln">date</span><span class="pun">.</span><span class="pln">longDate </span><span class="pun">);</span><span class="pln">
writeln</span><span class="pun">;</span><span class="pln">

writeln</span><span class="pun">(</span><span class="pln"> </span><span class="str">"The time is: "</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> info</span><span class="pun">.</span><span class="pln">date</span><span class="pun">.</span><span class="pln">longTime </span><span class="pun">);</span><span class="pln">
writeln</span><span class="pun">;</span><span class="pln">

writeln</span><span class="pun">(</span><span class="pln"> </span><span class="str">"Here's a JSON-encoded representation of the full \"info\" object."</span><span class="pln"> </span><span class="pun">);</span><span class="pln">
writeln</span><span class="pun">(</span><span class="pln"> JSON</span><span class="pun">.</span><span class="pln">stringify</span><span class="pun">(</span><span class="pln"> info</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">,</span><span class="pln"> </span><span class="lit">2</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">);</span><span class="pln">
writeln</span><span class="pun">;</span>

Here's an example of the output.

<span class="typ">The</span><span class="pln"> version of </span><span class="typ">Suite</span><span class="pun">.</span><span class="pln">js that you are running </span><span class="kwd">is</span><span class="pun">:</span><span class="pln"> 
</span><span class="lit">2025.1</span><span class="pln">

</span><span class="typ">Today</span><span class="pln"> </span><span class="kwd">is</span><span class="pun">:</span><span class="pln"> </span><span class="typ">Monday</span><span class="pun">,</span><span class="pln"> </span><span class="typ">March</span><span class="pln"> </span><span class="lit">24</span><span class="pun">,</span><span class="pln"> </span><span class="lit">2025</span><span class="pln">

</span><span class="typ">The</span><span class="pln"> time </span><span class="kwd">is</span><span class="pun">:</span><span class="pln"> </span><span class="lit">10</span><span class="pun">:</span><span class="lit">11</span><span class="pun">:</span><span class="lit">07</span><span class="pun"> </span><span class="pln">AM

</span><span class="typ">Here</span><span class="str">'s a JSON-encoded representation of the full "info" object.
{
  "app": {
    "name": "Suite.js",
    "description": "A JavaScript runtime that makes NetSuite integration easy.",
    "url": "https://suitejs.io",
    "copyright": "© 2025 Tim Dietrich. All rights reserved.",
    "majorVersion": 2025,
    "minorVersion": 1,
    "developer": {
      "name": "Tim Dietrich",
      "email": "timdietrich@me.com",
      "url": "https://timdietrich.me/"
    },
    "stageCode": "Alpha",
    "buildNumber": 277,
    "buildDateTime": "2025-03-24 10:11:04"
  },
  "arguments": [
    "/Users/flashgordon/Documents/Projects/Suite.js/Xojo Project/20250324/suitejs.debug/suitejs.debug",
    "../examples/info.js"
  ],
  "currentWorkingDirectory": {
    "shellPath": "/Users/flashgordon/Documents/Projects/Suite.js/Xojo\\ Project/20250324/suitejs.debug",
    "urlPath": "file:///Users/flashgordon/Documents/Projects/Suite.js/Xojo%20Project/20250324/suitejs.debug/"
  },
  "cURL": {
    "libraryVersion": "libcurl/8.12.1 OpenSSL/3.3.3 (SecureTransport) zlib/1.3.1 zstd/1.5.2 AppleIDN libssh2/1.11.1"
  },
  "date": {
    "abbreviatedDate": "Mar 24, 2025",
    "day": "24",
    "dayOfWeek": "2",
    "dayOfYear": "83",
    "gmtOffset": "-4",
    "hour": "10",
    "longDate": "Monday, March 24, 2025",
    "longTime": "10:11:07 AM",
    "minute": "11",
    "month": "3",
    "second": "7",
    "shortDate": "3/24/25",
    "shortTime": "10:11 AM",
    "sqlDate": "2025-03-24",
    "sqlDateTime": "2025-03-24 10:11:07",
    "ticks": "7659524",
    "totalSeconds": "3825655867",
    "weekOfYear": "13",
    "year": "2025"
  },
  "device": {
    "availableRAM": 1293959168,
    "computerName": "Coltrane",
    "cpuBrandString": "Apple M1 Pro",
    "hardDiscSerial": "0ba018136144be11",
    "hostName": "Coltrane",
    "isARM": true,
    "macAddress": "F4:D4:88:8A:59:09",
    "machineID": "F640F192161E4553FD38252CD725C02C",
    "macModel": "MacBookPro18,1",
    "macSerialNumber": "C9116DXFD6",
    "macUUID": "5EF1XFEE-A3F2-5202-8BC5-34473427E606",
    "osName": "macOS",
    "osVersion": "macOS 14.3.1",
    "physicalRAM": 17179869184,
    "platform": "MacOS",
    "processorCount": 10,
    "shortUsername": "flashgordon",
    "username": "Flash Gordon",
    "winProductKey": ""
  },
  "duktape": {
    "version": "20700"
  },
  "error": {
    "function": null,
    "params": null,
    "type": null,
    "number": null,
    "message": null
  },
  "mbs": {
    "version": "25.1"
  },
  "process": {
    "id": 14769,
    "startDateTime": "2025-03-24 10:11:07",
    "currentDateTime": "2025-03-24 10:11:07",
    "elapsedSeconds": 0
  },
  "sourceFile": {
    "creationDateTime": "2024-03-11 20:48:32",
    "displayName": "info.js",
    "length": 657,
    "modificationDateTime": "2025-01-11 18:13:37",
    "name": "info.js",
    "nativePath": "/Users/flashgordon/Documents/Projects/Suite.js/Xojo Project/20250324/suitejs.debug/../examples/info.js",
    "owner": "flashgordon",
    "parentNativePath": "/Users/flashgordon/Documents/Projects/Suite.js/Xojo Project/20250324/examples",
    "permissions": 420,
    "readable": true,
    "shellPath": "/Users/flashgordon/Documents/Projects/Suite.js/Xojo\\ Project/20250324/suitejs.debug/../examples/info.js",
    "type": "",
    "urlPath": "file:///Users/flashgordon/Documents/Projects/Suite.js/Xojo%20Project/20250324/suitejs.debug/../examples/info.js",
    "volumeFreeSize": 586299707392,
    "writeable": true
  },
  "specialFolders": {
    "applicationData": "/Users/flashgordon/Library/Application\\ Support",
    "caches": "/Users/flashgordon/Library/Caches",
    "currentWorkingDirectory": "/Users/flashgordon",
    "desktop": "/Users/flashgordon/Desktop",
    "documents": "/Users/flashgordon/Documents",
    "etc": "/private/etc",
    "home": "/Users",
    "preferences": "/Users/flashgordon/Library/Preferences",
    "system": "/System",
    "temporary": "/var/folders/pq/79bzv9td2s5dq8r65bjyzkq40000gn/T",
    "userHome": "/Users/flashgordon"
  },
  "xojo": {
    "version": "2024r4.2",
    "runMode": "Debug"
  }
}</span>

© Copyright 2025 Tim Dietrich. | Legal Info