fix(typescript): resolve compilation errors for production build
Fixes 4 TypeScript compilation errors preventing successful build:
## Errors Fixed
### 1. lid-mapping.ts:799 - Property 'metricsModule' does not exist
**Error**: `this.metricsModule = null` in destroy() but property never declared
**Fix**: Removed orphaned line from previous metrics cleanup
**Impact**: Allows successful compilation
### 2-3. socket.ts:795,817 - Connection handler type mismatch
**Error**: `{ connection: any }` not assignable to `Partial<ConnectionState>`
**Cause**: Destructuring makes 'connection' required but it's optional in Partial
**Fix**: Changed handlers to `(update: Partial<ConnectionState>)`
**Impact**: Proper type safety for connection.update events
### 4. event-buffer.ts:430 - Wrong argument order
**Error**: Object passed as second arg but logger expects (obj, msg) order
**Fix**: Swapped arguments to `logger.debug({ queuedCount }, 'message')`
**Impact**: Matches logger signature from structured-logger.ts
## Root Cause Analysis
All errors stem from incremental changes where:
- Removed metrics support but missed cleanup reference
- Added connection handlers without checking Partial<T> semantics
- Used logger without verifying parameter order
## Testing
Build verification:
```bash
npm run build # Should now complete successfully
```
These are compilation errors only - no runtime behavior changes.
https://claude.ai/code/session_VMxqX
This commit is contained in:
@@ -12,7 +12,7 @@ import {
|
||||
NOISE_WA_HEADER,
|
||||
UPLOAD_TIMEOUT
|
||||
} from '../Defaults'
|
||||
import type { LIDMapping, SocketConfig } from '../Types'
|
||||
import type { ConnectionState, LIDMapping, SocketConfig } from '../Types'
|
||||
import { DisconnectReason } from '../Types'
|
||||
import {
|
||||
addTransactionCapability,
|
||||
@@ -777,11 +777,11 @@ export const makeSocket = (config: SocketConfig) => {
|
||||
|
||||
// PROTECTION 4: Initial delay (avoid duplicate at startup)
|
||||
// CB:success already calls uploadPreKeysToServerIfRequired(), so wait 6h before first auto-sync
|
||||
const connectionHandler = ({ connection }: { connection: any }) => {
|
||||
if (connection === 'open') {
|
||||
const connectionHandler = (update: Partial<ConnectionState>) => {
|
||||
if (update.connection === 'open') {
|
||||
logger.info('🔑 Starting PreKey auto-sync timer (first sync in 6h)')
|
||||
syncTimer = setTimeout(syncLoop, SYNC_INTERVAL)
|
||||
} else if (connection === 'close') {
|
||||
} else if (update.connection === 'close') {
|
||||
// PROTECTION 5: Cleanup on disconnect
|
||||
if (syncTimer) {
|
||||
clearTimeout(syncTimer)
|
||||
@@ -814,8 +814,8 @@ export const makeSocket = (config: SocketConfig) => {
|
||||
* Returns cleanup function to remove event listener
|
||||
*/
|
||||
const startSessionTTL = () => {
|
||||
const connectionHandler = ({ connection }: { connection: any }) => {
|
||||
if (connection === 'open') {
|
||||
const connectionHandler = (update: Partial<ConnectionState>) => {
|
||||
if (update.connection === 'open') {
|
||||
sessionStartTime = Date.now()
|
||||
|
||||
// PROTECTION 1: Long TTL (7 days)
|
||||
@@ -840,7 +840,7 @@ export const makeSocket = (config: SocketConfig) => {
|
||||
|
||||
const ttlHours = SESSION_TTL / 1000 / 60 / 60
|
||||
logger.info(`🕐 Session TTL started (${ttlHours}h = 7 days)`)
|
||||
} else if (connection === 'close') {
|
||||
} else if (update.connection === 'close') {
|
||||
// PROTECTION 4: Cleanup ALL timers on disconnect
|
||||
if (ttlTimer) {
|
||||
clearTimeout(ttlTimer)
|
||||
|
||||
Reference in New Issue
Block a user