build: properly workaround Ajv TS type definitions bug
authorJérôme Benoit <jerome.benoit@sap.com>
Thu, 28 Dec 2023 14:32:19 +0000 (15:32 +0100)
committerJérôme Benoit <jerome.benoit@sap.com>
Thu, 28 Dec 2023 14:32:19 +0000 (15:32 +0100)
https://github.com/ajv-validator/ajv/issues/2132

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
src/charging-station/ocpp/OCPPIncomingRequestService.ts
src/charging-station/ocpp/OCPPRequestService.ts
src/charging-station/ocpp/OCPPResponseService.ts

index 9666f3d750b108b42ee132366e8f0bc336bab6c1..9d555b5662e751537f4e013242ff5ea374855bfa 100644 (file)
@@ -1,5 +1,5 @@
-import Ajv, { type JSONSchemaType, type ValidateFunction } from 'ajv';
-import ajvFormats from 'ajv-formats';
+import _Ajv, { type JSONSchemaType, type ValidateFunction } from 'ajv';
+import _ajvFormats from 'ajv-formats';
 
 import { OCPPConstants } from './OCPPConstants.js';
 import { OCPPServiceUtils } from './OCPPServiceUtils.js';
@@ -13,6 +13,9 @@ import type {
   OCPPVersion,
 } from '../../types/index.js';
 import { logger, setDefaultErrorParams } from '../../utils/index.js';
+type Ajv = _Ajv.default;
+const Ajv = _Ajv.default;
+const ajvFormats = _ajvFormats.default;
 
 const moduleName = 'OCPPIncomingRequestService';
 
@@ -25,7 +28,6 @@ export abstract class OCPPIncomingRequestService {
 
   protected constructor(version: OCPPVersion) {
     this.version = version;
-    // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
     this.ajv = new Ajv({
       keywords: ['javaType'],
       multipleOfPrecision: 2,
@@ -118,7 +120,6 @@ export abstract class OCPPIncomingRequestService {
     schema: JSONSchemaType<T>,
   ) {
     if (this.jsonValidateFunctions.has(commandName) === false) {
-      // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
       this.jsonValidateFunctions.set(commandName, this.ajv.compile<T>(schema).bind(this));
     }
     return this.jsonValidateFunctions.get(commandName)!;
index c772fec1e09f80ac3f32acbc2412c80bf96c1055..8b5f0cc3aaf1e19aadafcf965d1dd49af4acb234 100644 (file)
@@ -1,5 +1,5 @@
-import Ajv, { type JSONSchemaType, type ValidateFunction } from 'ajv';
-import ajvFormats from 'ajv-formats';
+import _Ajv, { type JSONSchemaType, type ValidateFunction } from 'ajv';
+import _ajvFormats from 'ajv-formats';
 
 import { OCPPConstants } from './OCPPConstants.js';
 import type { OCPPResponseService } from './OCPPResponseService.js';
@@ -30,6 +30,9 @@ import {
   isNullOrUndefined,
   logger,
 } from '../../utils/index.js';
+type Ajv = _Ajv.default;
+const Ajv = _Ajv.default;
+const ajvFormats = _ajvFormats.default;
 
 const moduleName = 'OCPPRequestService';
 
@@ -49,7 +52,6 @@ export abstract class OCPPRequestService {
 
   protected constructor(version: OCPPVersion, ocppResponseService: OCPPResponseService) {
     this.version = version;
-    // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
     this.ajv = new Ajv({
       keywords: ['javaType'],
       multipleOfPrecision: 2,
@@ -234,7 +236,6 @@ export abstract class OCPPRequestService {
     if (this.jsonValidateFunctions.has(commandName) === false) {
       this.jsonValidateFunctions.set(
         commandName,
-        // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
         this.ajv.compile<T>(this.jsonSchemas.get(commandName)!).bind(this),
       );
     }
@@ -289,11 +290,8 @@ export abstract class OCPPRequestService {
     ) {
       this.ocppResponseService.jsonIncomingRequestResponseValidateFunctions.set(
         commandName,
-        // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-call
         this.ajv
-          // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
           .compile<T>(this.ocppResponseService.jsonIncomingRequestResponseSchemas.get(commandName)!)
-          // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
           .bind(this),
       );
     }
index e386e432a88ac334f7434ec6ea33f64c6a28c011..a80bc2b730564d24110fbbc5026688ddf0e46df1 100644 (file)
@@ -1,5 +1,5 @@
-import Ajv, { type JSONSchemaType, type ValidateFunction } from 'ajv';
-import ajvFormats from 'ajv-formats';
+import _Ajv, { type JSONSchemaType, type ValidateFunction } from 'ajv';
+import _ajvFormats from 'ajv-formats';
 
 import { OCPPServiceUtils } from './OCPPServiceUtils.js';
 import type { ChargingStation } from '../../charging-station/index.js';
@@ -11,6 +11,9 @@ import type {
   RequestCommand,
 } from '../../types/index.js';
 import { logger } from '../../utils/index.js';
+type Ajv = _Ajv.default;
+const Ajv = _Ajv.default;
+const ajvFormats = _ajvFormats.default;
 
 const moduleName = 'OCPPResponseService';
 
@@ -33,7 +36,6 @@ export abstract class OCPPResponseService {
 
   protected constructor(version: OCPPVersion) {
     this.version = version;
-    // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
     this.ajv = new Ajv({
       keywords: ['javaType'],
       multipleOfPrecision: 2,
@@ -102,7 +104,6 @@ export abstract class OCPPResponseService {
     schema: JSONSchemaType<T>,
   ) {
     if (this.jsonRequestValidateFunctions.has(commandName) === false) {
-      // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
       this.jsonRequestValidateFunctions.set(commandName, this.ajv.compile<T>(schema).bind(this));
     }
     return this.jsonRequestValidateFunctions.get(commandName)!;