2.6.1 • Published 4 years ago

@mangar2/checkinput v2.6.1

Weekly downloads
17
License
LGPL-3.0-or-later
Repository
github
Last release
4 years ago

Abstract

JSON schema validator matching standard version 0 . 7

Contents

Meta

Filecheckinput.js
AbstractJSON schema validator matching standard version 0 . 7
AuthorVolker Böhm
CopyrightCopyright ( c ) 2020 Volker Böhm
LicenseThis software is licensed under the GNU LESSER GENERAL PUBLIC LICENSE Version 3 . It is furnished "as is" , without any support , and with no warranty , express or implied , as to its usefulness for any purpose .

Global functions

_checkPropertyNames

_checkPropertyNames (definition, object, checkSubschema) => {CheckResult}

Checks the property names

_checkPropertyNames Parameters

NameTypeDescription
definitionObjectproperty names schema definition
objectObjectobject to check
checkSubschemafunction( definition , data )

_checkPropertyNames returns

TypeDescription
CheckResultresult of the check with 'check' and 'message'

Class CheckInput

new CheckInput(definition, options)

Creates a new JSON Schema validation class to validate a data object according to a JSON Schema . Many thanks to epoberezkin/JSON-Schema-Test-Suite for providing a cool test suite . I use it to check my implementation This is not ( yet ) a complete implementation . The following tests are not running yet :

  • remote-refs ( neither local nor remote )
  • unicode-code-points ( EmacsScript length is used to get the lengt of a string ) definitions

Example

check = new CheckInput({
  type: 'object',
  properties: {
      topic: { type: 'string' },
      value: { type: 'string' },
  },
  required: ['topic', 'value']
})
// returns true, as the parameter fits to the descriptions
check.validate({ topic: '/a/b', value: 'on' })

// returns false and fills the error message
// check.message is { topic: 'missing property topic', value: 'missing property value' }
check.validate ( {} )

// Throws an Error, as the validation does not fits to the description
check.throwOnValidationError({ topic: '/a/b' })

// Prints the error message
console.log(check.messages)

CheckInput Parameters

NameTypeDescription
definitionAnyJSON schema definition
optionsObjectschema validation options

options properties

NameTypeAttributeDefaultDescription
deepUniquebooleanoptionaltrueif true , the content is checked deeply . For example different objects with the same
stringToNumberbooleanoptionalfalseif true , strings containing numbers are automatically converted

CheckInput Members

NameTypedescription
messagesObject, stringGets the list of error messages

CheckInput Methods

throwOnValidationError

throwOnValidationError (data, message)

Validates the input and throws a message on error

throwOnValidationError Parameters
NameTypeAttributeDefaultDescription
dataObjectdata to check against definition
messagestringoptional''starting string of the error message

validate

validate (data) => {boolean}

Checks an object against a swagger defintion

validate Parameters
NameTypeDescription
dataObjectdata to check against definition
validate returns
TypeDescription
booleantrue , if the data matches to the definition else false