https://github.com/aligent/serverless-conventions
https://github.com/aligent/serverless-conventions
serverless
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/aligent/serverless-conventions
- Owner: aligent
- License: gpl-3.0
- Created: 2021-11-02T01:17:10.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2026-03-03T05:44:07.000Z (about 1 month ago)
- Last Synced: 2026-03-03T09:27:06.626Z (about 1 month ago)
- Topics: serverless
- Language: TypeScript
- Size: 1.54 MB
- Stars: 1
- Watchers: 12
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Serverless Conventions Plugin
[](http://www.serverless.com)
[](https://badge.fury.io/js/@aligent%2Fserverless-conventions)
A [Serverless framework](https://www.serverless.com) plugin to enforce various formatting conventions to maintain consistency within Serverless applications.
## List of conventions
| Convention | Good Example | Bad Example |
| --- | --- | --- |
| Service name must be dash delimited | this-is-a-good-name | thisIsABadName |
| Service name must not contain the word "service" | this-is-a-good-name | this-is-a-bad-service |
| Service name must be less than 24 characters | this-is-a-good-name | this-is-a-bad-name-because-its-too-long |
| Stage must contains only lower case alphabet characters | dev | Development |
| Stage must be exactly 3 characters long | prd | prod |
| Handler names must have the same name as the function | functions:
thisIsAWellNamedExample:
handler: src/this-is-a-well-named-example.handler | functions:
thisIsABadlyNamedFunction:
handler: src/this-is-a-badly-named-example.handler |
| Function names must be in camel case | thisIsAWellNamedExample | ThisIsABadlyNamedExample |
| Function names should not be overwritten | functions:
exampleFunction:
handler: src/example-function.handler | functions:
exampleFunction:
name: exampleFunction
handler: src/example-function.handler |
| Handler names must be dash delimited | src/this-is-a-well-named-example.handler | src/ThisIsABadlyNamedExample.handler |
| Handler names must end in ".handler" | src/this-is-a-well-named-example.handler | src/this-is-a-badly-named-example |
| DynamoDB table names must be in kebab case | example-name-good-table-name | BadTableName |
| DynamoDB table names must start with the service name | example-name-good-table-name | bad-table-name |
## Serverless configuration
The plugin is configured within the `serverless.yaml` by adding the plugin to the list of plugins.
```
plugins:
- "@aligent/serverless-conventions"
```
### Ignoring specific checks
All checks can be ignored by specifying the check to ignore under a top level property named `conventions` in `serverless.yaml`.
A list of all the available ignore commands are below:
```
conventions:
ignore:
serviceName: true
stageName: true
handlerName: true
functionName: true
handlerNameMatchesFunction: true
dynamoDBTableName: true
```
## Running the conventions check
The conventions check will run automatically each time you run a serverless command that compiles the packages. (e.g. `serverless package`, `serverless deploy`)
Alternatively, the conventions check can be run manually with `serverless conventions-check`.
## Example Output
