Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

magic-handler

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

magic-handler

A WebWorker linker extension. For creating links between WebWorkers and MainThreads

  • 1.2.4
  • latest
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

Magic Handler

A WebWorker linker extension. For creating links between WebWorkers and MainThreads

Example

// master.ts
import MagicWorker from 'magic-handler/src';

export interface ISlave extends FunctionsMap {
  test(a: string): Promise<string>;
}

class Master extends MagicWorker<ISlave> {
  constructor() { super('./slave.js') }

  // .log functio will be available for Slave and also for Master.
  async log(msg: string) {
    console.log('Slave said: ' + msg);
  }
}

const master = new Master()               // Creates a worker instance.
master.call('goodBoy')                    // Calls the function Slave.goodBoy( ).
  .then(() => master.call('test', 'foo')) // Calls the function Slave.test('foo').
  .then(str => console.log(str));         // Logs "a: foo" after 1 second.

export default master;
// slave.ts
import MagicWorker from 'magic-handler/src';

const timeout = (time: number) => new Promise<void>(res => setTimeout(res, time))

class Slave extends MagicWorker {
  public async test(a: string) {
    await timeout(1000); // Remove after a while and commit performance upgrade!
    return `a: ${a}`;
  }

  public async goodBoy() {
    console.log('Yay!')
    await this.call('log', 'I am a good boy'); // Call a function from master.
    return 'boy';
  }
}

const slave = new Slave(); // Create the MagicHandler instance.

Keywords

FAQs

Package last updated on 16 Apr 2020

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc