@@ -249,8 +249,8 @@ export class Awareness<T extends Value = Value> {
249249 * store2.apply(encoded);
250250 * ```
251251 */
252- export class EphemeralStore < T extends Value = Value > {
253- inner : EphemeralStoreWasm < T > ;
252+ export class EphemeralStore < T extends Record < string , Value > = Record < string , Value > > {
253+ inner : EphemeralStoreWasm ;
254254 private timer : number | undefined ;
255255 private timeout : number ;
256256 constructor ( timeout : number = 30000 ) {
@@ -263,21 +263,25 @@ export class EphemeralStore<T extends Value = Value> {
263263 this . startTimerIfNotEmpty ( ) ;
264264 }
265265
266- set ( key : string , value : T ) {
267- this . inner . set ( key , value ) ;
266+ set < K extends keyof T > ( key : K , value : T [ K ] ) {
267+ this . inner . set ( key as string , value ) ;
268268 this . startTimerIfNotEmpty ( ) ;
269269 }
270270
271- get ( key : string ) : T | undefined {
272- return this . inner . get ( key ) ;
271+ delete < K extends keyof T > ( key : K ) {
272+ this . inner . delete ( key as string ) ;
273273 }
274274
275- getAllStates ( ) : Record < string , T > {
275+ get < K extends keyof T > ( key : K ) : T [ K ] | undefined {
276+ return this . inner . get ( key as string ) ;
277+ }
278+
279+ getAllStates ( ) : Partial < T > {
276280 return this . inner . getAllStates ( ) ;
277281 }
278282
279- encode ( key : string ) : Uint8Array {
280- return this . inner . encode ( key ) ;
283+ encode < K extends keyof T > ( key : K ) : Uint8Array {
284+ return this . inner . encode ( key as string ) ;
281285 }
282286
283287 encodeAll ( ) : Uint8Array {
0 commit comments