MoonBit package configuration parser
Dependencies
///|
test "parse moon.mod" {
let source =
#|name = "example/app"
#|version = "0.1.0"
#|import { "moonbitlang/x@0.4.6" }
#|
let (ast, reports) = @moon_config.parse_moon_mod(source)
assert_eq(reports.length(), 0) // no error
json_inspect(ast.to_json(), content={
"name": "example/app",
"version": "0.1.0",
"deps": { "moonbitlang/x": "0.4.6" },
})
}///|
test "parse moon.pkg" {
let source =
#|import {
#| "moonbitlang/core/json" @json,
#|}
#|options(
#| "is-main": true,
#|)
#|
let (ast, reports) = @moon_config.parse_moon_pkg(source)
assert_eq(reports.length(), 0) // no error
json_inspect(ast.to_json(), content={
"import": [{ "path": "moonbitlang/core/json", "alias": "json" }],
"is-main": true,
})
}///|
test "parse moon.work" {
let source =
#|members = ["./app", "./shared"]
#|preferred_target = "native"
#|
let (ast, reports) = @moon_config.parse_moon_work(source)
assert_eq(reports.length(), 0) // no error
json_inspect(ast.to_json(), content={
"members": ["./app", "./shared"],
"preferred_target": "native",
})
}MoonBit package configuration parser
Dependencies