mirror of
https://github.com/djdevin/recflare.git
synced 2026-09-10 07:31:27 -07:00
misc cleanup
This commit is contained in:
@@ -121,7 +121,7 @@ function toSelfAccountDto(account: Account) {
|
|||||||
const HUB_INSTANCE = 'global'
|
const HUB_INSTANCE = 'global'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Push the notifications that follow an account mutation, mirroring the C#/Go
|
* Push the notifications that follow an account mutation, mirroring the reference
|
||||||
* hub behavior: the owner receives `SelfAccountUpdate` and `AccountUpdate`, and
|
* hub behavior: the owner receives `SelfAccountUpdate` and `AccountUpdate`, and
|
||||||
* every connected client receives an `AccountUpdate` broadcast. Hub failures are
|
* every connected client receives an `AccountUpdate` broadcast. Hub failures are
|
||||||
* logged and swallowed — the account write has already committed, so a hub
|
* logged and swallowed — the account write has already committed, so a hub
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* Default player settings seeded on a player's first read, ported verbatim from
|
* Default player settings seeded on a player's first read, ported verbatim from
|
||||||
* the C# `PlayerSettingsController.GetPlayerSettings`. Ordered; written to KV the
|
* the reference's `PlayerSettingsController.GetPlayerSettings`. Ordered; written to KV the
|
||||||
* first time a player has no stored settings.
|
* first time a player has no stored settings.
|
||||||
*/
|
*/
|
||||||
export const DEFAULT_SETTINGS: Array<{ Key: string; Value: string }> = [
|
export const DEFAULT_SETTINGS: Array<{ Key: string; Value: string }> = [
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
-- Room instances — live sessions of a room. Stored as a JSON blob in `data` with
|
-- Room instances — live sessions of a room. Stored as a JSON blob in `data` with
|
||||||
-- generated (virtual) columns for every field (snake_case, per the C# `[Column]`
|
-- generated (virtual) columns for every field (snake_case, per the reference's `[Column]`
|
||||||
-- names), the same pattern as the rooms/accounts tables. `id` (roomInstanceId) is
|
-- names), the same pattern as the rooms/accounts tables. `id` (roomInstanceId) is
|
||||||
-- a sequential key held in the blob. Generated from src/room-instance-db.ts
|
-- a sequential key held in the blob. Generated from src/room-instance-db.ts
|
||||||
-- (SCHEMA_DDL) — keep in sync. Written/read by the match worker.
|
-- (SCHEMA_DDL) — keep in sync. Written/read by the match worker.
|
||||||
|
|||||||
@@ -1058,7 +1058,7 @@ describe('rooms endpoints', () => {
|
|||||||
expect(created.roomInstanceId).toBeGreaterThan(0)
|
expect(created.roomInstanceId).toBeGreaterThan(0)
|
||||||
expect(created.roomId).toBe(2)
|
expect(created.roomId).toBe(2)
|
||||||
expect(created.isPrivate).toBe(true)
|
expect(created.isPrivate).toBe(true)
|
||||||
expect(created.EncryptVoiceChat).toBe(true) // PascalCase JSON key, per the C#
|
expect(created.EncryptVoiceChat).toBe(true) // PascalCase JSON key, per the reference
|
||||||
|
|
||||||
// Reads back identically; JsonIgnore columns are not in the DTO.
|
// Reads back identically; JsonIgnore columns are not in the DTO.
|
||||||
const fetched = await getRoomInstance(env.DB, created.roomInstanceId)
|
const fetched = await getRoomInstance(env.DB, created.roomInstanceId)
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import { useWorkersLogger } from 'workers-tagged-logger'
|
|||||||
|
|
||||||
import { withOnError } from '@repo/hono-helpers'
|
import { withOnError } from '@repo/hono-helpers'
|
||||||
|
|
||||||
|
import { NotificationType } from '../../notify/src/notification-types'
|
||||||
import { docsPage, fetchSpec } from './docs'
|
import { docsPage, fetchSpec } from './docs'
|
||||||
import { accountsBase, apiBase, authBase, imgBase, notifyBase, postForm } from './upstream'
|
import { accountsBase, apiBase, authBase, imgBase, notifyBase, postForm } from './upstream'
|
||||||
|
|
||||||
@@ -37,9 +38,6 @@ const WEB_PLATFORM = '4'
|
|||||||
*/
|
*/
|
||||||
const ADMIN_ROLES = new Set(['developer', 'moderator'])
|
const ADMIN_ROLES = new Set(['developer', 'moderator'])
|
||||||
|
|
||||||
/** `NotificationType.ServerMaintenance` in the notify worker's enum. */
|
|
||||||
const SERVER_MAINTENANCE = 25
|
|
||||||
|
|
||||||
/** Cookie flags for the session token. `secure` is dropped for local http dev. */
|
/** Cookie flags for the session token. `secure` is dropped for local http dev. */
|
||||||
function sessionCookieOptions(c: Context<App>, maxAge: number): CookieOptions {
|
function sessionCookieOptions(c: Context<App>, maxAge: number): CookieOptions {
|
||||||
const local = c.env.ENVIRONMENT === 'development' || c.env.ENVIRONMENT === 'VITEST'
|
const local = c.env.ENVIRONMENT === 'development' || c.env.ENVIRONMENT === 'VITEST'
|
||||||
@@ -247,7 +245,7 @@ const app = new Hono<App>()
|
|||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: { 'content-type': 'application/json', authorization: `Bearer ${token}` },
|
headers: { 'content-type': 'application/json', authorization: `Bearer ${token}` },
|
||||||
body: JSON.stringify({
|
body: JSON.stringify({
|
||||||
notificationType: SERVER_MAINTENANCE,
|
notificationType: NotificationType.ServerMaintenance,
|
||||||
data: { StartsInMinutes: startsIn },
|
data: { StartsInMinutes: startsIn },
|
||||||
}),
|
}),
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -2,12 +2,12 @@
|
|||||||
* Room instances — live sessions of a room. Stored with the same JSON-blob pattern
|
* Room instances — live sessions of a room. Stored with the same JSON-blob pattern
|
||||||
* as the rooms/accounts tables: the full instance is a JSON blob in `data`, and
|
* as the rooms/accounts tables: the full instance is a JSON blob in `data`, and
|
||||||
* every field is a SQLite generated (virtual) column extracted from it (snake_case
|
* every field is a SQLite generated (virtual) column extracted from it (snake_case
|
||||||
* per the C# `[Column]` names). `id` is a sequential key held in the blob.
|
* per the reference's `[Column]` names). `id` is a sequential key held in the blob.
|
||||||
*
|
*
|
||||||
* The `rooms` worker owns the schema (migrations/0004_room_instance.sql); the
|
* The `rooms` worker owns the schema (migrations/0004_room_instance.sql); the
|
||||||
* `match` worker finds/creates instances here at matchmake time. This module is the
|
* `match` worker finds/creates instances here at matchmake time. This module is the
|
||||||
* single source of truth for the helpers — both workers import it from
|
* single source of truth for the helpers — both workers import it from
|
||||||
* `@repo/domain`. Columns marked `[JsonIgnore]` in the C# (owner_account_id,
|
* `@repo/domain`. Columns marked `[JsonIgnore]` in the reference (owner_account_id,
|
||||||
* data_blob, allow_new_users, join_disabled) live in the blob but are dropped from
|
* data_blob, allow_new_users, join_disabled) live in the blob but are dropped from
|
||||||
* the client DTO (`toDto`).
|
* the client DTO (`toDto`).
|
||||||
*/
|
*/
|
||||||
@@ -63,7 +63,7 @@ export interface RoomInstanceDto {
|
|||||||
roomCode: string
|
roomCode: string
|
||||||
roomInstanceType: number
|
roomInstanceType: number
|
||||||
clubId: number
|
clubId: number
|
||||||
// PascalCase JSON key, per the C# `[JsonPropertyName("EncryptVoiceChat")]`.
|
// PascalCase JSON key, per the reference's `[JsonPropertyName("EncryptVoiceChat")]`.
|
||||||
EncryptVoiceChat: boolean
|
EncryptVoiceChat: boolean
|
||||||
matchmakingPolicy: number
|
matchmakingPolicy: number
|
||||||
createdAt: string
|
createdAt: string
|
||||||
|
|||||||
Generated
+3
@@ -231,6 +231,9 @@ importers:
|
|||||||
'@repo/hono-helpers':
|
'@repo/hono-helpers':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../../packages/hono-helpers
|
version: link:../../packages/hono-helpers
|
||||||
|
'@repo/jwt':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../../packages/jwt
|
||||||
hono:
|
hono:
|
||||||
specifier: 4.12.27
|
specifier: 4.12.27
|
||||||
version: 4.12.27
|
version: 4.12.27
|
||||||
|
|||||||
Reference in New Issue
Block a user