Skip to content
remote-sync server for bindings for tarant and express
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib
test
.gitignore
.npmignore
.prettierrc
.travis.yml
CODE_OF_CONDUCT.md
LICENSE
README.md
package.json
tsconfig.json
tslint.json
upgrade.sh
yarn.lock

README.md

logomakr_0zeodi

npm Build Status Coverage Status PRs Welcome issues Welcome npm GitHub issues GitHub pull requests Downloads

Motivation

remote-sync server for bindings clients using routers or tarant-sync-router-express

Installation

add it to your project using npm install tarant-sync-router-express --save or yarn add tarant-sync-router-express

Usage

initialize your controllers/routers by calling the SyncController with the actor system and the wanted configuration. Adding them to your express app.

import SyncController from "tarant-sync-router-express"
import { ActorSystem, ActorSystemConfigurationBuilder } from 'tarant'
import AppActor from '../AppActor'

const app: express.Application = express()
const port: number = 3002
const config : any  = {
      paths: {
          pull: "/pull", 
          push: "/push", 
      },
      actorTypes: { AppActor }
}

const system : any = ActorSystem.for(ActorSystemConfigurationBuilder.define().done())  

app.use(SyncController(system, config))

app.listen(port, () => {
    console.log(`Listening at http://localhost:${port}/`)
})

your actors will require to implement IUpdatable (UpdateFrom) and IExportable (toJson)

import { Actor } from "tarant";
import { IUpdatable, IExportable } from "tarant-sync-router-express"

export default class AppActor extends Actor implements IUpdatable, IExportable {

  constructor(name: string) {
      super(name)
  }

  addOne() {
      this.counter++
  }

  toJson(){
        return {
            id: this.id,
            type:"AppActor",
            counter: this.counter
        }
    }

    updateFrom({ counter }: any): void {
        this.counter = counter
    }

    private counter = 1; 
}

confiuration options

  1. paths.pull: path to endpoint for pulling data from the backend
  2. paths.push: path to endpoint for pushing data to the backend
  3. ActorTypes: objects registering the type of actors that should be sync with the backend
Created my free logo at LogoMakr.com
You can’t perform that action at this time.