Skip to content

Commit 28afd58

Browse files
committed
fix: rivetkit build
1 parent e17b9e9 commit 28afd58

File tree

8 files changed

+73
-108
lines changed

8 files changed

+73
-108
lines changed

rivetkit-typescript/packages/rivetkit/src/actor/instance/queue-manager.ts

Lines changed: 18 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -312,53 +312,6 @@ export class QueueManager<S, CP, CS, V, I, DB extends AnyDatabaseProvider> {
312312
return promise;
313313
}
314314

315-
/** Waits until any message for the provided queue names is available. */
316-
async waitForNames(
317-
names: string[],
318-
abortSignal: AbortSignal,
319-
): Promise<void> {
320-
this.#actor.assertReady();
321-
322-
const nameSet = new Set(names);
323-
const now = Date.now();
324-
const existing = await this.#loadQueueMessages();
325-
if (
326-
existing.some(
327-
(message) =>
328-
nameSet.has(message.name) &&
329-
!message.inFlight &&
330-
message.availableAt <= now,
331-
)
332-
) {
333-
return;
334-
}
335-
336-
const { promise, resolve, reject } = promiseWithResolvers<void>();
337-
const waiterId = crypto.randomUUID();
338-
const waiter: QueueNameWaiter = {
339-
id: waiterId,
340-
nameSet,
341-
resolve,
342-
reject,
343-
signal: abortSignal,
344-
};
345-
346-
const onAbort = () => {
347-
this.#nameWaiters.delete(waiterId);
348-
waiter.reject(new errors.ActorAborted());
349-
};
350-
351-
if (abortSignal.aborted) {
352-
onAbort();
353-
return promise;
354-
}
355-
abortSignal.addEventListener("abort", onAbort, { once: true });
356-
waiter.abortHandler = onAbort;
357-
358-
this.#nameWaiters.set(waiterId, waiter);
359-
return promise;
360-
}
361-
362315
/** Waits for a specific queue message to complete. */
363316
async waitForCompletion(
364317
messageId: bigint,
@@ -610,7 +563,10 @@ export class QueueManager<S, CP, CS, V, I, DB extends AnyDatabaseProvider> {
610563
const keys = messages.map((message) => makeQueueMessageKey(message.id));
611564

612565
// Update metadata
613-
this.#metadata.size = Math.max(0, this.#metadata.size - messages.length);
566+
this.#metadata.size = Math.max(
567+
0,
568+
this.#metadata.size - messages.length,
569+
);
614570

615571
// Delete messages and update metadata
616572
// Note: kvBatchDelete doesn't support mixed operations, so we do two calls
@@ -813,18 +769,19 @@ export class QueueManager<S, CP, CS, V, I, DB extends AnyDatabaseProvider> {
813769
: 0) + 1;
814770
const availableAt = now + this.#computeBackoffMs(failureCount);
815771

816-
const updatedMessage = QUEUE_MESSAGE_VERSIONED.serializeWithEmbeddedVersion(
817-
{
818-
name: decodedPayload.name,
819-
body: decodedPayload.body,
820-
createdAt: decodedPayload.createdAt,
821-
failureCount,
822-
availableAt: BigInt(availableAt),
823-
inFlight: false,
824-
inFlightAt: null,
825-
},
826-
ACTOR_PERSIST_CURRENT_VERSION,
827-
);
772+
const updatedMessage =
773+
QUEUE_MESSAGE_VERSIONED.serializeWithEmbeddedVersion(
774+
{
775+
name: decodedPayload.name,
776+
body: decodedPayload.body,
777+
createdAt: decodedPayload.createdAt,
778+
failureCount,
779+
availableAt: BigInt(availableAt),
780+
inFlight: false,
781+
inFlightAt: null,
782+
},
783+
ACTOR_PERSIST_CURRENT_VERSION,
784+
);
828785

829786
updates.push([key, updatedMessage]);
830787

@@ -892,10 +849,7 @@ export class QueueManager<S, CP, CS, V, I, DB extends AnyDatabaseProvider> {
892849

893850
#computeBackoffMs(failureCount: number): number {
894851
const exp = Math.max(0, failureCount - 1);
895-
const delay = Math.min(
896-
BACKOFF_MAX_MS,
897-
BACKOFF_INITIAL_MS * 2 ** exp,
898-
);
852+
const delay = Math.min(BACKOFF_MAX_MS, BACKOFF_INITIAL_MS * 2 ** exp);
899853
return delay;
900854
}
901855

rivetkit-typescript/packages/rivetkit/src/db/drizzle/mod.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import type { DatabaseProvider, RawAccess } from "../config";
88
import { getSqliteVfs } from "../sqlite-vfs";
99
import type { KvVfsOptions } from "../sqlite-vfs";
1010

11-
export * from "drizzle-orm/sqlite-core";
11+
export * from "./sqlite-core";
1212

1313
import { type Config, defineConfig as originalDefineConfig } from "drizzle-kit";
1414

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
export * from "drizzle-orm/sqlite-core";
2+
export {
3+
blob,
4+
check,
5+
extractUsedTable,
6+
foreignKey,
7+
getTableConfig,
8+
getViewConfig,
9+
index,
10+
integer,
11+
numeric,
12+
primaryKey,
13+
real,
14+
sqliteTable,
15+
sqliteTableCreator,
16+
sqliteView,
17+
text,
18+
unique,
19+
uniqueIndex,
20+
uniqueKeyName,
21+
view,
22+
} from "drizzle-orm/sqlite-core";

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

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { DatabaseProvider, RawAccess } from "./config";
2-
import { getSqliteVfs } from "./sqlite-vfs";
32
import type { KvVfsOptions } from "./sqlite-vfs";
3+
import { getSqliteVfs } from "./sqlite-vfs";
44

55
interface DatabaseFactoryConfig {
66
onMigrate?: (db: RawAccess) => Promise<void> | void;
@@ -65,18 +65,21 @@ export function db({
6565
execute: async (query, ...args) => {
6666
const results: Record<string, unknown>[] = [];
6767
let columnNames: string[] | null = null;
68-
await db.exec(query, (row: unknown[], columns: string[]) => {
69-
// Capture column names on first row
70-
if (!columnNames) {
71-
columnNames = columns;
72-
}
73-
// Convert array row to object
74-
const rowObj: Record<string, unknown> = {};
75-
for (let i = 0; i < row.length; i++) {
76-
rowObj[columnNames[i]] = row[i];
77-
}
78-
results.push(rowObj);
79-
});
68+
await db.exec(
69+
query,
70+
(row: unknown[], columns: string[]) => {
71+
// Capture column names on first row
72+
if (!columnNames) {
73+
columnNames = columns;
74+
}
75+
// Convert array row to object
76+
const rowObj: Record<string, unknown> = {};
77+
for (let i = 0; i < row.length; i++) {
78+
rowObj[columnNames[i]] = row[i];
79+
}
80+
results.push(rowObj);
81+
},
82+
);
8083
return results;
8184
},
8285
close: async () => {

rivetkit-typescript/packages/rivetkit/src/driver-helpers/mod.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
export type { ActorDriver } from "@/actor/driver";
2-
export type { ActorInstance, AnyActorInstance } from "@/actor/instance/mod";
3-
export { generateRandomString } from "@/actor/utils";
42
export { KEYS, makeConnKey } from "@/actor/instance/keys";
3+
export type { ActorInstance, AnyActorInstance } from "@/actor/instance/mod";
54
export {
65
ALLOWED_PUBLIC_HEADERS,
76
HEADER_ACTOR_ID,

rivetkit-typescript/packages/rivetkit/src/drivers/file-system/global-state.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import type { ActorKey } from "@/actor/mod";
66
import type { AnyClient } from "@/client/client";
77
import { type ActorDriver, getInitialActorKvState } from "@/driver-helpers/mod";
88
import type { RegistryConfig } from "@/registry/config";
9-
import type { RunnerConfig } from "@/registry/run-config";
109
import type * as schema from "@/schemas/file-system-driver/mod";
1110
import {
1211
ACTOR_ALARM_VERSIONED,
@@ -33,7 +32,6 @@ import {
3332
ensureDirectoryExistsSync,
3433
getStoragePath,
3534
} from "./utils";
36-
import { RegistryConfig } from "@/registry/config";
3735

3836
// Actor handler to track running instances
3937

@@ -901,10 +899,7 @@ export class FileSystemGlobalState {
901899

902900
try {
903901
// Create actor
904-
const definition = lookupInRegistry(
905-
config,
906-
entry.state.name,
907-
);
902+
const definition = lookupInRegistry(config, entry.state.name);
908903
entry.actor = definition.instantiate();
909904
entry.lifecycleState = ActorLifecycleState.AWAKE;
910905

rivetkit-typescript/packages/rivetkit/src/drivers/file-system/mod.ts

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
import { z } from "zod";
2-
import type { DriverConfig } from "@/registry/run-config";
2+
import type { DriverConfig } from "@/registry/config";
33
import { importNodeDependencies } from "@/utils/node";
44
import { FileSystemActorDriver } from "./actor";
55
import {
6-
FileSystemGlobalState,
76
type FileSystemDriverOptions,
7+
FileSystemGlobalState,
88
} from "./global-state";
99
import { FileSystemManagerDriver } from "./manager";
10-
import { DriverConfig } from "@/registry/config";
1110

1211
export { FileSystemActorDriver } from "./actor";
1312
export { FileSystemGlobalState } from "./global-state";
@@ -45,11 +44,7 @@ export function createFileSystemOrMemoryDriver(
4544
name: persist ? "file-system" : "memory",
4645
displayName: persist ? "File System" : "Memory",
4746
manager: (config) =>
48-
new FileSystemManagerDriver(
49-
config,
50-
state,
51-
driverConfig,
52-
),
47+
new FileSystemManagerDriver(config, state, driverConfig),
5348
actor: (config, managerDriver, inlineClient) => {
5449
const actorDriver = new FileSystemActorDriver(
5550
config,
@@ -58,11 +53,7 @@ export function createFileSystemOrMemoryDriver(
5853
state,
5954
);
6055

61-
state.onRunnerStart(
62-
config,
63-
inlineClient,
64-
actorDriver,
65-
);
56+
state.onRunnerStart(config, inlineClient, actorDriver);
6657

6758
return actorDriver;
6859
},

rivetkit-typescript/packages/rivetkit/src/serve-test-suite/mod.ts

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import { serve as honoServe } from "@hono/node-server";
2-
import { createNodeWebSocket } from "@hono/node-ws";
31
import { createServer } from "node:net";
42
import { fileURLToPath } from "node:url";
3+
import { serve as honoServe } from "@hono/node-server";
4+
import { createNodeWebSocket } from "@hono/node-ws";
55
import invariant from "invariant";
6-
import { buildManagerRouter } from "@/manager/router";
7-
import { createFileSystemOrMemoryDriver } from "@/drivers/file-system/mod";
86
import { logger } from "@/driver-test-suite/log";
7+
import { createFileSystemOrMemoryDriver } from "@/drivers/file-system/mod";
8+
import { buildManagerRouter } from "@/manager/router";
99
import { registry } from "../../fixtures/driver-test-suite/registry";
1010

1111
export interface ServeTestSuiteResult {
@@ -74,10 +74,9 @@ export async function serveTestSuite(): Promise<ServeTestSuiteResult> {
7474
publicEndpoint: `http://127.0.0.1:${port}`,
7575
};
7676

77-
const driver = await createFileSystemOrMemoryDriver(
78-
true,
79-
`/tmp/rivetkit-test-suite-${crypto.randomUUID()}`,
80-
);
77+
const driver = await createFileSystemOrMemoryDriver(true, {
78+
path: `/tmp/rivetkit-test-suite-${crypto.randomUUID()}`,
79+
});
8180
registry.config.driver = driver;
8281

8382
let upgradeWebSocket: any;
@@ -114,7 +113,9 @@ export async function serveTestSuite(): Promise<ServeTestSuiteResult> {
114113
namespace: "default",
115114
runnerName: "default",
116115
close: async () => {
117-
await new Promise((resolve) => server.close(() => resolve(undefined)));
116+
await new Promise((resolve) =>
117+
server.close(() => resolve(undefined)),
118+
);
118119
},
119120
};
120121
}

0 commit comments

Comments
 (0)