Skip to main content

Module firstparty

Module firstparty 

Source
Expand description

First-party standard adapters embedded in the toolchain (v0.17 §4.2).

The bynk conformance surface is shipped with the compiler rather than authored by the user. When a project consumes bynk, the driver injects the adapter source below as a synthetic unit and provides its binding for the selected Platform. The bynk root namespace is reserved (bynk.namespace.reserved) so user code can never collide with it.

Enums§

Platform
The deploy platform — a selection axis distinct from the --target {bundle,workers} emit mode (§6.2). It chooses which bynk-<platform>.ts binding is linked for the bynk surface. v0.17 shipped cloudflare; v0.18 adds node, making the axis observable (and giving v0.19’s platform-lock enforcement a second platform to fire against).

Constants§

BYNK_ADAPTER_SRC
The reserved bynk conformance-surface adapter (env-free core). It has no binding clause — the toolchain supplies one per platform (see Platform::bynk_binding_source).
BYNK_LIST_SRC
bynk.list — combinators over the List kernel (fold, prepend, length, get, foldEff), written in ordinary Bynk (decision 0034): the first real consumer of v0.20a generics, lambdas, and effectful traversal. Order-preserving combinators build with fold + prepend and a final reverse — O(n) builds, never append (which would be O(n²) over the array lowering).
BYNK_MAP_SRC
bynk.map — combinators over the Map kernel (empty, insert, get, keys, length). fromList is deliberately absent: Bynk has no pair type to spell a List[(K, V)] with, so map construction is Map.empty()
BYNK_STRING_SRC
bynk.string — Bynk-written helpers over the v0.22a string kernel (concat, the List fold, and the Option kernel methods). The kernel itself is compiler built-in (ADR 0046); only derived helpers live here. join folds to Option[String] so empty-string elements are joined faithfully (a bare "" accumulator could not tell “nothing yet” from “first element was empty”).
BYNK_UNIT
The unit name of the reserved first-party surface adapter.
CLOUDFLARE_ADAPTER_SRC
The first-party Cloudflare platform adapter (v0.19): the platform’s real infrastructure capabilities, as they are — no portable intersection (decision 0016). The v0.19 surface was the minimal, collection-free Kv (decision 0023); v0.23 adds the list drain and putTtl (0050/0051); structured values are v0.22-codec composition, and Queue remains its own future increment. Like the bynk surface it has no binding clause — the toolchain supplies the binding.
CLOUDFLARE_BINDING_FILENAME
The output path of the Cloudflare platform adapter’s binding module, beside the adapter’s emitted bynk/cloudflare.ts (distinct from the bynk surface’s per-platform bynk-cloudflare.ts).
CLOUDFLARE_UNIT
The unit name of the first-party Cloudflare platform adapter (v0.19, decision 0026): inside the reserved bynk.* prefix, so no separate reservation rule is needed. The surface unit bynk stays the portability marker; bynk.<platform> units are the platform-locked ones.
KV_BINDING_NAME
The fixed Worker binding name for the Kv namespace (decision C1, v0.19): one namespace, one [[kv_namespaces]] stanza, one env.KV field.
LIST_UNIT
The unit names of the first-party collection commons (v0.20b): the Bynk-written combinator stdlib over the built-in List/Map kernel. Inside the reserved bynk.* prefix; injected when uses-imported.
MAP_UNIT
STRING_UNIT
Inside the reserved bynk.* prefix; injected when uses-imported.

Functions§

cloudflare_binding_source
The toolchain-supplied binding for the Cloudflare platform adapter.
platform_of
v0.19 decision 0024: which first-party units are platform-native — consuming one locks its deployment unit to the returned platform. This is the metadata that drives effective-platform computation, env resource typing, and wrangler.toml stanza derivation; no user-facing marker syntax exists (additive later, when third-party platform adapters become a goal).
provider_takes_env
v0.18 decision 0021 / v0.19 decision 0025: which first-party provider classes take the Worker env as a constructor argument, keyed by (unit, provider class). SecretsProvider accepts an optional env with a globalThis probe fallback; WorkersKv requires env on use — KV namespaces exist only on the Worker env, never on globalThis.