UNPKG

serialport-v5

Version:

fork with electron support of Node.js package to access serial ports. Linux, OSX and Windows. Welcome your robotic JavaScript overlords. Better yet, program them!

53 lines (41 loc) 1.44 kB
'use strict'; var META_SCHEMA_ID = 'https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-v5.json'; module.exports = { enable: enableV5, META_SCHEMA_ID: META_SCHEMA_ID }; function enableV5(ajv) { var inlineFunctions = { 'switch': require('./dotjs/switch'), 'constant': require('./dotjs/constant'), '_formatLimit': require('./dotjs/_formatLimit'), 'patternRequired': require('./dotjs/patternRequired') }; if (ajv._opts.meta !== false) { var metaSchema = require('./refs/json-schema-v5.json'); ajv.addMetaSchema(metaSchema, META_SCHEMA_ID); } _addKeyword('constant'); ajv.addKeyword('contains', { type: 'array', macro: containsMacro }); _addKeyword('formatMaximum', 'string', inlineFunctions._formatLimit); _addKeyword('formatMinimum', 'string', inlineFunctions._formatLimit); ajv.addKeyword('formatExclusiveMaximum'); ajv.addKeyword('formatExclusiveMinimum'); ajv.addKeyword('patternGroups'); // implemented in properties.jst _addKeyword('patternRequired', 'object'); _addKeyword('switch'); function _addKeyword(keyword, types, inlineFunc) { var definition = { inline: inlineFunc || inlineFunctions[keyword], statements: true, errors: 'full' }; if (types) definition.type = types; ajv.addKeyword(keyword, definition); } } function containsMacro(schema) { return { not: { items: { not: schema } } }; }