| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | 
							- '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();
 
-   }
 
- };
 
 
  |