1.0.3 • Published 10 years ago

lenze v1.0.3

Weekly downloads
2
License
ISC
Repository
github
Last release
10 years ago

lenze

cross instance state replication with function invoking

Usage

In thread 1:

var Lenze = require('lenze');

var lenze = Lenze(sourceStateObject, {

    // Optional, defaults to 30
    // How often to poll when there have been recent changes
    minInterval: 30,

    // Optional, defaults to 300
    // How often to poll when there have not been recent changes
    maxInterval: 300,

    // Optional, defaults to 1000
    // How long to poll at minInterval before returning to maxInterval
    dozeInterval: 300,

    // How to send updates
    send: function(data){
        self.postMessage(data);
    },

    // How to receive invocations/connects
    receive: function(callback){
        self.addEventListener('message', function(message){
            callback(message.data);
        });
    }
});

state.x = 10;

state.doSomething = function(x){
    console.log(x);
};

In main thread:

var Lenze = require('../../');

var worker = new Worker("thread1.js");

var lenze = Lenze.replicant(targetStateObject, {

    // How to recieve updates/state
    receive: function(callback){
        worker.addEventListener('message', function(message){
            callback(message.data);
        });
    },

    // How to send invocations/connects
    send: function(data){
        worker.postMessage(data);
    }
});

// Called when the replicant gets state/change for the first time.
lenze.on('ready', function(){

    // This will cause 'dooby' to be logged in the first thread.
    lenze.state.doSomething('dooby');

});

// Called when any state changes within the lenze. (probably often);
lenze.on('change', function(){

    console.log(lenze.state);

});

Notes

  • Instance references (objects/function) are maintained.

    This is a very experimental. The code is very messy and not optimised. There are many TODOs floating around my head.

1.0.3

10 years ago

1.0.2

10 years ago

1.0.0

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago