@rbxts/jsnatives
rbxts-jsnatives
A collection of JavaScript-like APIs for Roblox TypeScript (roblox-ts).
Overview
This package provides implementations of common JavaScript/TypeScript built-in functions and utilities that are not natively available in Roblox Lua. It aims to make porting JavaScript/TypeScript code to Roblox easier and provide familiar APIs for TypeScript developers working in Roblox.
Modules
The package includes several modules:
- Array utilities - Extra utilities for arrays
- Console - Logging and debugging utilities
- Error - Error handling utilities
- JSON - JSON parsing and stringification
- Number - Number constants and methods
- Object - Object manipulation utilities
- Proxy - Lua-compatible implementation of JS Proxies
- Set utilities - Extra utilities for Set objects
- String - String manipulation methods
- Symbol - Symbol constants and methods
- Timers - setTimeout and setInterval implementations
Standalone Functions
The package also includes standalone utility functions:
- encodeUriComponent - Encodes URI components for safe use in URLs
- inspect - Inspects an object and returns a string representation
Usage
Import specific utilities from the library:
import { setTimeout, clearTimeout } from "@rbxts/jsnatives";
const timerId = setTimeout(() => { print("This runs after 1 second");}, 1000);
// Cancel the timer if neededclearTimeout(timerId);
Or import all utilities:
import * as JsNatives from "@rbxts/jsnatives";
JsNatives.console.log("Hello, %s!", "world");
Installation
npm install @rbxts/jsnatives
You also can install it directly from github (in case you want to use a unreleased version):
npm install @rbxts/jsnatives@github:RsMan-Dev/rbxts-jsnatives