Skip to content

Commit 8100458

Browse files
committed
feat: [DT-037] - [F36] Restore *ContextOf type helpers as a type-only module
1 parent ff17591 commit 8100458

9 files changed

Lines changed: 405 additions & 3 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@
6767
- Restored `Registry.handler(request)` and `Registry.serve()` for the native serverless runner endpoint described in `.agent/specs/serverless-restoration.md`. The route surface is `/api/rivet`, `/api/rivet/health`, `/api/rivet/metadata`, and `/api/rivet/start`; user traffic still goes through the Rivet Engine gateway.
6868
- `Registry.start()` now starts the native envoy path only. Built-in `staticDir` serving is not wired through the native engine subprocess yet and remains a follow-up.
6969
- Restored the supported `rivetkit/test`, `rivetkit/inspector`, and `rivetkit/inspector/client` entrypoints. `rivetkit/test` now waits for the native envoy metadata endpoint instead of the removed TypeScript in-memory runtime.
70+
- Restored the zero-runtime `*ContextOf` helper types on the root `rivetkit` export so patterns like `ActionContextOf<typeof myActor>` work again. `PATH_CONNECT`, `PATH_WEBSOCKET_PREFIX`, `KV_KEYS`, `ActorKv`, `ActorInstance`, `ActorRouter`, `createActorRouter`, and `routeWebSocket` stay removed.
7071
- `rivetkit/driver-helpers` and `rivetkit/driver-helpers/websocket` stay removed. They only exposed internal runtime/router helpers; migrate to the public `rivetkit`, `rivetkit/client`, and engine-client APIs instead of importing package internals.
7172
- `rivetkit/topologies/*` stays removed. The topology helpers are deleted on this branch; keep custom coordinate/partition logic in app code if you still need it.
7273
- `rivetkit/dynamic` and `rivetkit/sandbox/*` stay permanently removed on this branch. There is no in-package replacement, so move those integrations out of `rivetkit` imports instead of waiting for a hidden subpath to come back.

rivetkit-typescript/CLAUDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
## Context Types Sync
2424

25-
- Keep the `*ContextOf` types exported from `packages/rivetkit/src/actor/contexts/index.ts` in sync with the two docs locations below when adding, removing, or renaming context types.
25+
- Keep the `*ContextOf` types exported from `packages/rivetkit/src/actor/contexts/index.ts` and re-exported by `packages/rivetkit/src/actor/mod.ts` in sync with the two docs locations below when adding, removing, or renaming context types.
2626

2727
- `website/src/content/docs/actors/types.mdx` — public docs page
2828
- `website/src/content/docs/actors/index.mdx` — crash course (Context Types section)
Lines changed: 292 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,292 @@
1+
import type {
2+
ActionContext,
3+
BeforeActionResponseContext,
4+
BeforeConnectContext,
5+
ConnectContext,
6+
CreateConnStateContext,
7+
CreateContext,
8+
CreateVarsContext,
9+
DestroyContext,
10+
DisconnectContext,
11+
MigrateContext,
12+
RequestContext,
13+
RunContext,
14+
SleepContext,
15+
StateChangeContext,
16+
WakeContext,
17+
WebSocketContext,
18+
} from "@/actor/config";
19+
export type { ActorContextOf } from "@/actor/config";
20+
import type { AnyActorDefinition, BaseActorDefinition } from "@/actor/definition";
21+
import type { AnyDatabaseProvider } from "@/common/database/config";
22+
import type { EventSchemaConfig, QueueSchemaConfig } from "@/actor/schema";
23+
24+
export type ActionContextOf<AD extends AnyActorDefinition> =
25+
AD extends BaseActorDefinition<
26+
infer S,
27+
infer CP,
28+
infer CS,
29+
infer V,
30+
infer I,
31+
infer DB extends AnyDatabaseProvider,
32+
infer E extends EventSchemaConfig,
33+
infer Q extends QueueSchemaConfig,
34+
any
35+
>
36+
? ActionContext<S, CP, CS, V, I, DB, E, Q>
37+
: never;
38+
39+
export type BeforeActionResponseContextOf<AD extends AnyActorDefinition> =
40+
AD extends BaseActorDefinition<
41+
infer S,
42+
infer CP,
43+
infer CS,
44+
infer V,
45+
infer I,
46+
infer DB extends AnyDatabaseProvider,
47+
infer E extends EventSchemaConfig,
48+
infer Q extends QueueSchemaConfig,
49+
any
50+
>
51+
? BeforeActionResponseContext<S, CP, CS, V, I, DB, E, Q>
52+
: never;
53+
54+
export type BeforeConnectContextOf<AD extends AnyActorDefinition> =
55+
AD extends BaseActorDefinition<
56+
infer S,
57+
any,
58+
any,
59+
infer V,
60+
infer I,
61+
infer DB extends AnyDatabaseProvider,
62+
infer E extends EventSchemaConfig,
63+
infer Q extends QueueSchemaConfig,
64+
any
65+
>
66+
? BeforeConnectContext<S, V, I, DB, E, Q>
67+
: never;
68+
69+
export type ConnectContextOf<AD extends AnyActorDefinition> =
70+
AD extends BaseActorDefinition<
71+
infer S,
72+
infer CP,
73+
infer CS,
74+
infer V,
75+
infer I,
76+
infer DB extends AnyDatabaseProvider,
77+
infer E extends EventSchemaConfig,
78+
infer Q extends QueueSchemaConfig,
79+
any
80+
>
81+
? ConnectContext<S, CP, CS, V, I, DB, E, Q>
82+
: never;
83+
84+
export type ConnContextOf<AD extends AnyActorDefinition> =
85+
AD extends BaseActorDefinition<
86+
infer S,
87+
infer CP,
88+
infer CS,
89+
infer V,
90+
infer I,
91+
infer DB extends AnyDatabaseProvider,
92+
infer E extends EventSchemaConfig,
93+
infer Q extends QueueSchemaConfig,
94+
any
95+
>
96+
? ActionContext<S, CP, CS, V, I, DB, E, Q>
97+
: never;
98+
99+
export type ConnInitContextOf<AD extends AnyActorDefinition> =
100+
AD extends BaseActorDefinition<
101+
infer S,
102+
any,
103+
any,
104+
infer V,
105+
infer I,
106+
infer DB extends AnyDatabaseProvider,
107+
infer E extends EventSchemaConfig,
108+
infer Q extends QueueSchemaConfig,
109+
any
110+
>
111+
? BeforeConnectContext<S, V, I, DB, E, Q>
112+
: never;
113+
114+
export type CreateConnStateContextOf<AD extends AnyActorDefinition> =
115+
AD extends BaseActorDefinition<
116+
infer S,
117+
any,
118+
any,
119+
infer V,
120+
infer I,
121+
infer DB extends AnyDatabaseProvider,
122+
infer E extends EventSchemaConfig,
123+
infer Q extends QueueSchemaConfig,
124+
any
125+
>
126+
? CreateConnStateContext<S, V, I, DB, E, Q>
127+
: never;
128+
129+
export type CreateContextOf<AD extends AnyActorDefinition> =
130+
AD extends BaseActorDefinition<
131+
infer S,
132+
any,
133+
any,
134+
any,
135+
infer I,
136+
infer DB extends AnyDatabaseProvider,
137+
infer E extends EventSchemaConfig,
138+
infer Q extends QueueSchemaConfig,
139+
any
140+
>
141+
? CreateContext<S, I, DB, E, Q>
142+
: never;
143+
144+
export type CreateVarsContextOf<AD extends AnyActorDefinition> =
145+
AD extends BaseActorDefinition<
146+
infer S,
147+
any,
148+
any,
149+
any,
150+
infer I,
151+
infer DB extends AnyDatabaseProvider,
152+
infer E extends EventSchemaConfig,
153+
infer Q extends QueueSchemaConfig,
154+
any
155+
>
156+
? CreateVarsContext<S, I, DB, E, Q>
157+
: never;
158+
159+
export type DestroyContextOf<AD extends AnyActorDefinition> =
160+
AD extends BaseActorDefinition<
161+
infer S,
162+
infer CP,
163+
infer CS,
164+
infer V,
165+
infer I,
166+
infer DB extends AnyDatabaseProvider,
167+
infer E extends EventSchemaConfig,
168+
infer Q extends QueueSchemaConfig,
169+
any
170+
>
171+
? DestroyContext<S, CP, CS, V, I, DB, E, Q>
172+
: never;
173+
174+
export type DisconnectContextOf<AD extends AnyActorDefinition> =
175+
AD extends BaseActorDefinition<
176+
infer S,
177+
infer CP,
178+
infer CS,
179+
infer V,
180+
infer I,
181+
infer DB extends AnyDatabaseProvider,
182+
infer E extends EventSchemaConfig,
183+
infer Q extends QueueSchemaConfig,
184+
any
185+
>
186+
? DisconnectContext<S, CP, CS, V, I, DB, E, Q>
187+
: never;
188+
189+
export type MigrateContextOf<AD extends AnyActorDefinition> =
190+
AD extends BaseActorDefinition<
191+
infer S,
192+
infer CP,
193+
infer CS,
194+
infer V,
195+
infer I,
196+
infer DB extends AnyDatabaseProvider,
197+
infer E extends EventSchemaConfig,
198+
infer Q extends QueueSchemaConfig,
199+
any
200+
>
201+
? MigrateContext<S, CP, CS, V, I, DB, E, Q>
202+
: never;
203+
204+
export type RequestContextOf<AD extends AnyActorDefinition> =
205+
AD extends BaseActorDefinition<
206+
infer S,
207+
infer CP,
208+
infer CS,
209+
infer V,
210+
infer I,
211+
infer DB extends AnyDatabaseProvider,
212+
infer E extends EventSchemaConfig,
213+
infer Q extends QueueSchemaConfig,
214+
any
215+
>
216+
? RequestContext<S, CP, CS, V, I, DB, E, Q>
217+
: never;
218+
219+
export type RunContextOf<AD extends AnyActorDefinition> =
220+
AD extends BaseActorDefinition<
221+
infer S,
222+
infer CP,
223+
infer CS,
224+
infer V,
225+
infer I,
226+
infer DB extends AnyDatabaseProvider,
227+
infer E extends EventSchemaConfig,
228+
infer Q extends QueueSchemaConfig,
229+
any
230+
>
231+
? RunContext<S, CP, CS, V, I, DB, E, Q>
232+
: never;
233+
234+
export type SleepContextOf<AD extends AnyActorDefinition> =
235+
AD extends BaseActorDefinition<
236+
infer S,
237+
infer CP,
238+
infer CS,
239+
infer V,
240+
infer I,
241+
infer DB extends AnyDatabaseProvider,
242+
infer E extends EventSchemaConfig,
243+
infer Q extends QueueSchemaConfig,
244+
any
245+
>
246+
? SleepContext<S, CP, CS, V, I, DB, E, Q>
247+
: never;
248+
249+
export type StateChangeContextOf<AD extends AnyActorDefinition> =
250+
AD extends BaseActorDefinition<
251+
infer S,
252+
infer CP,
253+
infer CS,
254+
infer V,
255+
infer I,
256+
infer DB extends AnyDatabaseProvider,
257+
infer E extends EventSchemaConfig,
258+
infer Q extends QueueSchemaConfig,
259+
any
260+
>
261+
? StateChangeContext<S, CP, CS, V, I, DB, E, Q>
262+
: never;
263+
264+
export type WakeContextOf<AD extends AnyActorDefinition> =
265+
AD extends BaseActorDefinition<
266+
infer S,
267+
infer CP,
268+
infer CS,
269+
infer V,
270+
infer I,
271+
infer DB extends AnyDatabaseProvider,
272+
infer E extends EventSchemaConfig,
273+
infer Q extends QueueSchemaConfig,
274+
any
275+
>
276+
? WakeContext<S, CP, CS, V, I, DB, E, Q>
277+
: never;
278+
279+
export type WebSocketContextOf<AD extends AnyActorDefinition> =
280+
AD extends BaseActorDefinition<
281+
infer S,
282+
infer CP,
283+
infer CS,
284+
infer V,
285+
infer I,
286+
infer DB extends AnyDatabaseProvider,
287+
infer E extends EventSchemaConfig,
288+
infer Q extends QueueSchemaConfig,
289+
any
290+
>
291+
? WebSocketContext<S, CP, CS, V, I, DB, E, Q>
292+
: never;

rivetkit-typescript/packages/rivetkit/src/actor/mod.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,24 @@ export {
3535
UserError,
3636
type UserErrorOptions,
3737
} from "./errors";
38+
export type {
39+
ActionContextOf,
40+
BeforeActionResponseContextOf,
41+
BeforeConnectContextOf,
42+
ConnectContextOf,
43+
ConnContextOf,
44+
ConnInitContextOf,
45+
CreateConnStateContextOf,
46+
CreateContextOf,
47+
CreateVarsContextOf,
48+
DestroyContextOf,
49+
DisconnectContextOf,
50+
MigrateContextOf,
51+
RequestContextOf,
52+
RunContextOf,
53+
SleepContextOf,
54+
StateChangeContextOf,
55+
WakeContextOf,
56+
WebSocketContextOf,
57+
} from "./contexts";
3858
export { event, queue, type Type } from "./schema";

0 commit comments

Comments
 (0)