@partygame.show/types
Advanced tools
Comparing version 1.0.0-beta.11 to 1.0.0-beta.12
@@ -56,3 +56,3 @@ /** | ||
readonly error: false; | ||
prepare(players: readonly App.HostGamePlayer[], content: Content): Promise<void>; | ||
prepare(players: readonly HostAPI.Player[], content: Content): Promise<void>; | ||
attach<CONTEXT>(ctx: CONTEXT): Promise<CONTEXT>; | ||
@@ -68,3 +68,3 @@ run(): Promise<Map<UserID, number>>; | ||
onStateChange(state: PLAYER_STATE | null): Promise<void>; | ||
onMessage(message: App.PlayerMessage<Messages.Payload, Messages.ReplyPayload>): Promise<void>; | ||
onMessage(message: PlayerAPI.Message<Messages.Payload, Messages.ReplyPayload>): Promise<void>; | ||
onClear(): Promise<void>; | ||
@@ -131,20 +131,9 @@ } | ||
// Developer API | ||
namespace App { | ||
interface Host { | ||
listGames(): Promise<Responses.Games>; | ||
startRoom(): Promise<HostRoom>; | ||
namespace HostAPI { | ||
interface LobbyGuest extends User { | ||
add(): void; | ||
kick(): void; | ||
ban(): void; | ||
} | ||
interface HostRoom { | ||
readonly lobbyCode: LobbyCode; | ||
availableGames(): Promise<readonly Game.Loader[]>; | ||
lobbyOccupants(): Observable<User>; | ||
addUser(userID: UserID): void; | ||
kickUser(userID: UserID): void; | ||
banUser(userID: UserID): void; | ||
occupants(): Observable<[UserID, Observable<User>]>; | ||
startGame(gametype: Gametype): Promise<Game.HostLogic>; | ||
endGame(): void; | ||
getPlayers(): Promise<readonly HostGamePlayer[]>; | ||
} | ||
interface HostGamePlayer<PLAYER_STATE extends {} = object> extends Readonly<User> { | ||
interface Player<PLAYER_STATE extends {} = object> extends User { | ||
state: PLAYER_STATE | null; | ||
@@ -154,28 +143,50 @@ sendMessage<REQUEST extends Messages.Payload, RESPONSE extends Messages.ReplyPayload>(payload: REQUEST, expiresAfter: number): Observable<RESPONSE>; | ||
clearMessages(): void; | ||
toJSON(): Readonly<User>; | ||
toJSON(): User; | ||
} | ||
interface GameSession { | ||
readonly logic: Game.HostLogic; | ||
end(): void; | ||
} | ||
interface Room { | ||
readonly lobbyCode: LobbyCode; | ||
availableGames(): Promise<readonly Game.Loader[]>; | ||
lobbyGuests(): Observable<LobbyGuest>; | ||
occupants(): Observable<[UserID, Observable<User>]>; | ||
getPlayers(): readonly Player[]; | ||
startGame(gametype: Gametype): Promise<GameSession>; | ||
} | ||
interface App { | ||
listGames(): Promise<Responses.Games>; | ||
startRoom(): Promise<HostAPI.Room>; | ||
} | ||
} | ||
namespace PlayerAPI { | ||
interface Message<REQUEST extends Messages.Payload, RESPONSE extends Messages.ReplyPayload> { | ||
readonly payload: REQUEST; | ||
reply(payload: RESPONSE): void; | ||
done(): Promise<void>; | ||
} | ||
interface GameSession<PLAYER_STATE extends {} = object> { | ||
readonly logic: Game.PlayerLogic<PLAYER_STATE>; | ||
readonly gameOver: Promise<void>; | ||
} | ||
interface Room<PLAYER_STATE extends {} = object> { | ||
readonly closed: Promise<void>; | ||
leave(): void; | ||
games(): Observable<GameSession<PLAYER_STATE>>; | ||
messages<REQUEST extends Messages.Payload, RESPONSE extends Messages.ReplyPayload>(): Observable<PlayerAPI.Message<REQUEST, RESPONSE>>; | ||
onClear(): Observable<void>; | ||
state(): Observable<PLAYER_STATE | null>; | ||
} | ||
interface Player { | ||
user(): Promise<User | null>; | ||
registerUser(name: string, color: string): Promise<User>; | ||
disconnect(): void; | ||
setName(name: string): Promise<User>; | ||
setColor(color: string): Promise<User>; | ||
joinRoom(lobbyCode: LobbyCode): Promise<PlayerRoom>; | ||
joinRoom(lobbyCode: LobbyCode): Promise<PlayerAPI.Room>; | ||
} | ||
interface PlayerRoom<PLAYER_STATE extends {} = object> { | ||
readonly closed: Promise<void>; | ||
leave(): void; | ||
games(): Observable<Game.PlayerLogic<PLAYER_STATE>>; | ||
gameOver(): Observable<void>; | ||
messages<REQUEST extends Messages.Payload, RESPONSE extends Messages.ReplyPayload>(): Observable<PlayerMessage<REQUEST, RESPONSE>>; | ||
clearMessages(): Observable<void>; | ||
state(): Observable<PLAYER_STATE | null>; | ||
interface App { | ||
connect(name?: string, color?: string): Promise<PlayerAPI.Player>; | ||
} | ||
interface PlayerMessage<REQUEST extends Messages.Payload, RESPONSE extends Messages.ReplyPayload> { | ||
readonly payload: REQUEST; | ||
reply(payload: RESPONSE): void; | ||
done(): Promise<void>; | ||
} | ||
} | ||
} |
{ | ||
"name": "@partygame.show/types", | ||
"version": "1.0.0-beta.11", | ||
"version": "1.0.0-beta.12", | ||
"description": "TypeScript type definitions for the main API for PartyGame.Show", | ||
@@ -5,0 +5,0 @@ "typings": "index.d.ts", |
19266
202