Skip to content

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 ​

100%
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
100%
Mermaid source
flowchart LR
    n0["August libraries"]
    n1["app"]
    n1 -->|"Console.write(value)"| n0
logging package calls
100%
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.

FromToOperationsRead
appAugust libraries1Inputs, results and call sites
interceptorslogging1Inputs, results and call sites
loggingAugust libraries1Inputs, results and call sites
Startupapp3Inputs, 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 entryEvidence
describeCall site · Caller explanation

interceptors → logging ​

1 operation, 2 sites

Logger.log · interface dispatch

Inputs: message: string. Result: void.

Caller or entryEvidence
Audit.aroundCall site · Caller explanation
Audit.aroundCall site · Caller explanation

logging → August libraries ​

1 operation, 1 site

Console.write · interface dispatch

Inputs: value: string. Result: void.

Caller or entryEvidence
ConsoleLogger.logCall site · Caller explanation

Startup → app ​

3 operations, 4 sites

Greeter

Inputs: name: string. Result: Greeter.

Caller or entryEvidence
StartupCall site · Caller explanation

Greeter.greet

No caller-supplied inputs. Result: string.

Caller or entryEvidence
StartupCall site · Caller explanation

describe

Inputs: x: int, label: string. Result: string.

Caller or entryEvidence
StartupCall site · Caller explanation
StartupCall site · Caller explanation

Open a module ​

ModuleRead
app.augFlow and sequences · Explanation
interceptors.augFlow and sequences · Explanation
logging.augFlow and sequences · Explanation
main.augFlow 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.

Last updated:

The world runs on language