@ahi40/common

The code in here is shared among the scout services

Usage no npm install needed!

<script type="module">
  import ahi40Common from 'https://cdn.skypack.dev/@ahi40/common';
</script>

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
    1. Commit changes to git
    2. increase package version tag by running npm version patch or setting it manually in package.json
    3. run npm run build
    • depending on the operating system, you may need to change the del-cli cmd in package.json clean script
    1. run npm publish
    2. 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
    • Defines a base class for publishing and listening of events (base-listerner.ts and base-receiver.ts)
  • 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)