Skip to content

Latest commit

 

History

History
62 lines (42 loc) · 1.74 KB

File metadata and controls

62 lines (42 loc) · 1.74 KB

Contributing to list-toolkit

Prerequisites

  • Node.js 22 or later
  • npm

Setup

git clone --recursive https://github.com/uhop/list-toolkit.git
cd list-toolkit
npm install

The --recursive flag is needed to clone the wiki submodule under wiki/.

Project structure

See ARCHITECTURE.md for a detailed module map and dependency graph.

  • src/ — all source code (ESM)
  • tests/ — automated tests (test-*.js)
  • bench/ — benchmarks
  • wiki/ — GitHub wiki (git submodule)

Development workflow

Running tests

npm test                          # Run all tests (tape-six, parallel workers)
node tests/test-<name>.js        # Run a single test file directly
npm run test:bun                  # Run with Bun
npm run test:deno                 # Run with Deno
npm run test:seq                  # Run sequentially (no workers)
npm run test:proc                 # Run using subprocesses

Coding conventions

General

  • ESM-only: use import/export syntax.
  • No runtime dependencies: do not add any packages to dependencies.
  • Formatting: Prettier — 160 char width, single quotes, no bracket spacing, no trailing commas, arrow parens "avoid".
  • Indentation: 2 spaces.

Patterns

See ARCHITECTURE.md for core concepts (circular lists, hosted vs external, value vs node, pointers, caches, heaps, method aliases, etc.).

Adding new features

  1. Add implementation in the appropriate src/ subdirectory.
  2. Add a top-level re-export module if needed.
  3. Add tests to tests/test-<name>.js.
  4. Run npm test to verify.

AI agents

If you are an AI coding agent, see AGENTS.md for detailed project conventions, commands, and architecture.