0.7.1 • Published 9 months ago

@decipad_org/safejs v0.7.1

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

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_org/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

0.6.3

10 months ago

0.7.1

9 months ago

0.6.2

10 months ago

0.5.0

10 months ago

0.7.0

9 months ago

0.6.1

10 months ago

0.6.0

10 months ago

0.4.0

11 months ago

0.3.4

11 months ago

0.3.3

11 months ago

0.3.2

11 months ago

0.3.1

11 months ago

0.3.0

11 months ago

0.2.2

12 months ago

0.2.1

12 months ago

0.2.0

12 months ago

0.1.12

12 months ago

0.1.11

12 months ago

0.1.10

12 months ago

0.1.9

12 months ago

0.1.8

12 months ago

0.1.7

12 months ago

0.1.6

12 months ago

0.1.5

12 months ago

0.1.4

12 months ago

0.1.3

12 months ago

0.1.2

12 months ago

0.1.0

12 months ago

0.0.3

12 months ago

0.0.2

12 months ago

0.0.1

12 months ago

0.0.0

12 months ago