← NodeJS Teams

Architecture

Setup

After creating any new repository:

  • Add the owner team as an administrator.
  • Add a description and some topics to the GitHub project.
  • Enable “Vulnerability alerts” under GitHub’s Data Services settings.
  • Set up our standard GitHub labels. (Manually is probably easiest.)
  • Add notifications to the #auto-prism Slack channel: /github subscribe Banno/repo-name-here issues pulls

Structure

All projects should follow the convention below:

[.github]
  [workflows]
    build.yml
    release.yml
  ISSUE_TEMPLATE.md
  PULL_REQUEST_TEMPLATE.md
[coverage]
[dist]
[src]
[test]
    [unit]
    [e2e]
[types]
.dockerignore
.editorconfig
.gitignore
catalog-info.yaml
CODEOWNERS
docker-compose.yml
Dockerfile
package.json
pnpm-lock.yaml
pnpm-workspace.yaml
README.md
server.yml
tsconfig.json
tslint.json

Components

All projects should use the following:

NPM configuration

  • All (published) projects should use the files package property to define the files that should be published. This is preferred over using .gitignore and .npmignore to blacklist files.

Typescript configuration

  • All libraries written in Typescript should have the declaration option turned on so that .d.ts files are automatically generated. Projects/applications that aren’t imported into other projects can ignore this.

Docker configuration

  • Services should use our Docker base images for their base images; see an existing project for an example.
  • Read other Docker tips.
  • Docker base images are configured to use UTC for their timezone.