Modules
Organize code with the module system.
Import Syntax
import "./path/to/module.unna" as alias;
Path Resolution
Import paths are relative to the importing file, similar to PHP's include or HTML's href.
Same Directory
// main.unna imports helper.unna in same folder
import "./helper.unna" as helper;
Parent Directory
// services/sales.unna imports from models/
import "../models/product.unna" as product;
Example Structure
project/
├── main.unna
├── models/
│ └── product.unna
├── services/
│ └── inventory.unna // imports ../models/product.unna
└── utils/
└── logger.unna
Using Imported Modules
Creating a Module
// utils/logger.unna
function logInfo(msg) {
print("[INFO] " + msg);
}
function logError(msg) {
print("[ERROR] " + msg);
}
Importing and Using
// main.unna
import "./utils/logger.unna" as log;
log.logInfo("Application started");
log.logError("Something went wrong");
Cross-Module Imports
Modules can import other modules:
// services/reporting.unna
import "../utils/logger.unna" as log;
function generateReport(title) {
log.logInfo("Generating: " + title);
return "=== " + title + " ===";
}
Exporting
All top-level functions and variables in a module are automatically exported.