fix(simulator): make the modules export/import a bit less sensitive to
authorJérôme Benoit <jerome.benoit@sap.com>
Sun, 12 Feb 2023 16:32:28 +0000 (17:32 +0100)
committerJérôme Benoit <jerome.benoit@sap.com>
Sun, 12 Feb 2023 16:32:28 +0000 (17:32 +0100)
nasty circular dependencies issue

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
21 files changed:
src/charging-station/AutomaticTransactionGenerator.ts
src/charging-station/Bootstrap.ts
src/charging-station/ChargingStation.ts
src/charging-station/SharedLRUCache.ts
src/charging-station/UIServiceWorkerBroadcastChannel.ts
src/charging-station/index.ts [new file with mode: 0644]
src/charging-station/internal.ts [new file with mode: 0644]
src/charging-station/ocpp/OCPPRequestService.ts
src/charging-station/ocpp/index.ts
src/charging-station/ui-server/AbstractUIServer.ts
src/charging-station/ui-server/UIHttpServer.ts
src/charging-station/ui-server/UIServerFactory.ts
src/charging-station/ui-server/UIWebSocketServer.ts
src/charging-station/ui-server/ui-services/AbstractUIService.ts
src/charging-station/ui-server/ui-services/UIService001.ts
src/charging-station/ui-server/ui-services/UIServiceFactory.ts
src/exception/index.ts
src/internal.ts [deleted file]
src/performance/index.ts [new file with mode: 0644]
src/start.ts
src/worker/index.ts

index 3c365932b3d5441f519c3a96391a83b0afa17a74..e6b3dbf457fc0cde4bec0abb052d6453b2eb1fa8 100644 (file)
@@ -5,7 +5,7 @@ import { AsyncResource } from 'async_hooks';
 import type { ChargingStation } from './ChargingStation';
 import { ChargingStationUtils } from './ChargingStationUtils';
 import { BaseError } from '../exception';
-import { PerformanceStatistics } from '../performance/PerformanceStatistics';
+import { PerformanceStatistics } from '../performance';
 import {
   AuthorizationStatus,
   type AuthorizeRequest,
index 1acd5bcba83dc8a956c2c0824f41d8fb0dce7e61..c35464d1e2d4e3293c0f26dcf0ca134126cf6b40 100644 (file)
@@ -7,12 +7,10 @@ import { type Worker, isMainThread } from 'worker_threads';
 import chalk from 'chalk';
 
 import { ChargingStationUtils } from './ChargingStationUtils';
-import type { AbstractUIServer } from './ui-server/AbstractUIServer';
-import { UIServerFactory } from './ui-server/UIServerFactory';
+import { type AbstractUIServer, UIServerFactory } from './internal';
 import { version } from '../../package.json';
 import { BaseError } from '../exception';
-import type { Storage } from '../performance/storage/Storage';
-import { StorageFactory } from '../performance/storage/StorageFactory';
+import { type Storage, StorageFactory } from '../performance';
 import {
   type ChargingStationData,
   type ChargingStationWorkerData,
index c74daceb008b3195adda78261a6d0e3a66ad1fa9..29119f92cf35d85f449fdf7d360f20b66af63e50 100644 (file)
@@ -29,7 +29,7 @@ import {
 } from './ocpp';
 import { SharedLRUCache } from './SharedLRUCache';
 import { BaseError, OCPPError } from '../exception';
-import { PerformanceStatistics } from '../performance/PerformanceStatistics';
+import { PerformanceStatistics } from '../performance';
 import {
   type AutomaticTransactionGeneratorConfiguration,
   AvailabilityType,
index 64ee0146faab86a6df151c5a96d0e5e916d44b66..d2d638690fdb755ead4c5f5b68842cf22ba53b4c 100644 (file)
@@ -1,6 +1,6 @@
 import LRUCache from 'mnemonist/lru-map-with-delete';
 
-import { Bootstrap } from '../internal';
+import { Bootstrap } from './internal';
 import type { ChargingStationConfiguration, ChargingStationTemplate } from '../types';
 import { Utils } from '../utils/Utils';
 
index 77ae46f2bbb6c560cde45ba9234a917b65803515..8528c0e247002a3f830d5f777e5f488f93cda99a 100644 (file)
@@ -1,4 +1,4 @@
-import type { AbstractUIService } from './ui-server/ui-services/AbstractUIService';
+import type { AbstractUIService } from './internal';
 import { WorkerBroadcastChannel } from './WorkerBroadcastChannel';
 import {
   type BroadcastChannelResponse,
diff --git a/src/charging-station/index.ts b/src/charging-station/index.ts
new file mode 100644 (file)
index 0000000..c365e0b
--- /dev/null
@@ -0,0 +1 @@
+export { Bootstrap } from './internal';
diff --git a/src/charging-station/internal.ts b/src/charging-station/internal.ts
new file mode 100644 (file)
index 0000000..314c968
--- /dev/null
@@ -0,0 +1,8 @@
+export * from './Bootstrap';
+export * from './ui-server/AbstractUIServer';
+export * from './ui-server/UIHttpServer';
+export * from './ui-server/UIWebSocketServer';
+export * from './ui-server/UIServerFactory';
+export * from './ui-server/ui-services/AbstractUIService';
+export * from './ui-server/ui-services/UIService001';
+export * from './ui-server/ui-services/UIServiceFactory';
index fc7291139c8f119977ae07cfc5e9517ddb21152e..4ef39b52ebec7e7e843a13b9b388bea1de8ec567 100644 (file)
@@ -4,7 +4,7 @@ import ajvFormats from 'ajv-formats';
 import type { OCPPResponseService } from './OCPPResponseService';
 import { OCPPServiceUtils } from './OCPPServiceUtils';
 import { OCPPError } from '../../exception';
-import { PerformanceStatistics } from '../../performance/PerformanceStatistics';
+import { PerformanceStatistics } from '../../performance';
 import {
   type EmptyObject,
   type ErrorCallback,
index a0634d1922060508752c3412b9dc5d1ec0153a2a..bf43676f2d69b2dd8f6c42a8292f0f4cfda21c21 100644 (file)
@@ -1,11 +1,11 @@
-export * from './OCPPIncomingRequestService';
-export * from './OCPPRequestService';
-export * from './OCPPServiceUtils';
-export * from './1.6/OCPP16IncomingRequestService';
-export * from './1.6/OCPP16RequestService';
-export * from './1.6/OCPP16ResponseService';
+export { OCPPIncomingRequestService } from './OCPPIncomingRequestService';
+export { OCPPRequestService } from './OCPPRequestService';
+export { OCPPServiceUtils } from './OCPPServiceUtils';
+export { OCPP16IncomingRequestService } from './1.6/OCPP16IncomingRequestService';
+export { OCPP16RequestService } from './1.6/OCPP16RequestService';
+export { OCPP16ResponseService } from './1.6/OCPP16ResponseService';
 // FIXME: shall not be exported
-export * from './1.6/OCPP16ServiceUtils';
-export * from './2.0/OCPP20IncomingRequestService';
-export * from './2.0/OCPP20RequestService';
-export * from './2.0/OCPP20ResponseService';
+export { OCPP16ServiceUtils } from './1.6/OCPP16ServiceUtils';
+export { OCPP20IncomingRequestService } from './2.0/OCPP20IncomingRequestService';
+export { OCPP20RequestService } from './2.0/OCPP20RequestService';
+export { OCPP20ResponseService } from './2.0/OCPP20ResponseService';
index 053b1baecd450fba7d45691ffeabbe4a261bc510..840d558ce52e958a448488f6018d9896ba16da1c 100644 (file)
@@ -2,8 +2,6 @@ import { type IncomingMessage, Server, type ServerResponse } from 'http';
 
 import type { WebSocket } from 'ws';
 
-import type { AbstractUIService } from './ui-services/AbstractUIService';
-import { UIServiceFactory } from './ui-services/UIServiceFactory';
 import {
   AuthenticationType,
   type ChargingStationData,
@@ -15,6 +13,7 @@ import {
   type ResponsePayload,
   type UIServerConfiguration,
 } from '../../types';
+import { type AbstractUIService, UIServiceFactory } from '../internal';
 
 export abstract class AbstractUIServer {
   public readonly chargingStations: Map<string, ChargingStationData>;
index 235273471079512c0b5e14378b291fdddd277215..08ea7ff080137f5cce8e664a90cb00be272abfb1 100644 (file)
@@ -2,7 +2,6 @@ import type { IncomingMessage, RequestListener, ServerResponse } from 'http';
 
 import { StatusCodes } from 'http-status-codes';
 
-import { AbstractUIServer } from './AbstractUIServer';
 import { UIServerUtils } from './UIServerUtils';
 import { BaseError } from '../../exception';
 import {
@@ -17,6 +16,7 @@ import {
 } from '../../types';
 import { logger } from '../../utils/Logger';
 import { Utils } from '../../utils/Utils';
+import { AbstractUIServer } from '../internal';
 
 const moduleName = 'UIHttpServer';
 
index 64d143d4a3d8bf3d2604568c84216e722319e062..612054f692caee075917e873f293f14c68f2a8aa 100644 (file)
@@ -1,11 +1,9 @@
 import chalk from 'chalk';
 
-import type { AbstractUIServer } from './AbstractUIServer';
-import { UIHttpServer } from './UIHttpServer';
 import { UIServerUtils } from './UIServerUtils';
-import { UIWebSocketServer } from './UIWebSocketServer';
 import { ApplicationProtocol, type UIServerConfiguration } from '../../types';
 import { Configuration } from '../../utils/Configuration';
+import { type AbstractUIServer, UIHttpServer, UIWebSocketServer } from '../internal';
 
 export class UIServerFactory {
   private constructor() {
index 3e2dd81392ac8888f58c60e8497517e45a2fbc21..d5e6ff808afbee13a4f3eee9c35a433203c8247a 100644 (file)
@@ -4,7 +4,6 @@ import type internal from 'stream';
 import { StatusCodes } from 'http-status-codes';
 import WebSocket, { type RawData, WebSocketServer } from 'ws';
 
-import { AbstractUIServer } from './AbstractUIServer';
 import { UIServerUtils } from './UIServerUtils';
 import {
   type ProtocolRequest,
@@ -14,6 +13,7 @@ import {
 } from '../../types';
 import { logger } from '../../utils/Logger';
 import { Utils } from '../../utils/Utils';
+import { AbstractUIServer } from '../internal';
 
 const moduleName = 'UIWebSocketServer';
 
index 49d10abfa21e52b1075624bbf3f462881e6b8063..9662d6353c01d72cf0267bf72e501c789ea91576 100644 (file)
@@ -1,5 +1,4 @@
 import { BaseError, type OCPPError } from '../../../exception';
-import { Bootstrap } from '../../../internal';
 import {
   BroadcastChannelProcedureName,
   type BroadcastChannelRequestPayload,
@@ -13,8 +12,8 @@ import {
 } from '../../../types';
 import { logger } from '../../../utils/Logger';
 import { Utils } from '../../../utils/Utils';
+import { type AbstractUIServer, Bootstrap } from '../../internal';
 import { UIServiceWorkerBroadcastChannel } from '../../UIServiceWorkerBroadcastChannel';
-import type { AbstractUIServer } from '../AbstractUIServer';
 
 const moduleName = 'AbstractUIService';
 
index 598ebb269413c310b54e5a6072b939758e9e0e13..4a1d1e9a93a2de936379a9355feaaffe62bfa4b0 100644 (file)
@@ -1,6 +1,5 @@
-import { AbstractUIService } from './AbstractUIService';
 import { type ProcedureName, type ProtocolRequestHandler, ProtocolVersion } from '../../../types';
-import type { AbstractUIServer } from '../AbstractUIServer';
+import { type AbstractUIServer, AbstractUIService } from '../../internal';
 
 export class UIService001 extends AbstractUIService {
   constructor(uiServer: AbstractUIServer) {
index 47a1893dd2d0d040773cda0866897f59472e24e1..2d2fa6c8f4e9fb19ca26c331160ecb2eb1fb3704 100644 (file)
@@ -1,7 +1,5 @@
-import type { AbstractUIService } from './AbstractUIService';
-import { UIService001 } from './UIService001';
 import { ProtocolVersion } from '../../../types';
-import type { AbstractUIServer } from '../AbstractUIServer';
+import { type AbstractUIServer, type AbstractUIService, UIService001 } from '../../internal';
 
 export class UIServiceFactory {
   private constructor() {
index 49abdfcb9fb73e978c0c1d54529e4151fde9ae97..5e5b60caf1743125aea0fdaf94781927e1ef9536 100644 (file)
@@ -1,2 +1,2 @@
-export * from './BaseError';
-export * from './OCPPError';
+export { BaseError } from './BaseError';
+export { OCPPError } from './OCPPError';
diff --git a/src/internal.ts b/src/internal.ts
deleted file mode 100644 (file)
index 7cf06b9..0000000
+++ /dev/null
@@ -1 +0,0 @@
-export * from './charging-station/Bootstrap';
diff --git a/src/performance/index.ts b/src/performance/index.ts
new file mode 100644 (file)
index 0000000..1b61c46
--- /dev/null
@@ -0,0 +1,3 @@
+export { PerformanceStatistics } from './PerformanceStatistics';
+export { Storage } from './storage/Storage';
+export { StorageFactory } from './storage/StorageFactory';
index 0185903dd0a3b4993fb0559c15134a2271776f35..12acc3eb1477a1d0901deef7d90edda54795ec40 100644 (file)
@@ -2,7 +2,7 @@
 
 import chalk from 'chalk';
 
-import { Bootstrap } from './internal';
+import { Bootstrap } from './charging-station';
 
 Bootstrap.getInstance()
   .start()
index fdc278d5d29175ced9a11e388559599c2ebe81d5..9fa370555ca23416422c3a1e4112595f37a6fbad 100644 (file)
@@ -1,6 +1,6 @@
-export * from './WorkerAbstract';
-export * from './WorkerConstants';
-export * from './WorkerFactory';
+export { WorkerAbstract } from './WorkerAbstract';
+export { WorkerConstants } from './WorkerConstants';
+export { WorkerFactory } from './WorkerFactory';
 export {
   WorkerProcessType,
   WorkerData,