Files
Toju/toju-app/src/app/shared-kernel/README.md
Myx 66c6f34cd3
All checks were successful
Queue Release Build / prepare (push) Successful in 21s
Deploy Web Apps / deploy (push) Successful in 5m14s
Queue Release Build / build-windows (push) Successful in 16m18s
Queue Release Build / build-linux (push) Successful in 29m20s
Queue Release Build / finalize (push) Successful in 36s
feat: Add game activity status (Experimental)
2026-04-27 11:02:34 +02:00

1.5 KiB

Shared Kernel

Types and constants that are intentionally shared across multiple bounded contexts (domains). Changing anything here affects every consumer, so changes require coordination.

Files

File Contents
user.models.ts User, UserStatus, UserRole, RoomMember
room.models.ts Room, RoomSettings, RoomPermissions, Channel, ChannelType
message.models.ts Message, Reaction, DELETED_MESSAGE_CONTENT
moderation.models.ts BanEntry
voice-state.models.ts VoiceState, ScreenShareState
game-activity.models.ts GameActivity, MatchedGame, game-match API response contract
chat-events.ts ChatEventType, ChatEvent, ChatInventoryItem
direct-message-contracts.ts DirectMessage, delivery status, P2P DM event payloads
media-preferences.ts LatencyProfile, ScreenShareQuality, quality presets
signaling-contracts.ts SignalingMessage, SignalingMessageType
attachment-contracts.ts ChatAttachmentAnnouncement, ChatAttachmentMeta

When to add here vs. in a domain

Add to shared-kernel when a type is referenced by two or more domains or by infrastructure + store. If a type is only used inside one domain, keep it in that domain's domain/ folder.

Backward compatibility

core/models/index.ts re-exports everything from this folder so existing import { X } from 'core/models' lines keep working. New code should import directly from shared-kernel/ for clarity.