-
Notifications
You must be signed in to change notification settings - Fork 844
Open
Description
I'm having some trouble getting a scheduled table (and its reducer) to build.
If they're defined in the same file (as it shows in the documentation):
// schema.ts
export const user_reservation_cleaner = table(
{
name: 'user_reservation_cleaner',
public: false,
scheduled: (): any => release_user_reservation,
},
{
name: t.string().primaryKey(),
scheduled_at: t.scheduleAt(),
},
)
export const db = schema({user_reservation_cleaner})
export const release_user_reservation = db.reducer(
{ arg: user_reservation_cleaner.rowType },
(ctx, { arg }) => {
ctx.db.user_reservation.name.delete(arg.name)
},
)Then I receive the following error when running spacetime generate:
Extracting schema from <project>/spacetimedb/dist/bundle.js...
Error: Uncaught TypeError: Table user_reservation_cleaner defines a schedule, but it seems like the associated function was not exported.
at resolveSchedules (node_modules/spacetimedb/dist/server/index.mjs:7263:15)
at [SpacetimeDB.moduleHooks.v2] (node_modules/spacetimedb/dist/server/index.mjs:7291:22)
Error: could not extract schema
Instead, if I separate the reducer into its own file:
// schema.ts
import { release_user_reservation } from './schedule'
export const user_reservation_cleaner = table(
{
name: 'user_reservation_cleaner',
public: false,
scheduled: (): any => release_user_reservation,
},
{
name: t.string().primaryKey(),
scheduled_at: t.scheduleAt(),
},
)
export const db = schema({user_reservation_cleaner})// schedule.ts
import { db, user_reservation_cleaner } from './schema'
export const release_user_reservation = db.reducer(
{ arg: user_reservation_cleaner.rowType },
(ctx, { arg }) => {
ctx.db.user_reservation.name.delete(arg.name)
},
)I receive the following error:
[CIRCULAR_DEPENDENCY] Warning: Circular dependency: src/schema.ts -> src/schedule.ts -> src/schema.ts.
Build finished successfully.
Extracting schema from <project>/spacetimedb/dist/bundle.js...
Error: Uncaught ReferenceError: Cannot access 'db' before initialization
at <anonymous> (src/schedule.ts:3:41)
Error: could not extract schema
Not sure if this is a bug, or if I'm doing something wrong, any recommendations would be much appreciated!
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels