.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / ajv-keywords / keywords / regexp.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/ajv-keywords/keywords/regexp.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/ajv-keywords/keywords/regexp.js
new file mode 100644 (file)
index 0000000..973628c
--- /dev/null
@@ -0,0 +1,36 @@
+'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;
+};