/commonform-predicate

distinguish Common Form content objects

Primary LanguageJavaScriptOtherNOASSERTION

var predicate = require('commonform-predicate')

The exported functions can be used to find the type of a content array element in a known-valid form, to avoid doing all that's necessary to ensure validity.

If you a know a form object is valid, and need to pick out specific content elements, use commonform-predicate, not commonform-validate.

var assert = require('assert')

var invalid = { invalid: 'object' }
var validForm = { content: ['Valid text'] }

assert(predicate.definition({ definition: 'Term' }))
assert(!predicate.definition(invalid))

assert(predicate.use({ use: 'Term' }))
assert(!predicate.use({ term: 'Term' }))

assert(predicate.reference({ reference: 'Term' }))
assert(!predicate.reference(invalid))

assert(predicate.blank({ blank: 'Value' }))
assert(!predicate.blank(invalid))

assert(predicate.link({ link: 'https://example.com' }))
assert(predicate.link({ link: 'http://example.com' }))
assert(!predicate.link(invalid))

assert(predicate.child({ heading: 'Summary', form: validForm }))
assert(!predicate.child(invalid))

assert(predicate.component({
  heading: 'Warranty Disclaimer',
  component: 'https://commonform.org/kemitchell/orthodox-software-copyright-license',
  version: '1.0.0',
  substitutions: {
    terms: {
      Licensor: 'Vendor',
      Licensee: 'Customer',
      Program: 'Software'
    },
    headings: {
      'Express Warranties': 'Guarantees'
    }
  }
}))

assert(predicate.text('Text'))
assert(!predicate.text(null))