Converting a Function to a Reusable Effect in TypeScript

any tips on converting this to an Effect I can re-use?
export function withAuthContext<R>(
  sid: string,
  cb: (sql: Kysely.Transaction<DB>) => Promise<R>,
): Promise<R> {
  return authDb.transaction().execute(async tx => {
    await sql`
      select
        set_config('role', ${process.env.DATABASE_VISITOR}, false),
        set_config('my.session_id', ${sid}, true);
    `.execute(tx)
    return cb(tx)
  })
}
Was this page helpful?