mschema-rpc

0.7.0 • Public • Published

mschema-rpc

Minimalistic Remote Procedural Call library using mschema validation for remote method's input and output.

Features

  • Provides validation to functions incoming arguments and outgoing results
  • Validation based on mschema

API

rpc.invoke(inputData, method, methodSchema, callback)

inputData

the input data to be sent to method

method

the method to be executed remotely

methodSchema

the schema to be used to validate the input and output of method

schema format

{
  "input": {
    "key": "val"
  },
  "output": {
    "key": "val"
  }
}

see: http://github.com/mschema/mschema for full schema format documentation

callback

the callback to be executed after method has been invoked

Example

 
var rpc = require('mschema-rpc');
 
var fireSchema = {
  "description": "fires missle",
  "input": {
    "name": "string",
      "power": {
        "type": "string",
        "enum": ["high", "medium", "low"]
      },
      "warheads": {
        "type": "number",
        "min": 1,
        "max": 8
      }
    },
  "output": {
    "result": "string"
  }
};
 
function fireFn (input, callback) {
  callback(null, 'weapon fired');
}
 
var data = {
  "name": "small missle",
  "power": "low",
  "warheads": 8
};
 
rpc.invoke(data, fireFn, fireSchema, function(errors, result) {
  console.log('errors', errors);
  console.log('result', result);
});

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.7.0
    771
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 0.7.0
    771
  • 0.6.0
    1
  • 0.5.1
    1
  • 0.5.0
    1

Package Sidebar

Install

npm i mschema-rpc

Weekly Downloads

558

Version

0.7.0

License

MIT

Last publish

Collaborators

  • marak