Repository URL to install this package:
|
Version:
0.7.0 ▾
|
// (c) Copyright 2023 Supertenant Ltd. - all rights reserved.
// See LICENSE file in project root for license terms.
"use strict";const dedupReportError=require("../logger")["dedupReportError"],DefaultWaitPollInterval=10,MinWaitPollInterval=1,DefaultHttpRejectActionStatusCode=429,DefaultMysqlRejectActionResult={sqlState:"70100",sqlMessage:"Query execution was interrupted [SuperTenant throttling]",errno:1317},DefaultMongodbRejectActionResult={error_message:"Query execution was interrupted [SuperTenant throttling]",code:11601};function getWaitPollInterval(actionRef){if(null!==actionRef.Definition&&"object"==typeof actionRef.Definition){var actionRef=actionRef.Definition.PollInterval;if("number"==typeof actionRef&&0<actionRef)return(actionRef=actionRef/1e6)<MinWaitPollInterval?MinWaitPollInterval:actionRef}return DefaultWaitPollInterval}function getHttpRejectActionStatusCode(actionRef){if(null!==actionRef.Definition&&"object"==typeof actionRef.Definition){actionRef=actionRef.Definition.HttpReject;if(null!==actionRef&&"object"==typeof actionRef&&null!==actionRef.http_rc)try{return"number"==typeof actionRef.http_rc?actionRef.http_rc:Number(actionRef.http_rc)}catch(e){dedupReportError("actions:HTTP_REJECT_PARSE_CODE","failed to parse http status code",e)}}return DefaultHttpRejectActionStatusCode}function getMysqlRejectActionResult(actionRef){if(null!==actionRef.Definition&&"object"==typeof actionRef.Definition){actionRef=actionRef.Definition.SqlReject;if(null!==actionRef&&"object"==typeof actionRef){let errno=1317;if(null!==actionRef.sql_rc&&void 0!==actionRef.sql_rc)try{errno="number"==typeof actionRef.sql_rc?actionRef.sql_rc:Number(actionRef.sql_rc)}catch(e){return dedupReportError("actions:SQL_REJECT_PARSE_ERRNO","failed to parse sql errno",e),DefaultMysqlRejectActionResult}return{errno:errno,sqlMessage:actionRef.error_message||"Query execution was interrupted [SuperTenant throttling]",sqlState:actionRef.sql_state||"70100"}}}return DefaultMysqlRejectActionResult}function getMongodbRejectActionResult(actionRef){if(null!==actionRef.Definition&&"object"==typeof actionRef.Definition){actionRef=actionRef.Definition.MongodbReject;if(null!==actionRef&&"object"==typeof actionRef){let code=11601;if(null!==actionRef.code&&void 0!==actionRef.code)try{code="number"==typeof actionRef.code?actionRef.code:Number(actionRef.code)}catch(e){return dedupReportError("actions:MONGODB_REJECT_PARSE_ERRNO","failed to parse mongodb error code",e),DefaultMongodbRejectActionResult}return{code:code,error_message:actionRef.error_message||"SuperTenant throttled operation"}}}return DefaultMongodbRejectActionResult}module.exports={getWaitPollInterval:getWaitPollInterval,getHttpRejectActionStatusCode:getHttpRejectActionStatusCode,getMysqlRejectActionResult:getMysqlRejectActionResult,getMongodbRejectActionResult:getMongodbRejectActionResult};