@aligent/serverless-conventions
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

Serverless Conventions Plugin

serverless npm version

A Serverless framework 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

serverless output

Readme

Keywords

none

Package Sidebar

Install

npm i @aligent/serverless-conventions

Weekly Downloads

100

Version

1.0.0

License

MIT

Unpacked Size

143 kB

Total Files

16

Last publish

Collaborators

  • torbjorn.vanheeswijck
  • aligent-bot
  • aligent-danielvanderploeg
  • luke-denton-aligent
  • jarrod.swift