mix proto_rune. gen. lexicons
(proto_rune v0.2.0)
Copy Markdown
Generates Peri schema modules from ATProto lexicon JSON files.
This task reads lexicon definitions from priv/atproto/lexicons and generates
corresponding Elixir modules with Peri schemas in lib/proto_rune/lexicon/.
Usage
$ mix proto_rune.gen.lexicons
Options
--lexicons-dir- Directory containing lexicon JSON files (default: priv/atproto/lexicons)--output-dir- Directory where generated modules will be written (default: lib/proto_rune/lexicon/)--recursive- Recursively search for lexicon files in subdirectories (default: true)--force- Force regeneration even if output files exist (default: false)
Examples
# Generate all lexicons with default settings
$ mix proto_rune.gen.lexicons
# Specify custom directories
$ mix proto_rune.gen.lexicons --lexicons-dir custom/lexicons --output-dir custom/output
# Force regeneration
$ mix proto_rune.gen.lexicons --forceGenerated Files
For each lexicon file app.bsky.feed.post.json, this task will generate:
lib/proto_rune/lexicon/app/bsky/feed/post.ex
Each generated module will contain:
- Module documentation from the lexicon description
- Peri
defschemadefinitions for all defs in the lexicon - Helper functions for validation
Notes
- Generated files should be committed to git for version control
- If lexicon files are updated, re-run this task to regenerate modules
- Generated modules are not meant to be edited manually