Actualizacion maquina principal
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / ajv-keywords / keywords / range.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/ajv-keywords/keywords/range.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/ajv-keywords/keywords/range.js
new file mode 100644 (file)
index 0000000..9c1fd3f
--- /dev/null
@@ -0,0 +1,36 @@
+'use strict';
+
+module.exports = function defFunc(ajv) {
+  defFunc.definition = {
+    type: 'number',
+    macro: function (schema, parentSchema) {
+      var min = schema[0]
+        , max = schema[1]
+        , exclusive = parentSchema.exclusiveRange;
+
+      validateRangeSchema(min, max, exclusive);
+
+      return exclusive === true
+              ? {exclusiveMinimum: min, exclusiveMaximum: max}
+              : {minimum: min, maximum: max};
+    },
+    metaSchema: {
+      type: 'array',
+      minItems: 2,
+      maxItems: 2,
+      items: { type: 'number' }
+    }
+  };
+
+  ajv.addKeyword('range', defFunc.definition);
+  ajv.addKeyword('exclusiveRange');
+  return ajv;
+
+  function validateRangeSchema(min, max, exclusive) {
+    if (exclusive !== undefined && typeof exclusive != 'boolean')
+      throw new Error('Invalid schema for exclusiveRange keyword, should be boolean');
+
+    if (min > max || (exclusive && min == max))
+      throw new Error('There are no numbers in range');
+  }
+};