UNPKG

@allan1361/iota-big3-sdk-middleware

Version:

🏆 A+ Grade Certified Enterprise Middleware Framework - Phase 3 Certified (90/100) with advanced resilience patterns, comprehensive type safety, and production-ready observability

98 lines 3.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isValidJsonValue = exports.isSDKError = exports.isAuthUser = exports.isApiError = void 0; exports.isExpressRequest = isExpressRequest; exports.isExpressResponse = isExpressResponse; exports.hasStatusCode = hasStatusCode; exports.hasErrorCode = hasErrorCode; exports.isMiddlewareConfig = isMiddlewareConfig; exports.isSessionData = isSessionData; exports.safeJsonParse = safeJsonParse; exports.extractUser = extractUser; exports.createErrorResponse = createErrorResponse; const sdk_types_1 = require("@iota-big3/sdk-types"); Object.defineProperty(exports, "isApiError", { enumerable: true, get: function () { return sdk_types_1.isApiError; } }); Object.defineProperty(exports, "isAuthUser", { enumerable: true, get: function () { return sdk_types_1.isAuthUser; } }); Object.defineProperty(exports, "isSDKError", { enumerable: true, get: function () { return sdk_types_1.isSDKError; } }); Object.defineProperty(exports, "isValidJsonValue", { enumerable: true, get: function () { return sdk_types_1.isValidJsonValue; } }); function isExpressRequest(value) { return (value !== null && typeof value === 'object' && 'method' in value && 'url' in value && 'headers' in value); } function isExpressResponse(value) { return (value !== null && typeof value === 'object' && 'status' in value && 'json' in value && 'send' in value); } function hasStatusCode(error) { return (error instanceof Error && 'statusCode' in error && typeof error.statusCode === 'number'); } function hasErrorCode(error) { return (error instanceof Error && 'code' in error && typeof error.code === 'string'); } function isMiddlewareConfig(value) { return (value !== null && typeof value === 'object' && !Array.isArray(value)); } function isSessionData(value) { return (value !== null && typeof value === 'object' && 'userId' in value && typeof value.userId === 'string'); } function safeJsonParse(json, validator) { try { const parsed = JSON.parse(json); if (validator && !validator(parsed)) { return null; } return parsed; } catch { return null; } } function extractUser(req) { if (!isExpressRequest(req)) return null; const user = req.user; if ((0, sdk_types_1.isAuthUser)(user)) { return user; } return null; } function createErrorResponse(error) { if ((0, sdk_types_1.isApiError)(error)) { return error; } if ((0, sdk_types_1.isSDKError)(error)) { return { code: error.code, message: error.message, details: error.details }; } if (error instanceof Error) { return { code: 'UNKNOWN_ERROR', message: error.message, details: { stack: error.stack } }; } return { code: 'UNKNOWN_ERROR', message: String(error), details: error }; } //# sourceMappingURL=type-guards.js.map