lint fixes

This commit is contained in:
Boki 2025-06-20 07:15:12 -04:00
parent 1f190b1068
commit c1d04723e1
17 changed files with 34 additions and 27 deletions

View file

@ -6,7 +6,7 @@
"type": "module",
"scripts": {
"dev": "bun --watch src/index.ts",
"build": "bun build src/index.ts --outdir dist --target node",
"build": "bun build src/index.ts --outdir dist --target node --external chromium-bidi --external electron --external playwright --external playwright-core",
"start": "bun dist/index.js",
"test": "bun test",
"clean": "rm -rf dist"

View file

@ -10,7 +10,7 @@ import { initializeServiceConfig } from '@stock-bot/config';
import { getLogger, setLoggerConfig, shutdownLoggers } from '@stock-bot/logger';
import { connectMongoDB } from '@stock-bot/mongodb-client';
import { connectPostgreSQL } from '@stock-bot/postgres-client';
import { QueueManager, handlerRegistry, type QueueManagerConfig } from '@stock-bot/queue';
import { QueueManager, type QueueManagerConfig } from '@stock-bot/queue';
import { Shutdown } from '@stock-bot/shutdown';
// Local imports
import { exchangeRoutes, healthRoutes, queueRoutes } from './routes';

View file

@ -54,7 +54,7 @@ export async function fetchSession(): Promise<Record<string, string> | undefined
resolve(event.headers);
} catch (e) {
resolve(undefined);
console.log('📊 Raw Summary Response:', (e as Error).message);
logger.debug('Raw Summary Response error', { error: (e as Error).message });
}
}
}

View file

@ -6,7 +6,7 @@
"type": "module",
"scripts": {
"dev": "bun --watch src/index.ts",
"build": "bun build src/index.ts --outdir dist --target node",
"build": "bun build src/index.ts --outdir dist --target node --external chromium-bidi --external electron --external playwright --external playwright-core",
"start": "bun dist/index.js",
"test": "bun test",
"clean": "rm -rf dist"

View file

@ -6,7 +6,7 @@
"type": "module",
"scripts": {
"dev": "bun --watch src/index.ts",
"build": "bun build src/index.ts --outdir dist --target node",
"build": "bun build src/index.ts --outdir dist --target node --external chromium-bidi --external electron --external playwright --external playwright-core",
"start": "bun dist/index.js",
"test": "bun test",
"clean": "rm -rf dist"

View file

@ -635,7 +635,7 @@ export function PortfolioTable() {
<DataTable
data={data}
columns={columns}
onRowClick={row => console.log('Clicked:', row.symbol)}
onRowClick={_row => {/* Handle row click */}}
className="border border-border rounded-lg"
/>
);

View file

@ -49,7 +49,7 @@ export function AddProviderMappingDialog({
try {
const providersData = await fetchProviders();
setProviders(providersData);
} catch (error) {
} catch {
// Error loading providers - could add toast notification here
} finally {
setProvidersLoading(false);
@ -62,7 +62,7 @@ export function AddProviderMappingDialog({
try {
const exchangesData = await fetchUnmappedProviderExchanges(provider);
setUnmappedExchanges(exchangesData);
} catch (error) {
} catch {
// Error loading unmapped exchanges - could add toast notification here
} finally {
setExchangesLoading(false);
@ -102,7 +102,7 @@ export function AddProviderMappingDialog({
};
await onCreateMapping(request);
} catch (error) {
} catch {
// Error creating provider mapping - could add toast notification here
} finally {
setLoading(false);

View file

@ -5,7 +5,7 @@
* without requiring an actual QuestDB instance.
*/
import { afterEach, beforeEach, describe, expect, it, mock, spyOn } from 'bun:test';
import { afterEach, beforeEach, describe, expect, it, mock } from 'bun:test';
import {
createQuestDBClient,
QuestDBClient,
@ -33,7 +33,7 @@ describe('QuestDB Client Integration', () => {
if (client && client.connected) {
try {
await client.disconnect();
} catch (error) {
} catch {
// Ignore cleanup errors in tests
}
}

View file

@ -5,7 +5,7 @@
* Provides utilities and mocks for testing database operations.
*/
import { beforeAll, beforeEach, mock, spyOn } from 'bun:test';
import { beforeAll, beforeEach, mock } from 'bun:test';
import { newDb } from 'pg-mem';
// Mock PostgreSQL database for unit tests
@ -124,7 +124,7 @@ beforeEach(() => {
pgMem.public.none('DROP TABLE IF EXISTS indicators CASCADE');
pgMem.public.none('DROP TABLE IF EXISTS performance CASCADE');
pgMem.public.none('DROP TABLE IF EXISTS risk_metrics CASCADE');
} catch (error) {
} catch {
// Tables might not exist, ignore errors
}
} // Reset fetch mock
@ -248,7 +248,7 @@ export const questdbTestHelpers = {
*/
validateQuestDBQuery: (query: string): boolean => {
// Basic validation for QuestDB-specific syntax
const questdbKeywords = ['SAMPLE BY', 'LATEST BY', 'ASOF JOIN', 'SPLICE JOIN', 'LT JOIN'];
const _questdbKeywords = ['SAMPLE BY', 'LATEST BY', 'ASOF JOIN', 'SPLICE JOIN', 'LT JOIN'];
// Check for valid SQL structure
const hasSelect = /SELECT\s+/i.test(query);

View file

@ -38,7 +38,7 @@ describe('Batch Processor', () => {
'generic': async (payload) => {
return { processed: true, data: payload };
},
'process-batch-items': async (batchData) => {
'process-batch-items': async (_batchData) => {
// This is called by the batch processor internally
return { batchProcessed: true };
},
@ -87,7 +87,7 @@ describe('Batch Processor', () => {
await queue.getBullQueue().clean(0, 1000, 'active');
await queue.getBullQueue().clean(0, 1000, 'waiting');
await queue.getBullQueue().clean(0, 1000, 'delayed');
} catch (error) {
} catch {
// Ignore cleanup errors
}
await queue.close();

View file

@ -1,5 +1,5 @@
import { describe, test, expect, beforeEach, afterEach } from 'bun:test';
import { Queue, Worker, Job } from 'bullmq';
import { Queue, Worker } from 'bullmq';
import { DeadLetterQueueHandler } from '../src/dlq-handler';
import { getRedisConnection } from '../src/utils';
@ -50,7 +50,7 @@ describe('DeadLetterQueueHandler', () => {
}
await dlqHandler.shutdown();
await mainQueue.close();
} catch (error) {
} catch {
// Ignore cleanup errors
}
await new Promise(resolve => setTimeout(resolve, 50));
@ -70,7 +70,7 @@ describe('DeadLetterQueueHandler', () => {
});
// Add job with limited attempts
const job = await mainQueue.add('failing-job', { test: true }, {
const _job = await mainQueue.add('failing-job', { test: true }, {
attempts: 3,
backoff: { type: 'fixed', delay: 50 },
});

View file

@ -121,7 +121,7 @@ describe('QueueManager', () => {
let processedCount = 0;
handlerRegistry.register('bulk-handler', {
process: async payload => {
process: async _payload => {
processedCount++;
return { processed: true };
},
@ -237,7 +237,7 @@ describe('QueueManager', () => {
handlerRegistry.registerWithSchedule({
name: 'scheduled-handler',
operations: {
'scheduled-task': async payload => {
'scheduled-task': async _payload => {
executionCount++;
return { executed: true, timestamp: Date.now() };
},

View file

@ -51,7 +51,7 @@ describe('QueueMetricsCollector', () => {
}
await queueEvents.close();
await queue.close();
} catch (error) {
} catch {
// Ignore cleanup errors
}
await new Promise(resolve => setTimeout(resolve, 50));

View file

@ -18,7 +18,7 @@ describe('QueueManager Simple Tests', () => {
if (queueManager) {
try {
await queueManager.shutdown();
} catch (error) {
} catch {
// Ignore errors during cleanup
}
}

View file

@ -36,7 +36,7 @@ describe('QueueRateLimiter', () => {
if (keys.length > 0) {
await redisClient.del(...keys);
}
} catch (error) {
} catch {
// Ignore cleanup errors
}
rateLimiter = new QueueRateLimiter(redisClient);
@ -46,7 +46,7 @@ describe('QueueRateLimiter', () => {
if (redisClient) {
try {
await redisClient.quit();
} catch (error) {
} catch {
// Ignore cleanup errors
}
}

View file

@ -337,10 +337,11 @@ export function calculateRollingMetrics(
case 'volatility':
rollingMetrics.push(calculateVolatility(window));
break;
case 'return':
case 'return': {
const avgReturn = window.reduce((sum, ret) => sum + ret, 0) / window.length;
rollingMetrics.push(avgReturn);
break;
}
}
}

View file

@ -1,4 +1,10 @@
export function createProxyUrl(proxy: any): string {
export function createProxyUrl(proxy: {
protocol: string;
host: string;
port: number;
username?: string;
password?: string;
}): string {
const { protocol, host, port, username, password } = proxy;
if (username && password) {
return `${protocol}://${encodeURIComponent(username)}:${encodeURIComponent(password)}@${host}:${port}`;