Local setup
Install dependencies
node --version. If you use nvm, the repository includes an .nvmrc file:Configure environment variables
Copy the example environment file and fill in your tokens:Open
.env and set the following:| Variable | Description |
|---|---|
GITHUB_TOKEN | GitHub Personal Access Token with repo and user scopes |
HACKMD_API_TOKEN | HackMD API token from Account Settings > API Tokens |
Code quality
The project enforces consistent style with ESLint and Prettier. Both are checked in CI via thetest.yml workflow.
eslint.config.mjs using the flat config format. It enforces:
@eslint/jsrecommended ruleseslint-plugin-import-xfor import ordering (builtin → external → internal → sibling/parent → index)eslint-plugin-jsdocrequiring JSDoc on all functions, arrow functions, methods, and classesobject-shorthandfor concise object literals
.prettierrc.json:
Testing
The project uses the Node.js built-in test runner (node:test), which requires no additional test framework dependencies.
test:coverage command uses the --experimental-test-coverage flag, which is available in Node.js 22 without a flag in later releases.
CI runs the full test suite on Node.js 22.x and latest for every push and pull request to main.
Project structure
Module notes
- ESM throughout:
package.jsonsets"type": "module", and all source files use the.mjsextension. There are no CommonJS files. - CLI entry point:
create-node-meeting-artifacts.mjsusescommanderto parse arguments and options, then calls into thesrc/modules sequentially. - Runtime requirement: Node.js 22 or later is required. The
enginesfield inpackage.jsonenforces this:"node": ">=22.0.0". - No transpilation: The project runs directly on Node.js with no build step. What you see in
src/is what runs in production.