Skip to content

Commit

Permalink
Resolve some of eslint errors
Browse files Browse the repository at this point in the history
  • Loading branch information
direnakkoc committed Mar 10, 2023
1 parent ba19678 commit 3f026c8
Show file tree
Hide file tree
Showing 31 changed files with 281 additions and 207 deletions.
6 changes: 1 addition & 5 deletions .eslintrc.json
Expand Up @@ -15,11 +15,7 @@
"@typescript-eslint/consistent-type-assertions": 0,
"@typescript-eslint/restrict-plus-operands": 0,
"@typescript-eslint/explicit-function-return-type": 0, // when there is function they return object?
"@typescript-eslint/no-floating-promises": 0,
"@typescript-eslint/strict-boolean-expressions": 0,
"@typescript-eslint/no-base-to-string": 0,
"@typescript-eslint/no-confusing-void-expression": 0,
"@typescript-eslint/no-explicit-any": "off"
"@typescript-eslint/no-floating-promises": 0
},
"ignorePatterns": ["core/coverage",
"cf-macro/coverage",
Expand Down
14 changes: 7 additions & 7 deletions cf-macro/index.ts
Expand Up @@ -27,7 +27,7 @@ export function handler (event: Event): Event {
logger.info({ event })
const outputFragment = event.fragment
try {
const slicWatchConfig: SlicWatchConfig = outputFragment.Metadata?.slicWatch || {}
const slicWatchConfig: SlicWatchConfig = outputFragment.Metadata?.slicWatch ?? {}

if (slicWatchConfig.enabled ?? true) {
const ajv = new Ajv({
Expand All @@ -42,9 +42,9 @@ export function handler (event: Event): Event {
throw new Error('SLIC Watch configuration is invalid: ' + ajv.errorsText(slicWatchValidate.errors))
}

const alarmActions = []
slicWatchConfig?.topicArn && alarmActions.push(slicWatchConfig.topicArn)
process.env.ALARM_SNS_TOPIC && alarmActions.push(process.env.ALARM_SNS_TOPIC)
const alarmActions: string[] = []
slicWatchConfig?.topicArn != null && alarmActions.push(slicWatchConfig.topicArn)
process.env.ALARM_SNS_TOPIC != null && alarmActions.push(process.env.ALARM_SNS_TOPIC)

const context = {
alarmActions
Expand All @@ -58,9 +58,9 @@ export function handler (event: Event): Event {
)

for (const [funcResourceName, funcResource] of Object.entries(lambdaResources)) {
const funcConfig = funcResource.Metadata?.slicWatch || {}
functionAlarmConfigs[funcResourceName] = funcConfig.alarms || {}
functionDashboardConfigs[funcResourceName] = funcConfig.dashboard || {}
const funcConfig = funcResource.Metadata?.slicWatch ?? {}
functionAlarmConfigs[funcResourceName] = funcConfig.alarms ?? {}
functionDashboardConfigs[funcResourceName] = funcConfig.dashboard ?? {}
}

addAlarms(config.alarms, functionAlarmConfigs, context, outputFragment)
Expand Down
22 changes: 11 additions & 11 deletions core/alarms/alarms.ts
Expand Up @@ -39,16 +39,16 @@ export default function addAlarms (AlarmProperties: SlicWatchAlarmsConfig, funct

if (AlarmProperties.ActionsEnabled) {
createLambdaAlarms(cascadedFunctionAlarmProperties, context, compiledTemplate, additionalResources)
apiGwConfig?.ActionsEnabled && createApiGatewayAlarms(apiGwConfig, context, compiledTemplate, additionalResources)
sfConfig?.ActionsEnabled && createStatesAlarms(sfConfig, context, compiledTemplate, additionalResources)
dynamoDbConfig?.ActionsEnabled && createDynamoDbAlarms(dynamoDbConfig, context, compiledTemplate, additionalResources)
kinesisConfig?.ActionsEnabled && createKinesisAlarms(kinesisConfig, context, compiledTemplate, additionalResources)
sqsConfig?.ActionsEnabled && createSQSAlarms(sqsConfig, context, compiledTemplate, additionalResources)
ecsConfig?.ActionsEnabled && createECSAlarms(ecsConfig, context, compiledTemplate, additionalResources)
snsConfig?.ActionsEnabled && createSNSAlarms(snsConfig, context, compiledTemplate, additionalResources)
ruleConfig?.ActionsEnabled && createRuleAlarms(ruleConfig, context, compiledTemplate, additionalResources)
albConfig?.ActionsEnabled && createALBAlarms(albConfig, context, compiledTemplate, additionalResources)
albTargetConfig?.ActionsEnabled && createALBTargetAlarms(albTargetConfig, context, compiledTemplate, additionalResources)
appSyncConfig?.ActionsEnabled && createAppSyncAlarms(appSyncConfig, context, compiledTemplate, additionalResources)
apiGwConfig?.ActionsEnabled != null && createApiGatewayAlarms(apiGwConfig, context, compiledTemplate, additionalResources)
sfConfig?.ActionsEnabled != null && createStatesAlarms(sfConfig, context, compiledTemplate, additionalResources)
dynamoDbConfig?.ActionsEnabled != null && createDynamoDbAlarms(dynamoDbConfig, context, compiledTemplate, additionalResources)
kinesisConfig?.ActionsEnabled != null && createKinesisAlarms(kinesisConfig, context, compiledTemplate, additionalResources)
sqsConfig?.ActionsEnabled != null && createSQSAlarms(sqsConfig, context, compiledTemplate, additionalResources)
ecsConfig?.ActionsEnabled != null && createECSAlarms(ecsConfig, context, compiledTemplate, additionalResources)
snsConfig?.ActionsEnabled != null && createSNSAlarms(snsConfig, context, compiledTemplate, additionalResources)
ruleConfig?.ActionsEnabled != null && createRuleAlarms(ruleConfig, context, compiledTemplate, additionalResources)
albConfig?.ActionsEnabled != null && createALBAlarms(albConfig, context, compiledTemplate, additionalResources)
albTargetConfig?.ActionsEnabled != null && createALBTargetAlarms(albTargetConfig, context, compiledTemplate, additionalResources)
appSyncConfig?.ActionsEnabled != null && createAppSyncAlarms(appSyncConfig, context, compiledTemplate, additionalResources)
}
}
20 changes: 10 additions & 10 deletions core/alarms/alb-target-group.ts
Expand Up @@ -20,7 +20,7 @@ export type AlbTargetAlarm = AlarmProperties & {
LoadBalancerLogicalId: string
}
function getResourceByName (resourceName: string, compiledTemplate, additionalResources = {}): Resource {
return compiledTemplate.Resources[resourceName] || additionalResources[resourceName]
return compiledTemplate.Resources[resourceName] ?? additionalResources[resourceName]
}

/**
Expand All @@ -39,11 +39,11 @@ export function findLoadBalancersForTargetGroup (targetGroupLogicalId: string, c

// First, find Listeners with _default actions_ referencing the target group
for (const listener of Object.values(listenerResources)) {
for (const action of listener.Properties?.DefaultActions || []) {
for (const action of listener.Properties?.DefaultActions ?? []) {
const targetGroupArn = action?.TargetGroupArn
if (targetGroupArn?.Ref === targetGroupLogicalId) {
const loadBalancerLogicalId = listener.Properties?.LoadBalancerArn?.Ref
if (loadBalancerLogicalId) {
if (loadBalancerLogicalId != null) {
allLoadBalancerLogicalIds.add(loadBalancerLogicalId)
}
}
Expand All @@ -53,7 +53,7 @@ export function findLoadBalancersForTargetGroup (targetGroupLogicalId: string, c

// Second, find ListenerRules with actions referncing the target group, then follow to the rules' listeners
for (const [listenerRuleLogicalId, listenerRule] of Object.entries(listenerRuleResources)) {
for (const action of listenerRule.Properties?.Actions || []) {
for (const action of listenerRule.Properties?.Actions ?? []) {
const targetGroupArn = action.TargetGroupArn
if (targetGroupArn.Ref === targetGroupLogicalId) {
allListenerRules[listenerRuleLogicalId] = listenerRule
Expand All @@ -65,9 +65,9 @@ export function findLoadBalancersForTargetGroup (targetGroupLogicalId: string, c
for (const listenerRule of Object.values(allListenerRules)) {
const listenerLogicalId = listenerRule.Properties?.ListenerArn.Ref
const listener = getResourceByName(listenerLogicalId, compiledTemplate, additionalResources)
if (listener) {
if (listener != null) {
const loadBalancerLogicalId = listener.Properties?.LoadBalancerArn?.Ref
if (loadBalancerLogicalId) {
if (loadBalancerLogicalId != null) {
allLoadBalancerLogicalIds.add(loadBalancerLogicalId)
}
}
Expand All @@ -90,7 +90,7 @@ export default function createALBTargetAlarms (albTargetAlarmProperties: AlbTarg
for (const tgLogicalId of Object.keys(targetGroupResources)) {
const loadBalancerLogicalIds = findLoadBalancersForTargetGroup(tgLogicalId, compiledTemplate, additionalResources)
for (const loadBalancerLogicalId of loadBalancerLogicalIds) {
if (albTargetAlarmProperties.HTTPCode_Target_5XX_Count?.ActionsEnabled) {
if (albTargetAlarmProperties.HTTPCode_Target_5XX_Count?.ActionsEnabled === true) {
const httpCodeTarget5XXCount = createHTTPCodeTarget5XXCountAlarm(
targetGroupResourceName,
targetGroupResource,
Expand All @@ -99,7 +99,7 @@ export default function createALBTargetAlarms (albTargetAlarmProperties: AlbTarg
)
addResource(httpCodeTarget5XXCount.resourceName, httpCodeTarget5XXCount.resource, compiledTemplate)
}
if (albTargetAlarmProperties.UnHealthyHostCount?.ActionsEnabled) {
if (albTargetAlarmProperties.UnHealthyHostCount?.ActionsEnabled === true) {
const unHealthyHostCount = createUnHealthyHostCountAlarm(
targetGroupResourceName,
targetGroupResource,
Expand All @@ -109,7 +109,7 @@ export default function createALBTargetAlarms (albTargetAlarmProperties: AlbTarg
addResource(unHealthyHostCount.resourceName, unHealthyHostCount.resource, compiledTemplate)
}
if (targetGroupResource.Properties?.TargetType === 'lambda') {
if (albTargetAlarmProperties.LambdaInternalError?.ActionsEnabled) {
if (albTargetAlarmProperties.LambdaInternalError?.ActionsEnabled === true) {
const lambdaInternalError = createLambdaInternalErrorAlarm(
targetGroupResourceName,
targetGroupResource,
Expand All @@ -118,7 +118,7 @@ export default function createALBTargetAlarms (albTargetAlarmProperties: AlbTarg
)
addResource(lambdaInternalError.resourceName, lambdaInternalError.resource, compiledTemplate)
}
if (albTargetAlarmProperties.LambdaUserError?.ActionsEnabled) {
if (albTargetAlarmProperties.LambdaUserError?.ActionsEnabled === true) {
const lambdaUserError = createLambdaUserErrorAlarm(
targetGroupResourceName,
targetGroupResource,
Expand Down
4 changes: 2 additions & 2 deletions core/alarms/alb.ts
Expand Up @@ -30,7 +30,7 @@ export default function createALBAlarms (albAlarmProperties: AlbAlarmProperties,
const loadBalancerResources = getResourcesByType('AWS::ElasticLoadBalancingV2::LoadBalancer', compiledTemplate, additionalResources)

for (const [loadBalancerResourceName, loadBalancerResource] of Object.entries(loadBalancerResources)) {
if (albAlarmProperties.HTTPCode_ELB_5XX_Count?.ActionsEnabled) {
if (albAlarmProperties.HTTPCode_ELB_5XX_Count?.ActionsEnabled === true) {
const httpCodeELB5XXCount = createHTTPCodeELB5XXCountAlarm(
loadBalancerResourceName,
loadBalancerResource,
Expand All @@ -39,7 +39,7 @@ export default function createALBAlarms (albAlarmProperties: AlbAlarmProperties,
addResource(httpCodeELB5XXCount.resourceName, httpCodeELB5XXCount.resource, compiledTemplate)
}

if (albAlarmProperties.RejectedConnectionCount?.ActionsEnabled) {
if (albAlarmProperties.RejectedConnectionCount?.ActionsEnabled === true) {
const rejectedConnectionCount = createRejectedConnectionCountAlarm(
loadBalancerResourceName,
loadBalancerResource,
Expand Down
23 changes: 12 additions & 11 deletions core/alarms/api-gateway.ts
Expand Up @@ -31,8 +31,9 @@ export type ApiAlarm = AlarmProperties & {
* @param restApiLogicalId The logical ID for the resouce
* @returns CloudFormation syntax for the API name
*/
export function resolveRestApiNameAsCfn (restApiResource, restApiLogicalId: string) {
const apiName = restApiResource.Properties.Name || restApiResource.Properties?.Body?.info?.title
export function resolveRestApiNameAsCfn (restApiResource: Resource, restApiLogicalId: string) {
const apiName = restApiResource.Properties?.Name ?? restApiResource.Properties?.Body?.info?.title
// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
if (!apiName) {
throw new Error(`No API name specified for REST API ${restApiLogicalId}. Either Name or Body.info.title should be specified`)
}
Expand All @@ -53,17 +54,17 @@ export function resolveRestApiNameAsCfn (restApiResource, restApiLogicalId: stri
* @param restApiLogicalId The logical ID for the resouce
* @returns Literal string or Sub variable syntax
*/
export function resolveRestApiNameForSub (restApiResource, restApiLogicalId: string) {
const name = restApiResource.Properties.Name || restApiResource.Properties.Body?.info?.title
if (!name) {
export function resolveRestApiNameForSub (restApiResource: Resource, restApiLogicalId: string) {
const name = (restApiResource.Properties?.Name) ?? (restApiResource.Properties?.Body?.info?.title)
if (name === false) {
throw new Error(`No API name specified for REST API ${restApiLogicalId}. Either Name or Body.info.title should be specified`)
}

if (name.GetAtt) {
if (name.GetAtt != null) {
return `\${${name.GetAtt[0]}.${name.GetAtt[1]}}`
} else if (name.Ref) {
} else if (name.Ref != null) {
return `\${${name.Ref}}`
} else if (name['Fn::Sub']) {
} else if (name['Fn::Sub'] != null) {
return name['Fn::Sub']
}
return name
Expand All @@ -83,23 +84,23 @@ export default function createApiGatewayAlarms (apiGwAlarmProperties: ApiGwAlarm
for (const [apiResourceName, apiResource] of Object.entries(apiResources)) {
const alarms: any = []

if (apiGwAlarmProperties['5XXError'].ActionsEnabled) {
if (apiGwAlarmProperties['5XXError'].ActionsEnabled === true) {
alarms.push(create5XXAlarm(
apiResourceName,
apiResource,
apiGwAlarmProperties['5XXError']
))
}

if (apiGwAlarmProperties['4XXError'].ActionsEnabled) {
if (apiGwAlarmProperties['4XXError'].ActionsEnabled === true) {
alarms.push(create4XXAlarm(
apiResourceName,
apiResource,
apiGwAlarmProperties['4XXError']
))
}

if (apiGwAlarmProperties.Latency.ActionsEnabled) {
if (apiGwAlarmProperties.Latency.ActionsEnabled === true) {
alarms.push(createLatencyAlarm(
apiResourceName,
apiResource,
Expand Down
4 changes: 2 additions & 2 deletions core/alarms/appsync.ts
Expand Up @@ -31,15 +31,15 @@ export default function createAppSyncAlarms (appSyncAlarmProperties: AppSyncAlar

for (const [appSyncResourceName, appSyncResource] of Object.entries(appSyncResources)) {
const alarms: any = []
if (appSyncAlarmProperties['5XXError'].ActionsEnabled) {
if (appSyncAlarmProperties['5XXError'].ActionsEnabled === true) {
alarms.push(create5XXAlarm(
appSyncResourceName,
appSyncResource,
appSyncAlarmProperties['5XXError']
))
}

if (appSyncAlarmProperties.Latency.ActionsEnabled) {
if (appSyncAlarmProperties.Latency.ActionsEnabled === true) {
alarms.push(createLatencyAlarm(
appSyncResourceName,
appSyncResource,
Expand Down
24 changes: 12 additions & 12 deletions core/alarms/default-config-alarms.ts
Expand Up @@ -8,7 +8,7 @@ import { type DynamoDbAlarmProperties } from './dynamodb'
import { type EcsAlarm, type EcsAlarmsConfig } from './ecs'
import { type EventbridgeAlarm, type EventsAlarmsConfig } from './eventbridge'
import { type KinesisAlarmProperties } from './kinesis'
import { type LambdaAlarm, type LambdaFunctionAlarmPropertiess } from './lambda'
import { type LambdaAlarm, type LambdaFunctionAlarmProperties } from './lambda'
import { type SnsAlarm, type SnsAlarmsConfig } from './sns'
import { type SqsAlarm, type SqsAlarmsConfig } from './sqs'
import { type SfAlarmsConfig, type SmAlarm } from './step-functions'
Expand Down Expand Up @@ -72,17 +72,17 @@ export interface AllAlarmsConfig {
}

export type AlarmsConfig = AlbTargetAlarmProperties & AlbAlarmProperties & ApiGwAlarmProperties & AppSyncAlarmProperties & DynamoDbAlarmProperties
& EcsAlarmsConfig & EventsAlarmsConfig & KinesisAlarmProperties & LambdaFunctionAlarmPropertiess & SnsAlarmsConfig & SqsAlarmsConfig & SfAlarmsConfig
& EcsAlarmsConfig & EventsAlarmsConfig & KinesisAlarmProperties & LambdaFunctionAlarmProperties & SnsAlarmsConfig & SqsAlarmsConfig & SfAlarmsConfig

export interface FunctionAlarmPropertiess {
HelloLambdaFunction?: LambdaFunctionAlarmPropertiess
ThrottlerLambdaFunction?: LambdaFunctionAlarmPropertiess
DriveStreamLambdaFunction?: LambdaFunctionAlarmPropertiess
DriveQueueLambdaFunction?: LambdaFunctionAlarmPropertiess
DriveTableLambdaFunction?: LambdaFunctionAlarmPropertiess
StreamProcessorLambdaFunction?: LambdaFunctionAlarmPropertiess
HttpGetterLambdaFunction?: LambdaFunctionAlarmPropertiess
SubscriptionHandlerLambdaFunction?: LambdaFunctionAlarmPropertiess
EventsRuleLambdaFunction?: LambdaFunctionAlarmPropertiess
AlbEventLambdaFunction?: LambdaFunctionAlarmPropertiess
HelloLambdaFunction?: LambdaFunctionAlarmProperties
ThrottlerLambdaFunction?: LambdaFunctionAlarmProperties
DriveStreamLambdaFunction?: LambdaFunctionAlarmProperties
DriveQueueLambdaFunction?: LambdaFunctionAlarmProperties
DriveTableLambdaFunction?: LambdaFunctionAlarmProperties
StreamProcessorLambdaFunction?: LambdaFunctionAlarmProperties
HttpGetterLambdaFunction?: LambdaFunctionAlarmProperties
SubscriptionHandlerLambdaFunction?: LambdaFunctionAlarmProperties
EventsRuleLambdaFunction?: LambdaFunctionAlarmProperties
AlbEventLambdaFunction?: LambdaFunctionAlarmProperties
}
14 changes: 7 additions & 7 deletions core/alarms/dynamodb.ts
Expand Up @@ -29,38 +29,38 @@ export default function createDynamoDbAlarms (dynamoDbAlarmProperties: DynamoDbA
const alarms: any = []

const tableNameSub = `\${${tableResourceName}}`
if (dynamoDbAlarmProperties.ReadThrottleEvents.ActionsEnabled) {
if (dynamoDbAlarmProperties.ReadThrottleEvents.ActionsEnabled === true) {
alarms.push(
createDynamoDbAlarm(tableNameSub, tableDimensions, 'ReadThrottleEvents', makeResourceName('Table', `${tableNameSub}`, 'ReadThrottleEvents'))
)
}

if (dynamoDbAlarmProperties.WriteThrottleEvents.ActionsEnabled) {
if (dynamoDbAlarmProperties.WriteThrottleEvents.ActionsEnabled === true) {
alarms.push(
createDynamoDbAlarm(tableNameSub, tableDimensions, 'WriteThrottleEvents', makeResourceName('Table', `${tableNameSub}`, 'WriteThrottleEvents'))
)
}

if (dynamoDbAlarmProperties.UserErrors.ActionsEnabled) {
if (dynamoDbAlarmProperties.UserErrors.ActionsEnabled === true) {
alarms.push(
createDynamoDbAlarm(tableNameSub, tableDimensions, 'UserErrors', makeResourceName('Table', `${tableNameSub}`, 'UserErrors'))
)
}

if (dynamoDbAlarmProperties.SystemErrors.ActionsEnabled) {
if (dynamoDbAlarmProperties.SystemErrors.ActionsEnabled === true) {
alarms.push(
createDynamoDbAlarm(tableNameSub, tableDimensions, 'SystemErrors', makeResourceName('Table', `${tableNameSub}`, 'SystemErrors'))
)
}
for (const gsi of tableResource.Properties?.GlobalSecondaryIndexes || []) {
for (const gsi of tableResource.Properties?.GlobalSecondaryIndexes ?? []) {
const gsiName = gsi.IndexName
const gsiDimensions = [...tableDimensions, { Name: 'GlobalSecondaryIndex', Value: gsiName }]
const gsiIdentifierSub = `${tableNameSub}${gsiName}`
if (dynamoDbAlarmProperties.ReadThrottleEvents.ActionsEnabled) {
if (dynamoDbAlarmProperties.ReadThrottleEvents.ActionsEnabled === true) {
alarms.push(createDynamoDbAlarm(gsiIdentifierSub, gsiDimensions, 'ReadThrottleEvents', makeResourceName('GSI', `${tableResourceName}${gsiName}`, 'ReadThrottleEvents')))
}

if (dynamoDbAlarmProperties.WriteThrottleEvents.ActionsEnabled) {
if (dynamoDbAlarmProperties.WriteThrottleEvents.ActionsEnabled === true) {
alarms.push(createDynamoDbAlarm(gsiIdentifierSub, gsiDimensions, 'WriteThrottleEvents', makeResourceName('GSI', `${tableResourceName}${gsiName}`, 'WriteThrottleEvents')))
}
}
Expand Down

0 comments on commit 3f026c8

Please sign in to comment.