Development Setup
Clone and Install
Section titled “Clone and Install”git clone https://github.com/gesslar/sassycd sassypnpm installSassy requires Node.js >= 22 and uses pnpm as its package manager. The project is ES6 modules throughout ("type": "module" in package.json).
Run from Source
Section titled “Run from Source”node ./src/cli.js build examples/simple/midnight-ocean-yaml.yamlThis runs the CLI directly without installing globally. All subcommands (build, resolve, lint) are available.
Testing
Section titled “Testing”Run the full test suite:
pnpm testRun a single test file:
node --test tests/Colour.test.jsnode --test tests/Compiler.test.jsTests use the Node.js built-in test runner (node:test) with assert/strict.
Linting
Section titled “Linting”pnpm lintESLint is configured via @gesslar/uglier. The style rules are non-negotiable:
- No semicolons
- No spaces after control keywords (
if(x)notif (x)) - No Prettier
- Arrow parens as-needed
- No internal object spacing (
{key: value}not{ key: value })
Do not suggest style changes. ESLint handles all formatting.
Type Generation
Section titled “Type Generation”pnpm typesTypeScript definitions are generated from JSDoc annotations. All public functions must have @param and @returns documentation.

