strim-js
TypeScript icon, indicating that this package has built-in type declarations

1.0.48 • Public • Published

STRIM 🌊

Streaming Transports Relay Isomorphic Modules

Installation

npm i -S strim-js

or

yarn add strim-js

Usage

Write a module in your modules directory

// myModules/myAmazingModule/package.json
// myModules/myAmazingModule/index.js

Server side (only if you need to run some of your modules on the server)

// server.js
const http = require('http')
const express = require('express')
const { setStrimModules, setWs } = require('strim-js/dist/strimModules');

const app = express()

setStrimModules(app, { modulesPath: './myStrimModules' });
const httpServer = http.createServer(app);

setWs(httpServer);
httpServer.listen(80);

Client side

// client.js

Full Example

import Strim from 'strim-js'

new Strim()
  .pipe({
    module: 'myAmazingModule',
    func: 'get',
    args: [1, 2, 4],
  })
  .toServer()
  .pipe({
    module: 'myAmazingModule',
    func: 'runningSum',
  })
  .subscribe(
    value => {
      console.log('Current Value:', value)
    },
    err => {
      console.error('Error Occurred:', err)
    },
    () => {
      console.log('Done')
    },
  )

API

Strim

The core class which activates the strim flow

Strim instance public methods

constructor(options)
  • options: An object containing general strim options.
    • wsUrl (Default 'ws://localhost:4321/strim'): The websocket url.:
    • modulesDir: define where the modules directory
pipe(options)
  • options: An object containing piped function options.
    • module (Default 'global'): The module name that will be imported for use of the pipe.
    • func (Default 'default'): The function name within the module.:
    • env (Default last func's environment): The environment in which we want the function to run in (can be Environment.Client or Environment.Server).:
    • args: arguments that will be sent to the piped function.
toClient(worker)
  • worker (Default false): Whether to open in a worker or not.
toServer(worker)
  • worker (Default false): Whether to open in a worker or not.
subscribe(onNext, onError, onComplete)
  • onNext (Default console.log): callback function that will occur every time a new value is received.
  • onError (Default console.error): callback function that will occur when an error is received.
  • onComplete: callback function that will occur the strim is complete.

setStrimModules(app, options)

  • app: The Express application to set up strim on.
  • options (Optional): An object containing further options.
    • wsRoute (Default '/strim'): The route path for strim's endpoint.
    • modulesPath (Default 'node_modules'): The path to the directory of the modules.

Development

This module is written as part of Wix guild week, we'll be happy to have people help.

just clone the repo, yarn and yarn test

Dependencies (9)

Dev Dependencies (32)

Package Sidebar

Install

npm i strim-js

Weekly Downloads

2

Version

1.0.48

License

UNLICENSED

Unpacked Size

124 kB

Total Files

35

Last publish

Collaborators

  • deanshub