@@ -3,6 +3,7 @@ import type { ExecutionContext } from "hono";
3
3
import invariant from "invariant" ;
4
4
import type { ActorKey , ActorRouter , Registry , RunConfig } from "rivetkit" ;
5
5
import { createActorRouter , createClientWithDriver } from "rivetkit" ;
6
+ import type { ActorDriver } from "rivetkit/driver-helpers" ;
6
7
import { serializeEmptyPersistData } from "rivetkit/driver-helpers" ;
7
8
import {
8
9
CloudflareDurableObjectGlobalState ,
@@ -38,6 +39,7 @@ export type DurableObjectConstructor = new (
38
39
39
40
interface LoadedActor {
40
41
actorRouter : ActorRouter ;
42
+ actorDriver : ActorDriver ;
41
43
}
42
44
43
45
export function createActorDurableObject (
@@ -135,6 +137,7 @@ export function createActorDurableObject(
135
137
// Save actor
136
138
this . #actor = {
137
139
actorRouter,
140
+ actorDriver,
138
141
} ;
139
142
140
143
// Initialize the actor instance with proper metadata
@@ -174,23 +177,9 @@ export function createActorDurableObject(
174
177
}
175
178
176
179
async alarm ( ) : Promise < void > {
177
- await this . #loadActor( ) ;
180
+ const { actorDriver } = await this . #loadActor( ) ;
178
181
const actorId = this . ctx . id . toString ( ) ;
179
182
180
- // Get the actor driver
181
- invariant ( runConfig . driver , "runConfig.driver" ) ;
182
- const managerDriver = runConfig . driver . manager (
183
- registry . config ,
184
- runConfig ,
185
- ) ;
186
- const inlineClient = createClientWithDriver ( managerDriver ) ;
187
- const actorDriver = runConfig . driver . actor (
188
- registry . config ,
189
- runConfig ,
190
- managerDriver ,
191
- inlineClient ,
192
- ) ;
193
-
194
183
// Load the actor instance and trigger alarm
195
184
const actor = await actorDriver . loadActor ( actorId ) ;
196
185
await actor . _onAlarm ( ) ;
0 commit comments