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 whichbynk-<platform>.tsbinding is linked for thebynksurface. v0.17 shippedcloudflare; v0.18 addsnode, making the axis observable (and giving v0.19’s platform-lock enforcement a second platform to fire against).
Constants§
- BYNK_
ADAPTER_ SRC - The reserved
bynkconformance-surface adapter (env-free core). It has nobindingclause — the toolchain supplies one per platform (seePlatform::bynk_binding_source). - BYNK_
LIST_ SRC bynk.list— combinators over theListkernel (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 withfold+prependand a finalreverse— O(n) builds, neverappend(which would be O(n²) over the array lowering).- BYNK_
MAP_ SRC bynk.map— combinators over theMapkernel (empty,insert,get,keys,length).fromListis deliberately absent: Bynk has no pair type to spell aList[(K, V)]with, so map construction isMap.empty()- BYNK_
STRING_ SRC bynk.string— Bynk-written helpers over the v0.22a string kernel (concat, theListfold, and theOptionkernel methods). The kernel itself is compiler built-in (ADR 0046); only derived helpers live here.joinfolds toOption[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 thelistdrain andputTtl(0050/0051); structured values are v0.22-codec composition, andQueueremains its own future increment. Like thebynksurface it has nobindingclause — 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 thebynksurface’s per-platformbynk-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 unitbynkstays 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, oneenv.KVfield. - LIST_
UNIT - The unit names of the first-party collection commons (v0.20b): the
Bynk-written combinator stdlib over the built-in
List/Mapkernel. Inside the reservedbynk.*prefix; injected whenuses-imported. - MAP_
UNIT - STRING_
UNIT - Inside the reserved
bynk.*prefix; injected whenuses-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,
envresource typing, andwrangler.tomlstanza 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
envas a constructor argument, keyed by (unit, provider class).SecretsProvideraccepts an optional env with aglobalThisprobe fallback;WorkersKvrequires env on use — KV namespaces exist only on the Workerenv, never onglobalThis.