| 123456789101112131415161718192021222324252627282930313233343536 | 'use strict';module.exports = function defFunc(ajv) {  defFunc.definition = {    type: 'string',    inline: function (it, keyword, schema) {      return getRegExp() + '.test(data' + (it.dataLevel || '') + ')';      function getRegExp() {        try {          if (typeof schema == 'object')            return new RegExp(schema.pattern, schema.flags);          var rx = schema.match(/^\/(.*)\/([gimuy]*)$/);          if (rx) return new RegExp(rx[1], rx[2]);          throw new Error('cannot parse string into RegExp');        } catch(e) {          console.error('regular expression', schema, 'is invalid');          throw e;        }      }    },    metaSchema: {      type: ['string', 'object'],      properties: {        pattern: { type: 'string' },        flags: { type: 'string' }      },      required: ['pattern'],      additionalProperties: false    }  };  ajv.addKeyword('regexp', defFunc.definition);  return ajv;};
 |