Skip to content

Latest commit

 

History

History
140 lines (99 loc) · 3.99 KB

tools.md

File metadata and controls

140 lines (99 loc) · 3.99 KB

Tools

Tools used for this project, in hopes of making life easier on developers.

Look here for references to documentation and key configuration files.

Code Spell Checker

Identifies words that may be misspelled.

Cucumber

Runs BDD tests with Gherkin syntax.

  • Files:
    • features/cucumber.cjs: configuration file for where to find tests and support code
    • features/tsconfig.json: TypeScript configuration
  • Node packages:
    • @cucumber/* provides cucumber and formatters, which make the output on the command line look nice.
    • ts-node adds TypeScript support to cucumber-js.
    • tsconfig-paths allows TypeScript sources in features/ to use path aliases to production code sources.
  • VS Code Extension: https://marketplace.visualstudio.com/items?itemName=CucumberOpen.cucumber-official

direnv

Integrates environment management with your shell (e.g. bash or zsh).

  • Files:
    • .envrc: configuration script
  • Installation:
    • Homebrew: brew install direnv
    • Note: Follow instructions about updating .bashrc or .zshrc

EditorConfig

Defines basic parameters for formatting source files.

  • Files:
    • .editorconfig: configuration file

ESLint

Performs static analysis and style checks.

  • Files:
    • .eslintrc.cjs: configuration file
  • Node packages:
    • eslint: main package
    • @typescript-eslint/eslint-plugin and @typescript-eslint/parser add support for TypeScript.

GitHub Actions

Performs Continuous Integration / Continuous Deployment (CI/CD).

  • Files:
    • .github/workflows: Workflow definitions

Husky

Adds a Git pre-commit hook that runs checks on staged files, before committing to the repository.

  • Files:
    • .husky/pre-commit: The actual pre-commit script
    • package.json also has a prepare script that installs the Git hook.
  • Node packages:
    • husky: main package

lint-staged

Runs the actual checks on source files staged for the next Git commit.

  • Files:
    • .lintstagedrc.cjs: configuration file
  • Node packages:
    • lint-staged: main package

Markdownlint

Checks Markdown files for style or formatting errors.

Node.js

Node.js is the runtime platform.

  • Files:
    • package.json: package properties, dependencies, and task automation (e.g. scripts)

Node Version Manager (nvm)

Installs a known version of Node.js and configures your shell to use it.

  • Files
    • .nvmrc: configuration file

Prettier

Formats source files.

  • Documentation:
  • Files:
    • .prettierignore: which files should be skipped, while formatting
    • .prettierrc.cjs: configuration file
  • Node packages:
    • prettier: main package

TypeScript

Adds static typing to JavaScript.

  • Documentation:
  • Files:
    • tsconfig.json - configuration file for sources in src/
    • features/tsconfig.json - configuration file for sources in features/
  • Node packages:
    • typescript: main package
    • @tsconfig/node18: base configuration for the version of node.js we're using here
    • @types/*: type definitions for all the other packages we're using
    • tsconfig-paths: allows TypeScript sources to use path aliases at runtime, using ts-node -r.