This is a MoonBit project.
make # all
make fmt # format code
make check # type check
make test # run unit + playwright tests
moon test -u # update snapshot tests
make info # generate type definition files
make clean # moon clean
make all # clean+fmt+build+test+info
make trim # trim examples wasm webapi.mjsmoon.mod.json- Module definitionmoon.pkg- Package dependencies (per directory)*.mbt- Source files*_test.mbt- Blackbox test files*_wbtest.mbt- Whitebox test files*.mbt.md- Doc test files*.mbti- Generated type interfaces (auto-generated bymoon info)
- Each block is separated by
///| - Use
moon idecommands for code navigation (prefer over grep) - Use
moon doc '<Type>'to explore APIs before implementing - MoonBit code uses snake_case for variables/functions (lowercase only)
- UpperCamelCase for types, enums, and enum variants
nobreak(notelse) for functional for-loop exit values- No
returnneeded — last expression is the return value - No
tryneeded for error propagation — automatic (unlike Swift) - Type parameter comes after
fn:fn[T] foo(x: T) -> T - Legacy
function_name!(...)andfunction_name(...)?are deprecated
moon fmt- format codemoon info- update generated package interfaces (.mbti)moon test- run tests. Usemoon test --updateto update snapshots.moon check --deny-warn- type check with warnings as errorsmoon doc '<query>'- discover APIs (more accurate than grep)moon ide peek-def <Symbol>- show symbol definitionmoon ide find-references <Symbol>- find all references
make all