@deliverr/serverless-offline-step-functions
Version:
Serverless Offline Plugin to Support Step Functions for Local Development
107 lines (73 loc) • 4.41 kB
Markdown
# Serverless Offline Step Functions **(STATUS: ALPHA)**
[](http://www.serverless.com)





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.
[](https://ko-fi.com/Y8Y42C4E9)
## Requirements
- [serverless](https://github.com/serverless/serverless)
- [serverless-offline](https://github.com/dherault/serverless-offline)
- [serverless-step-functions plugin](https://github.com/serverless-operations/serverless-step-functions)
- [serverless-webpack (optional)](https://github.com/serverless-heaven/serverless-webpack)
## Installation
```shell
$ 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`
```yml
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
```yml
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](https://github.com/flocasts/serverless-offline-step-functions) for a fix. Then I decided to do a full rewrite of it 😀
## License
[MIT](./LICENSE)
## 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**