README
Common Library
- The code in here is shared among the scout services
Basics
- the folder common is published on npm registry in a public organisation (everybody can see code)
- the common lib is also part of a seperate git repo (required by npm to have seperate git repo)
- to login to npm before pushing lib, run `npm login'
- to push lib, run
npm publish --access public
- the libs in the common lib are written in typescript but published in JS to guarantee compatibility
- Publish process
- Commit changes to git
- increase package version tag by running
npm version patch
or setting it manually inpackage.json
- run
npm run build
- depending on the operating system, you may need to change the del-cli cmd in
package.json
clean script
- run
npm publish
- install or update the common lib in services:
npm [install|update] @pauls_ticket_sales/common
- to import module, add
import {BadReuestError|component name} from '@pauls_ticker_sales/common
Contains Logic that ...
- Does the listening and revceiving of events via nats event bus
- To ensure that typescript can check the contents of new events when used in service
- Define new event name/subject in
subject.ts
- Define specialised event properties in a new interface file detailing event properties such as
TicketCreatedEvent
- Define new event name/subject in
- Defines a base class for publishing and listening of events (
base-listerner.ts
andbase-receiver.ts
)
- To ensure that typescript can check the contents of new events when used in service
- ensuring checking of event names and properties as done here is not cross platform independent as it is bound to java script. Cross platform independant solutions are JSON schema, Protobuf (lecture 301)