Skip to content

Commit 0d3270f

Browse files
committed
refactor: convert regexp to inline keyword (to support ajv-pack)
1 parent bd74cab commit 0d3270f

File tree

2 files changed

+5
-7
lines changed

2 files changed

+5
-7
lines changed

keywords/regexp.js

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,8 @@
33
module.exports = function (ajv) {
44
ajv.addKeyword('regexp', {
55
type: 'string',
6-
compile: function (schema) {
7-
var regexp = getRegExp();
8-
9-
return function (data) {
10-
return regexp.test(data);
11-
};
6+
inline: function (it, keyword, schema) {
7+
return getRegExp() + '.test(data' + (it.dataLevel || '') + ')';
128

139
function getRegExp() {
1410
try {

spec/regexp.spec.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
'use strict';
22

33
var Ajv = require('ajv');
4+
var ajvPack = require('ajv-pack');
45
var defFunc = require('../keywords/regexp');
56
var defineKeywords = require('..');
67
var should = require('chai').should();
78

89

910
describe('keyword "regexp"', function() {
10-
var ajvs = [ new Ajv, new Ajv({allErrors: true}), new Ajv({v5: true}) ];
11+
var ajvs = [ new Ajv, new Ajv({allErrors: true}), new Ajv, ajvPack.instance(new Ajv({sourceCode: true})) ];
1112
defFunc(ajvs[0]);
1213
defineKeywords(ajvs[1], 'regexp');
1314
defineKeywords(ajvs[2]);
15+
defFunc(ajvs[3]);
1416

1517
ajvs.forEach(function (ajv, i) {
1618
it('should validate that values match regular expressions with flags #' + i, function() {

0 commit comments

Comments
 (0)