Socket
Book a DemoInstallSign in
Socket

@decipad/safejs

Package Overview
Dependencies
Maintainers
4
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@decipad/safejs

This repo intends to safely run JavaScript into a website using web workers

latest
Source
npmnpm
Version
1.1.1
Version published
Maintainers
4
Created
Source

safejs

This repo intends to safely run JavaScript into a website using web workers. It provides a controller class, with some defaults.

Blog Post Link

Decipad Blog Link

Usage example

const myWorker = new SafeJs(
  // Success callback
  (successMessage) => {
    console.log(successMessage);
  },
  // Errors callback
  (err) => console.error(err),
  {
    maxExecutingTime: 50000,
  }
);

myWorker.execute('return "Hello World"');

Parameters

As seen above, the third parameter for the SafeJS constructor is a series of options.

export interface SafeJsOptions {
  maxWorkerReturn: number; // Number of characters the stringified result is allowed to return. Default 10000.
  maxExecutingTime: number; // Kill the worker after not returning this number of milliseconds. Default 20000.
  maxConsoleLog: number; // Max number of logs returned. Default 200.
  extraWhitelist: Array<string>; // Objects you wish to whitelist and thus allow the user to use in their code.

  fetchProxyUrl: string | undefined; // Replaces the default `fetch` URL if provided.
}

dev install

to test this package you need to set up with link (insert zelda pun):

In this repo:

pnpm link

Wherever you are using it

pnpm link @decipad/safejs

If you use a builder, like webpack, you might have to rebuild. This is an example of how that might look like (in the safejs repo):

pnpm run build

Inspiration

This package was partially inspired by (Wumpus World)[https://github.com/Domiii/WumpusGame/blob/master/js/script/GuestScriptContext.js]

Keywords

codeblock

FAQs

Package last updated on 17 Jul 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts