This module provides tooling to lint, format, test and write JS modules.
It makes use of the following stack:
- Prettier for code style linting and formatting
- ESLint for TS linting
- Jest for testing
- TypeDoc for documentation generation
- Husky / lint-staged for Git hooks
yarn global add @marvinroger/fuseeThen, inside a blank Node.js project, run fusee init.
This will install the stack, and add the correct scripts inside the package.json.
yarn lint [files...]Lint the code with ESlint and Prettier, trying to fix what's fixable.
This runs eslint --fix and prettier --write on:
- src/**/*.ts
- Only given files if a list of files is supplied (this is how lint-staged is setup)
The ESLint config can be found at ⚙ src/configs/eslint.ts, and the Prettier config at ⚙ src/configs/prettier.ts.
yarn testTest the code with Jest.
This runs jest --passWithNoTests with the default Jest config.
The Jest config can be found at ⚙ src/configs/jest.ts.
yarn generate-docsGenerate the HTML docs from the TypeScript code, into the docs/ directory.
Note: Due to a TypeDoc restriction, every single exported method will be documented (even if not exported from the entry-point). To ignore such methods, add a @hidden annotation.
The Husky config can be found at ⚙ src/configs/husky.ts. The following hooks are set:
- pre-commit: This runs- lint-stagedwith the config at ⚙ src/configs/lint-staged.ts. Whenever a file matches the- *.{ts,tsx,js,jsx}pattern, the- lintscript will be ran on these files, fixing what's fixable. If the lint is unsuccessful and it cannot be auto-fixed, the commit will be aborted.
There is no pre-push hook, as it might take too long to build or test the project.
These checks should be done on the CI.