Skip to content
Tarant resolver and materializer for storing actor states in the local storage of the browser
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-lock.json
package.json
rollup.config.js
tsconfig.json
tslint.json
upgrade.sh
yarn.lock

README.md

logomakr_8pe69n

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

Motivation

Usually complex applications need to store offline part of the state, so it can be synced back or reused later. This module lets tarant store your actors serialized in the local storage and recovered implicitly.

Installation

Add it to your project using npm install tarant-local-storage --save or yarn add tarant-local-storage

Usage

You need to mark which classes need to be exported first. Usually this is done with the LocalStoragePersisted
class decorator.

import { Actor } from "tarant";
import { LocalStoragePersisted } from "tarant-local-storage";

export default class MyPersistedActor extends Actor {
    ...
}
LocalStoragePersisted("MyPersistedActor", MyPersistedActor) // NameOfThePersistedClass (unique), Class constructor

And then add the repository as a materializer and as a resolver:

import { ActorSystem, ActorSystemConfigurationBuilder } from 'tarant'
import MyPersistedActor from './actor';
import { LocalStoragePersisted, LocalStorageRepository } from 'tarant-local-storage';

window.onload = () => {
  const repository = new LocalStorageRepository()

  const system = ActorSystem.for(ActorSystemConfigurationBuilder.define()
  .withMaterializers([repository])
  .withResolvers([repository])
  .done())  

  system.actorOf(MyPersistedActor)
}
Created my free logo at LogoMakr.com
You can’t perform that action at this time.