Skip to content

Commit cb80dc6

Browse files
refactor: avoid non-null assertions in sendAndSetConnectorStatus
Replace non-null assertions (!) with null checks and early return to comply with updated coding guidelines. Add error logging when connector status is null. Changes: - Check connectorStatus for null before accessing properties - Store connectorStatus reference to avoid repeated calls - Add error log and early return for non-existing connector - Remove all eslint-disable comments for no-non-null-assertion Co-authored-by: jerome-benoit <6537332+jerome-benoit@users.noreply.github.com>
1 parent 00625e5 commit cb80dc6

1 file changed

Lines changed: 12 additions & 8 deletions

File tree

src/charging-station/ocpp/OCPPServiceUtils.ts

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -176,14 +176,19 @@ export const sendAndSetConnectorStatus = async (
176176
options?: { send: boolean }
177177
): Promise<void> => {
178178
options = { send: true, ...options }
179-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
180-
const previousStatus = chargingStation.getConnectorStatus(connectorId)!.status
179+
const connectorStatus = chargingStation.getConnectorStatus(connectorId)
180+
if (connectorStatus == null) {
181+
logger.error(
182+
`${chargingStation.logPrefix()} Trying to set status on non-existing connector id ${connectorId.toString()}`
183+
)
184+
return
185+
}
186+
const previousStatus = connectorStatus.status
181187
// Set status before sending to ensure consistent state when updated event is emitted
182-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
183-
chargingStation.getConnectorStatus(connectorId)!.status = status
188+
connectorStatus.status = status
184189
chargingStation.emit(ChargingStationEvents.connectorStatusChanged, {
185190
connectorId,
186-
...chargingStation.getConnectorStatus(connectorId),
191+
...connectorStatus,
187192
})
188193
if (options.send) {
189194
try {
@@ -198,11 +203,10 @@ export const sendAndSetConnectorStatus = async (
198203
)
199204
} catch (error) {
200205
// Revert status on error
201-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
202-
chargingStation.getConnectorStatus(connectorId)!.status = previousStatus
206+
connectorStatus.status = previousStatus
203207
chargingStation.emit(ChargingStationEvents.connectorStatusChanged, {
204208
connectorId,
205-
...chargingStation.getConnectorStatus(connectorId),
209+
...connectorStatus,
206210
})
207211
throw error
208212
}

0 commit comments

Comments
 (0)