File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -38,12 +38,14 @@ type InferVariables<T extends string> = T extends `${infer Prefix}{{${infer Vari
3838 ? InferVariables < Prefix > | Variable | InferVariables < Suffix >
3939 : never ;
4040export type BaseLookup = Exclude < keyof RefTextMap , number | symbol > ;
41- export type VariablesFromLookup < Lookup extends BaseLookup > = InferVariables < RefTextMap [ Lookup ] > ;
42-
43- export type TranslationFn = < Lookup extends BaseLookup > (
44- lookup : Lookup ,
45- variables ?: Record < VariablesFromLookup < Lookup > , string | number | undefined >
46- ) => TranslatedText ;
41+ export type VariablesFromLookup < Lookup extends BaseLookup > =
42+ InferVariables < RefTextMap [ Lookup ] > extends `${infer Variables } `
43+ ? [ Variables ] extends [ never ]
44+ ? [ ]
45+ : [ Record < Variables , string | number | undefined > ]
46+ : [ ] ;
47+
48+ export type TranslationFn = < Lookup extends BaseLookup > ( lookup : Lookup , ...variables : VariablesFromLookup < Lookup > ) => TranslatedText ;
4749
4850type ReplaceStringWithTranslatedText < TParams extends readonly unknown [ ] > = {
4951 [ K in keyof TParams ] : TParams [ K ] extends string ? TranslatedText : TParams [ K ] ;
Original file line number Diff line number Diff line change @@ -118,9 +118,9 @@ export class BaseGame<State extends BaseState> {
118118 applyMod ?( mod : string ) : ActionResponse < TranslatedText > ;
119119 canBroadcastFinish ?( ) : boolean ;
120120
121- throw < Lookup extends BaseLookup > ( msg ?: Lookup , vars ?: Record < VariablesFromLookup < Lookup > , string | number | undefined > ) : never {
122- if ( ! msg ) throw new ChatError ( this . $T ( 'GAME.INVALID_INPUT' ) ) ;
123- throw new ChatError ( this . $T ( msg , vars ) ) ;
121+ throw < Lookup extends BaseLookup > ( ... params : [ Lookup , ... VariablesFromLookup < NonNullable < Lookup > > ] | [ ] ) : never {
122+ if ( params . length === 0 ) throw new ChatError ( this . $T ( 'GAME.INVALID_INPUT' ) ) ;
123+ throw new ChatError ( this . $T ( ... ( params as [ Lookup , ... VariablesFromLookup < Lookup > ] ) ) ) ;
124124 }
125125
126126 constructor ( ctx : BaseContext ) {
You can’t perform that action at this time.
0 commit comments