@energica-city/shared-amplify-utils
Version:
Shared utilities for AWS Amplify projects
39 lines • 2.16 kB
TypeScript
import type { WebSocketInputWithModels, WebSocketEvent } from './types';
import type { AmplifyModelType, QueryFactoryResult } from '../../queries/types';
/**
* Build standardized log context for WebSocket operations
*/
export declare function buildWebSocketContext<TTypes extends Record<string, AmplifyModelType> = Record<string, AmplifyModelType>, TSelected extends string = string>(input: WebSocketInputWithModels<TTypes, TSelected>, additionalContext?: Record<string, unknown>): Record<string, unknown>;
/**
* Extract basic event information for logging
*/
export declare function extractEventInfo(event: WebSocketEvent): Record<string, unknown>;
/**
* Safely parse JSON body with error handling
*/
export declare function parseJsonBody(body: string | undefined, context: Record<string, unknown>): unknown;
/**
* Setup structured logging for WebSocket middleware
*/
export declare function setupStructuredLogging<TTypes extends Record<string, AmplifyModelType> = Record<string, AmplifyModelType>>(input: WebSocketInputWithModels<TTypes>, forceStructuredLogging?: boolean, defaultContext?: Record<string, unknown>): void;
export declare function isMessageEvent(event: WebSocketEvent): boolean;
/**
* Extract error message safely
*/
export declare function getErrorMessage(error: unknown): string;
/**
* Get error stack trace if available
*/
export declare function getErrorStack(error: unknown): string | undefined;
/**
* Build error context with WebSocket information
*/
export declare function buildErrorContext<TTypes extends Record<string, AmplifyModelType> = Record<string, AmplifyModelType>>(input: WebSocketInputWithModels<TTypes>, error: {
code?: string;
statusCode?: number;
} | null, additionalContext?: Record<string, unknown>): Record<string, unknown>;
export declare function getConnectionId(event: WebSocketEvent): string;
export declare function getModelsFromInput<TTypes extends Record<string, AmplifyModelType>, TSelected extends keyof TTypes & string = keyof TTypes & string>(input: WebSocketInputWithModels<TTypes, TSelected>): {
[K in TSelected]: QueryFactoryResult<K, TTypes>;
};
//# sourceMappingURL=utils.d.ts.map