Everyday workflow
The Noodle command-line tool works with package directories and program entry
files. A directory containing .nl files is already a package; it does not
need an nlpkg.json manifest unless it has package-level configuration.
Check a package
Section titled “Check a package”noodle check hellocheck loads every module in the package and reports syntax, type, and other
compile-time diagnostics. Use it for the fastest feedback when you do not need
JavaScript output.
Build a package
Section titled “Build a package”noodle build hellobuild checks the package and writes derived artifacts under hello/.nlc/.
Noodle emits ordinary modular JavaScript ESM: source modules remain visible as
separate generated modules instead of being bundled into one user-program
file.
The .nlc directory is generated state. Do not treat its contents as source
files or handwritten public interfaces.
Run an entry file
Section titled “Run an entry file”noodle run hello/hello.nlrun receives a source file rather than a package directory. The selected
file must declare exactly one non-generic main function with no parameters
and a Unit result. An asynchronous main is also supported.
Run package tests
Section titled “Run package tests”noodle test hellotest checks the package, discovers its test declarations, and runs them in
a separate test target. Tests may use private declarations from their own
module and do not become part of production module exports.
Continue with the language overview.