[Pkg-javascript-devel] Bug#1057707: eslint is incompatible with node-ajv >= 8

Yadd yadd at debian.org
Thu Dec 7 11:43:35 GMT 2023


Package: eslint
Version: 6.4.0~dfsg+~6.1.9-7
Severity: important
Tags: ftbfs upstream

Hi,

eslint depends on node-ajv 6 and is incompatible with node-ajv 8
(available in exeprimental branch). All is in lib/shared/ajv.js:

 - eslint requires 'ajv/lib/refs/json-schema-draft-04.json' which is no
   more available
 - eslint tries to set `ajv._opts.defaultMeta` which is
   `ajv.opts.defaultMeta` in node-ajv 8.

Changing "ajv/lib/refs/json-schema-draft-04.json" to
"ajv/lib/refs/json-schema-draft-06.json" doesn't work. I tried this
patch which looks to work but 27 tests fail (not the good error string).
It uses default ajv schemas.

Help needed here ;-)

--- a/lib/shared/ajv.js
+++ b/lib/shared/ajv.js
@@ -8,8 +8,7 @@
 // Requirements
 //------------------------------------------------------------------------------

-const Ajv = require("ajv"),
-    metaSchema = require("ajv/lib/refs/json-schema-draft-04.json");
+const Ajv = require("ajv");

 //------------------------------------------------------------------------------
 // Public Interface
@@ -17,6 +16,7 @@

 module.exports = (additionalOptions = {}) => {
     const ajv = new Ajv({
+        strict: false,
         meta: false,
         useDefaults: true,
         validateSchema: false,
@@ -26,9 +26,5 @@
         ...additionalOptions
     });

-    ajv.addMetaSchema(metaSchema);
-    // eslint-disable-next-line no-underscore-dangle
-    ajv._opts.defaultMeta = metaSchema.id;
-
     return ajv;
 };



More information about the Pkg-javascript-devel mailing list