clientlinker-core

Linker all clients whether rpc, addon, http request, mock data, local file ...

Usage no npm install needed!

<script type="module">
  import clientlinkerCore from 'https://cdn.skypack.dev/clientlinker-core';
</script>

README

ClientLinker-Core

Linker all clients whether rpc, addon, http request, mock data, local file ...

A solution to break out of network and OS.

NPM Version NPM Downloads NPM License Install Size

Install

npm install clientlinker-core --save

Usage

Options

Linker Options Exmaple, see Optons or Self Flows Options

{
  flows: ['logger', 'pkghandler', 'httpproxy'],
  defaults: {
    timeout: 4000
  },
  clients: {
    mail: {
      // modify defaults flows
      flows: ['confighandler', 'httpproxy'],
      confighandler: {
        read: function(query, body, callback, options) {
          callback(null, {content: 'hi,'});
        },
        send: function(query, body, callback, options) {
          return Promise.resolve({id: 'xxxx'});
        }
      }
    },

    // use defaults
    profile: {
      pkghandler: __dirname+'/clients/profile.js'
    }
  }
}

Initialize

// `clientlinker.conf.js` file content

var clientlinker = require('clientlinker-core');
var linker = clientlinker(options);

// Register flows
linker.flow('confighandler', require('clientlinker-flow-confighandler'));
linker.flow('logger', require('clientlinker-flow-logger'));
linker.flow('httpproxy', require('clientlinker-flow-httpproxy'));
linker.flow('pkghandler', require('clientlinker-flow-pkghandler'));

// Add clients outsid of config step
linker.client(name, clientOptions);

module.exports = linker;

Run

Run in Server

var linker = require('./clientlinker.conf.js');

linker.run('mail.read', userid, {mailid: 'xxxx'}, options)
  .then(function(data){});

Upgrade

10x

Remove deps handlers

runtime.runOptions runtime.methodKey runtime.lastFlow flow.register runtime.getRunnedFlowByName runtime.runnedFlows runtime.isFinished runtime.isStarted linker.add linker.addClient linker.parseMethodKey linker.getFlow linker.runByKey linker.bindFlow linker.loadFlow linker.onInit linker.runInShell

Remove attrs runtime.promise

Remove options option.clientDefaultOptions

Flow not support init callback.

Remove callback handlers of flow.run(runtime, callback)

callback.toFuncCallback callback.reject callback.resolve callback.callback callback.nextAndResolve callback.promise callback.nextRunner

flow.run ret switch to Promise always.

Remove retry event of runtime. Add retry event of linker.