@asterql/formatter
npm install @asterql/formatter
Deterministic formatting and canonical AST serialization for AsterQL.
import { canonicalize, format } from "@asterql/formatter";
format('*.posts[status="published"]|sort(-date)[:10] {id,title}');
canonicalize('*.posts[status="published"]');
API
format(queryOrAst, { printWidth?: number }): string
canonicalAst(queryOrAst): CanonicalAst
canonicalize(queryOrAst): string
serializeCanonicalAst(queryOrAst): string
Formatting is parse-backed and idempotent. Canonicalization is intentionally
separate from formatting so future view hashes do not depend on whitespace or
stylistic source text.