Skip to content

Introduce the ability to construct custom parsers - #1

Merged
exoRift merged 26 commits into
mainfrom
custom-parser
May 20, 2026
Merged

exoRift merged 26 commits into
mainfrom
custom-parser

Conversation

@exoRift

@exoRift exoRift commented May 12, 2026 •

Copy link
Copy Markdown
Owner

This is a complete reimagining of Wizard and introduces many breaking changes.

Main Changes

  • parse, stringify, and summarize are no longer globally exported functions. Instead, import WizardParser, construct it, and call WizardParser.*().
  • You can now define custom operators. Rather than using the predefined operator definitions, you have full control over the defined usable operators and how they're stringified via dialects.
  • You can add custom stringification dialects

Notable (and possibly breaking) Changes

  • The default implicit negation results in a converse of what it used to be. For example, !field will now result in field != true rather than field = false
  • condenseBooleans in .stringify() options has been renamed to condenseImplicit
  • Added dateSerializer config option for date stringification

Unchanged

  • executeAsKnex remains unchanged, although it's recommended you roll your own execution function, as this function serves as more of an example

@exoRift exoRift self-assigned this May 12, 2026
@exoRift
exoRift marked this pull request as ready for review May 20, 2026 19:28
@exoRift
exoRift merged commit 5dd3ccf into main May 20, 2026
2 checks passed
@exoRift
exoRift deleted the custom-parser branch May 20, 2026 19:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant