is-my-ssb-valid
build scuttlebutt message validators from JSON Schema
Last updated 6 months ago by mixmix .
AGPL-3.0 · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install is-my-ssb-valid 
SYNC missed versions from official npm registry.

is-my-ssb-valid

Build message validators for scuttlebutt using JSON schema. Uses is-my-json-valid under the hood

Example usage

const Validator = require('is-my-ssb-valid')
const profileSchema = require('ssb-profile/spec/profile/schema')

const isProfile = Validator(profileSchema)
const A = {
  //....
}

isProfile(A)
// => true | false

console.log(isProfile.errors)
// => null | [Error]

console.log(isProfile.errorsString)
// => '' | 'data.type is required'  (example)
const pull = require('pull-stream')

pull(
  sbot.messagesByType({ type: 'profile/person', reverse: true }),
  pull.filter(isProfile),
  pull.take(50),
  pull.collect((err, profileUpdates) => {
    // ...
  })
)

API

Validator(schema) => isValid

where:

  • schema Object is a JSON schema
  • extras Array (optional) is an Array of additional custom validation functions.
    • These will be run after the schema-based validation, and are expected to either return true (no problem) or an Error (a problem) was found.
    • any error returned be added to the isValid.errors and isValid.errorsString for you (see below)

isValid(msg) => Boolean

where msg can be any of

  • a full message a "full message" of form { key, value, timestamp }
  • just the value of a message (msg.value)
  • just the content field of a message (msg.value.content)

If the last message tested came back invalid ("false"), then you can also check out the specific errors:

  • isValid.errors will be populated with those errors
  • isValid.errorsString will be populated with a (crudely) flattened version in case you need a String

Current Tags

  • 1.1.0                                ...           latest (6 months ago)

3 Versions

  • 1.1.0                                ...           6 months ago
  • 1.0.1                                ...           10 months ago
  • 1.0.0                                ...           10 months ago
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 1
Dependencies (2)
Dev Dependencies (2)

Copyright 2014 - 2016 © taobao.org |