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
1.5 KiB
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.