@sms/host-cloudflare
Interfaces
CloudflareApp
Defined in: packages/drivers/host/cloudflare/src/index.ts:72
Type Parameters
| Type Parameter |
|---|
Env |
Properties
DurableObject
DurableObject: (state, env) => {
fetch: Promise<Response>;
};
Defined in: packages/drivers/host/cloudflare/src/index.ts:78
The Durable Object class: export { TenantKernel } under the name in wrangler.toml.
Parameters
| Parameter | Type |
|---|---|
state | DurableObjectStateLike |
env | Env |
Returns
{
fetch: Promise<Response>;
}
fetch()
fetch(request): Promise<Response>;
Parameters
| Parameter | Type |
|---|---|
request | Request |
Returns
Promise<Response>
Methods
fetch()
fetch(request, env): Promise<Response>;
Defined in: packages/drivers/host/cloudflare/src/index.ts:74
The Worker’s fetch handler: export default { fetch, scheduled }.
Parameters
| Parameter | Type |
|---|---|
request | Request |
env | Env |
Returns
Promise<Response>
scheduled()
scheduled(event, env): Promise<Record<string, unknown>>;
Defined in: packages/drivers/host/cloudflare/src/index.ts:76
The Worker’s cron handler: ticks every tenant from opts.tenants, in parallel. Returns per-tenant results.
Parameters
| Parameter | Type |
|---|---|
event | ScheduledEventLike |
env | Env |
Returns
Promise<Record<string, unknown>>
CloudflareAppOptions
Defined in: packages/drivers/host/cloudflare/src/index.ts:39
Type Parameters
| Type Parameter |
|---|
Env |
Properties
binding
binding: keyof Env & string;
Defined in: packages/drivers/host/cloudflare/src/index.ts:48
Name of the Durable Object binding in wrangler.toml, e.g. TENANT.
onMissing?
optional onMissing?: (request) => Response | Promise<Response>;
Defined in: packages/drivers/host/cloudflare/src/index.ts:62
Response for requests with no tenant. Default 400.
Parameters
| Parameter | Type |
|---|---|
request | Request |
Returns
Response | Promise<Response>
resolve
resolve: (request, env) => string | Promise<string | undefined> | undefined;
Defined in: packages/drivers/host/cloudflare/src/index.ts:41
Which tenant a request belongs to (header, subdomain, path, JWT…). env is there for ROOT_DOMAIN-style config.
Parameters
| Parameter | Type |
|---|---|
request | Request |
env | Env |
Returns
string | Promise<string | undefined> | undefined
store?
optional store?: (ctx) =>
| Store
| Promise<Store>;
Defined in: packages/drivers/host/cloudflare/src/index.ts:60
Open the tenant’s Store. Default: @sms/store-do on the Durable Object’s own SQLite. Override to put
a tenant on D1 (openD1Store(env[binding]) from @sms/store-d1, one database per tenant) or anything
else reachable from the DO; the DO still serialises the tenant’s requests.
Parameters
| Parameter | Type |
|---|---|
ctx | { env: Env; state: DurableObjectStateLike; tenantId: string; } |
ctx.env | Env |
ctx.state | DurableObjectStateLike |
ctx.tenantId | string |
Returns
tenant
tenant: (ctx) => TenantApp | Promise<TenantApp>;
Defined in: packages/drivers/host/cloudflare/src/index.ts:54
Boot the tenant’s application on store (already open on the DO’s SQLite) and return its request
handler — typically createBaseline({ store, executor, model, plugins, … }) from @sms/baseline.
Called once per Durable Object lifetime.
Parameters
| Parameter | Type |
|---|---|
ctx | { env: Env; store: Store; tenantId: string; } |
ctx.env | Env |
ctx.store | Store |
ctx.tenantId | string |
Returns
TenantApp | Promise<TenantApp>
tenants?
optional tenants?: (env) => string[] | Promise<string[]>;
Defined in: packages/drivers/host/cloudflare/src/index.ts:46
Tenants to tick from the Worker’s cron trigger (scheduled). Only these run scheduled jobs — a
Durable Object cannot enumerate itself. Absent: scheduled is a no-op.
Parameters
| Parameter | Type |
|---|---|
env | Env |
Returns
string[] | Promise<string[]>
DurableObjectNamespaceLike
Defined in: packages/drivers/host/cloudflare/src/index.ts:24
Methods
get()
get(id): DurableObjectStubLike;
Defined in: packages/drivers/host/cloudflare/src/index.ts:26
Parameters
| Parameter | Type |
|---|---|
id | unknown |
Returns
idFromName()
idFromName(name): unknown;
Defined in: packages/drivers/host/cloudflare/src/index.ts:25
Parameters
| Parameter | Type |
|---|---|
name | string |
Returns
unknown
DurableObjectStateLike
Defined in: packages/drivers/host/cloudflare/src/index.ts:17
Properties
id
id: {
name?: string;
toString: string;
};
Defined in: packages/drivers/host/cloudflare/src/index.ts:19
name?
optional name?: string;
toString()
toString(): string;
Returns
string
storage
storage: {
sql: SqlStorageLike;
};
Defined in: packages/drivers/host/cloudflare/src/index.ts:18
sql
sql: SqlStorageLike;
DurableObjectStubLike
Defined in: packages/drivers/host/cloudflare/src/index.ts:21
Methods
fetch()
fetch(request): Promise<Response>;
Defined in: packages/drivers/host/cloudflare/src/index.ts:22
Parameters
| Parameter | Type |
|---|---|
request | Request |
Returns
Promise<Response>
ScheduledEventLike
Defined in: packages/drivers/host/cloudflare/src/index.ts:34
Properties
cron?
optional cron?: string;
Defined in: packages/drivers/host/cloudflare/src/index.ts:35
scheduledTime?
optional scheduledTime?: number;
Defined in: packages/drivers/host/cloudflare/src/index.ts:36
TenantApp
Defined in: packages/drivers/host/cloudflare/src/index.ts:66
What a tenant boot returns: at least a fetch-style handler (a Baseline satisfies this).
Properties
handle
handle: RequestHandler;
Defined in: packages/drivers/host/cloudflare/src/index.ts:67
Methods
tick()?
optional tick(now?): Promise<unknown>;
Defined in: packages/drivers/host/cloudflare/src/index.ts:69
Run due scheduled jobs; called by the cron trigger.
Parameters
| Parameter | Type |
|---|---|
now? | number |
Returns
Promise<unknown>
Variables
TENANT_HEADER
const TENANT_HEADER: "x-sms-tenant" = 'x-sms-tenant';
Defined in: packages/drivers/host/cloudflare/src/index.ts:29
Functions
createCloudflareApp()
function createCloudflareApp<Env>(opts): CloudflareApp<Env>;
Defined in: packages/drivers/host/cloudflare/src/index.ts:84
Type Parameters
| Type Parameter |
|---|
Env extends Record<string, unknown> |
Parameters
| Parameter | Type |
|---|---|
opts | CloudflareAppOptions<Env> |
Returns
CloudflareApp<Env>