Forms
You write these in a signature or after extends; the scan reads them and wires what they say. See What is Fougere.
Repository
class · @fougere/core
The rows of an entity; extended by a handler, it serves list, findById, create, update, delete.
Ex: Repository<Account, Ledger> owns both tables and forwards nothing.
Facade
type · @fougere/core
The facade in front of a handler: it takes what the handler takes, and always answers a promise.
Emit
type · @fougere/core
What an emitter injects; partial, because announcing fills the fact's created() fields.
Fact
type · @fougere/core
What a subscriber accepts; what it answers reaches only an announcer that waits.
Pipe
type · @fougere/core
The same fact before it is final: an op taking one answers what every subscriber then receives.
Collect
class · @fougere/core
Collect<User>: collect fills a parameter of that type, missing refuses when a required one found nothing.
Present
class · @fougere/core
Present<Order>: each method is a computed field, handed the page and answering one value per row.
Together
interface · @fougere/core
Together<[Account, Ledger]> — writes that stand or fall as one.
State
class · @fougere/core
The caller's state, read and written by the names state: declares; signed before it leaves.
Ex: addToCart(id: Product['id'], state: State).
Mirror
class · @fougere/core
A repository that fills itself from a source it cannot query: its author writes pull, refresh(since) writes every page.