diff options
Diffstat (limited to 'node_modules/ajv-keywords/keywords/transform.js')
| -rw-r--r-- | node_modules/ajv-keywords/keywords/transform.js | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/node_modules/ajv-keywords/keywords/transform.js b/node_modules/ajv-keywords/keywords/transform.js deleted file mode 100644 index d715452b..00000000 --- a/node_modules/ajv-keywords/keywords/transform.js +++ /dev/null @@ -1,80 +0,0 @@ -'use strict'; - -module.exports = function defFunc (ajv) { - var transform = { - trimLeft: function (value) { - return value.replace(/^[\s]+/, ''); - }, - trimRight: function (value) { - return value.replace(/[\s]+$/, ''); - }, - trim: function (value) { - return value.trim(); - }, - toLowerCase: function (value) { - return value.toLowerCase(); - }, - toUpperCase: function (value) { - return value.toUpperCase(); - }, - toEnumCase: function (value, cfg) { - return cfg.hash[makeHashTableKey(value)] || value; - } - }; - - defFunc.definition = { - type: 'string', - errors: false, - modifying: true, - valid: true, - compile: function (schema, parentSchema) { - var cfg; - - if (schema.indexOf('toEnumCase') !== -1) { - // build hash table to enum values - cfg = {hash: {}}; - - // requires `enum` in schema - if (!parentSchema.enum) - throw new Error('Missing enum. To use `transform:["toEnumCase"]`, `enum:[...]` is required.'); - for (var i = parentSchema.enum.length; i--; i) { - var v = parentSchema.enum[i]; - if (typeof v !== 'string') continue; - var k = makeHashTableKey(v); - // requires all `enum` values have unique keys - if (cfg.hash[k]) - throw new Error('Invalid enum uniqueness. To use `transform:["toEnumCase"]`, all values must be unique when case insensitive.'); - cfg.hash[k] = v; - } - } - - return function (data, dataPath, object, key) { - // skip if value only - if (!object) return; - - // apply transform in order provided - for (var j = 0, l = schema.length; j < l; j++) - data = transform[schema[j]](data, cfg); - - object[key] = data; - }; - }, - metaSchema: { - type: 'array', - items: { - type: 'string', - enum: [ - 'trimLeft', 'trimRight', 'trim', - 'toLowerCase', 'toUpperCase', 'toEnumCase' - ] - } - } - }; - - ajv.addKeyword('transform', defFunc.definition); - return ajv; - - function makeHashTableKey (value) { - return value.toLowerCase(); - } -}; |
