Skip to content
This repository has been archived by the owner on Aug 1, 2022. It is now read-only.

Serverless Offline Plugin to Support Step Functions for Local Development

License

Notifications You must be signed in to change notification settings

fernyettheplant/serverless-offline-step-functions

Repository files navigation

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