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

93 lines 3.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isJsonValue = isJsonValue; exports.isJsonObject = isJsonObject; exports.isAuthUser = isAuthUser; exports.isAuthResult = isAuthResult; exports.isValidationResult = isValidationResult; exports.isValidHeaderValue = isValidHeaderValue; exports.isMiddlewareConfig = isMiddlewareConfig; exports.extractHeaderString = extractHeaderString; exports.extractQueryString = extractQueryString; exports.validateJsonBody = validateJsonBody; function isJsonValue(value) { if (value === null || typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') { return true; } if (Array.isArray(value)) { return value.every(isJsonValue); } if (typeof value === 'object' && value !== null) { return Object.values(value).every(isJsonValue); } return false; } function isJsonObject(value) { return typeof value === 'object' && value !== null && !Array.isArray(value) && isJsonValue(value); } function isAuthUser(value) { if (!isJsonObject(value)) return false; const obj = value; return (typeof obj.id === 'string' && (obj.email === undefined || typeof obj.email === 'string') && (obj.name === undefined || typeof obj.name === 'string') && (obj.roles === undefined || (Array.isArray(obj.roles) && obj.roles.every(r => typeof r === 'string'))) && (obj.permissions === undefined || (Array.isArray(obj.permissions) && obj.permissions.every(p => typeof p === 'string'))) && (obj.organizationId === undefined || typeof obj.organizationId === 'string') && (obj.metadata === undefined || isJsonObject(obj.metadata))); } function isAuthResult(value) { if (!isJsonObject(value)) return false; const obj = value; return (typeof obj.valid === 'boolean' && (obj.user === undefined || isAuthUser(obj.user)) && (obj.error === undefined || typeof obj.error === 'string')); } function isValidationResult(value) { if (!isJsonObject(value)) return false; const obj = value; return (typeof obj.valid === 'boolean' && (obj.errors === undefined || (Array.isArray(obj.errors) && obj.errors.every(err => isJsonObject(err) && typeof err.field === 'string' && typeof err.message === 'string')))); } function isValidHeaderValue(value) { return typeof value === 'string' || (Array.isArray(value) && value.every(v => typeof v === 'string')); } function isMiddlewareConfig(value) { if (!isJsonObject(value)) return false; const obj = value; return (typeof obj.name === 'string' && (obj.enabled === undefined || typeof obj.enabled === 'boolean') && (obj.priority === undefined || typeof obj.priority === 'number') && (obj.options === undefined || isJsonObject(obj.options)) && (obj.metadata === undefined || isJsonObject(obj.metadata))); } function extractHeaderString(value) { if (typeof value === 'string') return value; if (Array.isArray(value) && value.length > 0 && typeof value[0] === 'string') { return value[0]; } return undefined; } function extractQueryString(value) { if (typeof value === 'string') return value; if (Array.isArray(value) && value.length > 0 && typeof value[0] === 'string') { return value[0]; } return undefined; } function validateJsonBody(body) { if (!isJsonValue(body)) { return { success: false, error: 'Invalid JSON body format' }; } return { success: true, data: body }; } //# sourceMappingURL=types.js.map