diff options
Diffstat (limited to 'node_modules/ajv-keywords/keywords/_formatLimit.js')
| -rw-r--r-- | node_modules/ajv-keywords/keywords/_formatLimit.js | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/node_modules/ajv-keywords/keywords/_formatLimit.js b/node_modules/ajv-keywords/keywords/_formatLimit.js deleted file mode 100644 index e731a8a0..00000000 --- a/node_modules/ajv-keywords/keywords/_formatLimit.js +++ /dev/null @@ -1,101 +0,0 @@ -'use strict'; - -var TIME = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i; -var DATE_TIME_SEPARATOR = /t|\s/i; - -var COMPARE_FORMATS = { - date: compareDate, - time: compareTime, - 'date-time': compareDateTime -}; - -var $dataMetaSchema = { - type: 'object', - required: [ '$data' ], - properties: { - $data: { - type: 'string', - anyOf: [ - { format: 'relative-json-pointer' }, - { format: 'json-pointer' } - ] - } - }, - additionalProperties: false -}; - -module.exports = function (minMax) { - var keyword = 'format' + minMax; - return function defFunc(ajv) { - defFunc.definition = { - type: 'string', - inline: require('./dotjs/_formatLimit'), - statements: true, - errors: 'full', - dependencies: ['format'], - metaSchema: { - anyOf: [ - {type: 'string'}, - $dataMetaSchema - ] - } - }; - - ajv.addKeyword(keyword, defFunc.definition); - ajv.addKeyword('formatExclusive' + minMax, { - dependencies: ['format' + minMax], - metaSchema: { - anyOf: [ - {type: 'boolean'}, - $dataMetaSchema - ] - } - }); - extendFormats(ajv); - return ajv; - }; -}; - - -function extendFormats(ajv) { - var formats = ajv._formats; - for (var name in COMPARE_FORMATS) { - var format = formats[name]; - // the last condition is needed if it's RegExp from another window - if (typeof format != 'object' || format instanceof RegExp || !format.validate) - format = formats[name] = { validate: format }; - if (!format.compare) - format.compare = COMPARE_FORMATS[name]; - } -} - - -function compareDate(d1, d2) { - if (!(d1 && d2)) return; - if (d1 > d2) return 1; - if (d1 < d2) return -1; - if (d1 === d2) return 0; -} - - -function compareTime(t1, t2) { - if (!(t1 && t2)) return; - t1 = t1.match(TIME); - t2 = t2.match(TIME); - if (!(t1 && t2)) return; - t1 = t1[1] + t1[2] + t1[3] + (t1[4]||''); - t2 = t2[1] + t2[2] + t2[3] + (t2[4]||''); - if (t1 > t2) return 1; - if (t1 < t2) return -1; - if (t1 === t2) return 0; -} - - -function compareDateTime(dt1, dt2) { - if (!(dt1 && dt2)) return; - dt1 = dt1.split(DATE_TIME_SEPARATOR); - dt2 = dt2.split(DATE_TIME_SEPARATOR); - var res = compareDate(dt1[0], dt2[0]); - if (res === undefined) return; - return res || compareTime(dt1[1], dt2[1]); -} |
