fix(opax): make operations console ESM-safe
This commit is contained in:
parent
b68fc41f61
commit
856b33832f
|
|
@ -1,5 +1,5 @@
|
|||
const { Router } = require('express');
|
||||
const { callAgent } = require('../agentClient');
|
||||
import { Router } from 'express';
|
||||
import { callAgent } from '../agentClient.js';
|
||||
|
||||
const router = Router();
|
||||
|
||||
|
|
@ -67,4 +67,4 @@ router.get('/approvals', (req, res) => {
|
|||
});
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
export default router;
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import { createServer } from 'node:http';
|
|||
import { Server } from 'socket.io';
|
||||
import path from 'path';
|
||||
import { fileURLToPath } from 'url';
|
||||
import consoleApiRouter from './routes/consoleApi.js';
|
||||
|
||||
const app = express();
|
||||
const http = createServer(app);
|
||||
|
|
@ -72,7 +73,6 @@ const ensureAuthenticated = (req, res, next) => {
|
|||
res.status(401).end();
|
||||
};
|
||||
|
||||
const consoleApiRouter = require('./routes/consoleApi.js');
|
||||
app.use('/api/console', ensureAuthenticated, consoleApiRouter);
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -33,22 +33,41 @@ const unavailableItem: ConsoleStatusItem = {
|
|||
};
|
||||
|
||||
// --- Normalizer Function ---
|
||||
function normalizeStatusResponse(raw: any): ConsoleStatusResponse {
|
||||
let health = unavailableItem;
|
||||
type UnknownRecord = Record<string, unknown>;
|
||||
|
||||
if (raw?.health?.status === 'success' &&
|
||||
raw.health.summary?.status === 'ok' &&
|
||||
typeof raw.health.summary.service === 'string' &&
|
||||
typeof raw.health.summary.version === 'string') {
|
||||
health = {
|
||||
status: 'success',
|
||||
summary: {
|
||||
status: 'ok',
|
||||
service: raw.health.summary.service,
|
||||
version: raw.health.summary.version,
|
||||
},
|
||||
message: 'Available',
|
||||
};
|
||||
function isRecord(value: unknown): value is UnknownRecord {
|
||||
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
||||
}
|
||||
|
||||
function isHealthSummary(value: unknown): value is SafeHealthSummary {
|
||||
return (
|
||||
isRecord(value) &&
|
||||
value.status === 'ok' &&
|
||||
typeof value.service === 'string' &&
|
||||
typeof value.version === 'string'
|
||||
);
|
||||
}
|
||||
|
||||
function normalizeStatusResponse(raw: unknown): ConsoleStatusResponse {
|
||||
let health: ConsoleStatusItem = unavailableItem;
|
||||
|
||||
if (isRecord(raw) && isRecord(raw.health)) {
|
||||
const healthItem = raw.health;
|
||||
|
||||
if (
|
||||
healthItem.status === 'success' &&
|
||||
isHealthSummary(healthItem.summary)
|
||||
) {
|
||||
health = {
|
||||
status: 'success',
|
||||
summary: {
|
||||
status: 'ok',
|
||||
service: healthItem.summary.service,
|
||||
version: healthItem.summary.version,
|
||||
},
|
||||
message: 'Available',
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
|
|
@ -81,7 +100,7 @@ const OperationsConsole = () => {
|
|||
const rawData = await res.json();
|
||||
setStatusData(normalizeStatusResponse(rawData));
|
||||
setLastRefreshed(new Date().toLocaleTimeString());
|
||||
} catch (e: any) {
|
||||
} catch {
|
||||
setError('Console data is unavailable. Please try again.');
|
||||
} finally {
|
||||
setLoading(false);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user