@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
JavaScript
;
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