@fernthedev/serverless-offline-step-functions

Serverless Offline Plugin to Support Step Functions for Local Development

Usage no npm install needed!

<script type="module">
  import fernthedevServerlessOfflineStepFunctions from 'https://cdn.skypack.dev/@fernthedev/serverless-offline-step-functions';
</script>

README

Serverless Offline Step Functions (STATUS: ALPHA)

serverless npm node-lts GitHub GitHub issues GitHub pull requests

Serverless Offline Plugin to Support Step Functions for Local Development.

Features:

  • Fully Written in TypeScript
  • Promise based (no process spawn)
  • Completely based on AWS Docs

Sponsor

If the plugin is being useful in your company and/or project and want to keep the development active, consider buying me a coffee 🙂... coffee is the thing that makes me the most happy person in the world and I'd appreciate the sponsorship.

ko-fi

Requirements

Installation

$ npm i -D @fernthedev/serverless-offline-step-functions

# or

$ yarn add -D @fernthedev/serverless-offline-step-functions

Options

The plugin contain a couple of options to configure in custom

custom:
  '@fernthedev/serverless-offline-step-functions':
    port: 8014
    enabled: true
    debug: false
  • port: Port of the Step Functions API Simulator (Default: 8014)
  • enabled: Enabled Step Function API Simulator (Default: true)
  • debug: Enable Debugger Output (Default: false)

Using it with Webpack

If your project uses serverless-webpack to compile/transpile your serverless application. Make sure is defined in your plugins before this plugin and serverless-offline

Example

plugins:
  - serverless-webpack # Defined Before
  - serverless-step-functions # Defined Before
  - '@fernthedev/serverless-offline-step-functions'
  - serverless-offline

Known Issues

  • The library will only start with $npx sls offline start and not npx sls offline.
  • If there's no input for the options it will throw an error. please copy&paste the ones provided on the top.

State Types Supported

States Notes
Task Basic Retry/Catch now supported!, Timeout and Heartbeat are not supported yet.
Choice ✅
Wait ✅
Parallel Not Supported at all yet.
Pass ✅
Fail ✅
Succeed ✅
Map Basic Support

Credits and inspiration

The plugin began as a fork of flocasts/serverless-offline-step-functions for a fix. Then I decided to do a full rewrite of it 😀

License

MIT

How to Contribute

Thank you for your interest on contributing. There's a tons of ways that you can contribute!

  • If you see that something is not right, open an issue!
  • If you know exactly what is happening, open a PR!
  • Want to improve the docs? Open a PR!
  • Want to improve the code? Open a PR!

Please follow both PR and Issues template for contribution. Any Open Issue/PR that does not follow the templates will be closed