@knitting-tools/core
v2.0.2
Published
Knitting maths, row parsing, shaping, and pattern compilation utilities.
Downloads
352
Maintainers
Readme
@knitting-tools/core
A knitting pattern engine for expanding rows, applying shaping, and compiling pattern DSL.
What it includes
- Expand repeat-based row definitions
- Evenly distribute increases/decreases
- Apply physical shaping to stitch streams
- Compile simple knitting DSL
Package boundaries
@knitting-tools/core is the pattern engine package.
- Keep here: parsing, shaping, row expansion, and compile pipeline.
- Use
@knitting-tools/mathfor gauge and measurement utility functions.
Install
pnpm add @knitting-tools/coreMigration from @knitting-tools/math
The package was renamed in 2.0.0:
- Old package:
@knitting-tools/math - New package:
@knitting-tools/core
Update your project by changing both install and import paths.
Before:
import { compilePattern } from "@knitting-tools/math";After:
import { compilePattern } from "@knitting-tools/core";The runtime API surface is unchanged for this rename; migration is package-path only.
For split-package migration, prefer these utility imports from @knitting-tools/math:
rowsPerCmstitchesPerCmcmToRowscmToStitchesconvertLengthnormaliseMeasurementroundStitches
These remain re-exported from @knitting-tools/core for compatibility.
Quick example
import {
compilePattern,
compileRowDsl,
parseRowDsl,
rowToRowDsl,
} from "@knitting-tools/core";
const row = parseRowDsl("[k1]s (k2 p2) p1 [k1]e");
const normalised = rowToRowDsl(row);
const stitches = compileRowDsl(normalised, 10);
const compiled = compilePattern(
{
rows: [row],
},
10
);
console.log(stitches.length);
console.log(compiled.rows[0].normalisedRowDsl);Development
Run from the repository root:
pnpm --dir packages/knitting-math typecheck
pnpm --dir packages/knitting-math test
pnpm --dir packages/knitting-math test:coverage
pnpm --dir packages/knitting-math checkAPI Stability & Breaking Changes
This package follows Semantic Versioning. The public API surface is locked in with snapshot tests. Any change to exports, types, or function signatures will cause tests to fail, ensuring breaking changes are intentional and documented.
Quick links:
- API Compatibility Policy — Detailed policy on versioning and breaking changes
- API Quick Reference — Commands and workflows for development
- Test Snapshots — Current API surface
Key principle: Breaking changes require a major version bump and must be documented in Changesets before release.
Release flow
Package releases are managed with Changesets from the repository root:
pnpm changeset
pnpm release:status
pnpm release:version
pnpm release:publishSee the repository README for the wider monorepo workflow.
