@dazn/lambda-powertools-middleware-stop-infinite-loop

    1.29.0 • Public • Published

    lambda-powertools-middleware-stop-infinite-loop

    A Middy middleware that will stop an invocation if it's deemed to be part of an infinite loop.

    Main features:

    • errors if the call-chain-length reaches the configured threshold (defaults to 10)

    Getting Started

    Install from NPM: npm install @dazn/lambda-powertools-middleware-stop-infinite-loop

    API

    The middleware accepts an optional constructor parameter threshold, which is the max length allowed for the entire call chain.

    This middleware is intended to be used alongside @dazn/lambda-powertools-middleware-correlation-ids, which is responsible for collecting correlation IDs and incrementing the call-chain-length (i.e. the number of function invocations that are chained together) at the start of an invocation.

    Because this middleware relies on @dazn/lambda-powertools-middleware-correlation-ids, it needs to be applied AFTER @dazn/lambda-powertools-middleware-correlation-ids (as seen below).

    const middy = require('middy')
    const correlationIds = require('@dazn/lambda-powertools-middleware-correlation-ids')
    const stopInfiniteLoop = require('@dazn/lambda-powertools-middleware-stop-infinite-loop')
    
    const handler = async (event, context) => {
      return 42
    }
    
    module.exports = middy(handler)
      .use(correlationIds())
      .use(stopInfiniteLoop()) // defaults to 10
    }

    Keywords

    none

    Install

    npm i @dazn/lambda-powertools-middleware-stop-infinite-loop

    DownloadsWeekly Downloads

    335

    Version

    1.29.0

    License

    MIT

    Unpacked Size

    10.1 kB

    Total Files

    6

    Last publish

    Collaborators

    • afalzetti
    • rick-burgess-dazn
    • cirpo
    • dazn.builder.frontend
    • automation-drone
    • m.bazalik
    • dazn.oss.lambda.powertools
    • dazn.oss