Function and constructor middleware diagrams
Function and constructor middleware
Start with how the application begins, then follow data between its folders. Open an operation to see its decisions, calls, failures and cleanup. Its explanation supplies the exact contract and linked dependencies.
This view includes 4 application source files. Package and interface boundaries show checked contracts; their runtime implementations are not expanded. The views describe the checked program, not desired requirements or a recorded execution.
Where execution begins
Providers
Console is provided by SystemConsole. The same instance is shared. Logger is provided by ConsoleLogger. The same instance is shared.
Startup
It prints describe with label "value" and x 6 using injected Logger for logger and Console for console. If this work raises ValidationError, it prints "rejected". It sets greeter to a Greeter with name "AugScript" using injected Logger for _logger. It prints greeter.greet using injected Logger for logger and Console for console. source
It tries to call describe with x -1 and label "invalid" using injected Logger for logger and Console for console. If this work raises ValidationError, it prints "rejected". source
Data flow
Mermaid source
flowchart TD
n0["app"]
n1["interceptors"]
n2["logging"]
n3["Startup"]
n1 -->|"Logger.log(message)"| n2
n3 -->|"Greeter(name) / Greeter.greet + 1 more → Greeter / string"| n0
Package boundaries
app package calls
Mermaid source
flowchart LR
n0["August libraries"]
n1["app"]
n1 -->|"Console.write(value)"| n0
logging package calls
Mermaid source
flowchart LR
n0["August libraries"]
n1["logging"]
n1 -->|"Console.write(value)"| n0
Follow the data
Each row opens the complete operations and call sites behind one pair of logical units. A grouped arrow records calls between those units; connected arrows need not belong to the same execution path.
| From | To | Operations | Read |
|---|---|---|---|
| app | August libraries | 1 | Inputs, results and call sites |
| interceptors | logging | 1 | Inputs, results and call sites |
| logging | August libraries | 1 | Inputs, results and call sites |
| Startup | app | 3 | Inputs, results and call sites |
Data crossing these boundaries (6 contracts)
app → August libraries
1 operation, 1 site
Console.write · interface dispatch
Inputs: value: int. Result: void.
| Caller or entry | Evidence |
|---|---|
| describe | Call site · Caller explanation |
interceptors → logging
1 operation, 2 sites
Logger.log · interface dispatch
Inputs: message: string. Result: void.
| Caller or entry | Evidence |
|---|---|
| Audit.around | Call site · Caller explanation |
| Audit.around | Call site · Caller explanation |
logging → August libraries
1 operation, 1 site
Console.write · interface dispatch
Inputs: value: string. Result: void.
| Caller or entry | Evidence |
|---|---|
| ConsoleLogger.log | Call site · Caller explanation |
Startup → app
3 operations, 4 sites
Inputs: name: string. Result: Greeter.
| Caller or entry | Evidence |
|---|---|
| Startup | Call site · Caller explanation |
No caller-supplied inputs. Result: string.
| Caller or entry | Evidence |
|---|---|
| Startup | Call site · Caller explanation |
Inputs: x: int, label: string. Result: string.
| Caller or entry | Evidence |
|---|---|
| Startup | Call site · Caller explanation |
| Startup | Call site · Caller explanation |
Open a module
| Module | Read |
|---|---|
| app.aug | Flow and sequences · Explanation |
| interceptors.aug | Flow and sequences · Explanation |
| logging.aug | Flow and sequences · Explanation |
| main.aug | Flow and sequences · Explanation |
These are static call boundaries, not a request trace. Interface implementations and foreign internals stop at their checked contracts. Dotted arrows defer a callback or browser action. Imports alone do not imply a call.