Skip to content

Latest commit

 

History

History
54 lines (33 loc) · 1.53 KB

File metadata and controls

54 lines (33 loc) · 1.53 KB

mes-driver-service

A serverless microservice responsible for responsible for retrieving driver data for candidates.

Structure

All serverless functions live in dedicated directories in src/functions. Code that is common between multiple functions should reside in src/common.

As per the principles of Hexagonal Architecture, each function has the following directories to help us separate concerns:

  • framework - contains all Inbound and Outbound Adapters, and all use of external/proprietary APIs - depends upon...
  • application - contains all Inbound and Outbound Ports, doesn't use any external/proprietary APIs - depends upon...
  • domain - contains all domain objects (Aggregates, Objects, Value classes etc) with all "business logic" (not just anaemic data holders), doesn't use any external/proprietary APIs.

Run locally

Use the following script to spin up the microservice locally

npm run start

Build

To build a zip file for every function to build/artifacts, run:

npm run package

To build a subset of the functions, pass a comma separated list of function names, like so:

npm run package -- get,set

N.b. The build requires jq.

Any functions delcared in serverless.yml that contain the word "local" will be ignored in the packaging process.

Test

To run the unit tests, simply run:

npm run test

Testing workflows locally

To run the GitHub actions locally for testing purposes, please see here:

https://github.com/nektos/act