@@ -13,7 +13,7 @@ import { createPerfObserver } from './web/perf-observer';
1313import { initReactScanOverlay } from './web/overlay' ;
1414import {
1515 createInspectElementStateMachine ,
16- States ,
16+ type States ,
1717} from './web/inspect-element/inspect-state-machine' ;
1818import { createToolbar } from './web/toolbar' ;
1919
@@ -112,6 +112,7 @@ export interface Internals {
112112 count : number ;
113113 time : number ;
114114 badRenders : Render [ ] ;
115+ displayName : string | null ;
115116 }
116117 > ;
117118 reportData : Record <
@@ -129,21 +130,24 @@ export interface Internals {
129130type Listener < T > = ( value : T ) => void ;
130131
131132export interface StoreMethods < T extends object > {
132- subscribe < K extends keyof T > ( key : K , listener : Listener < T [ K ] > ) : ( ) => void ;
133- set < K extends keyof T > ( key : K , value : T [ K ] ) : void ;
134- setState ( state : Partial < T > ) : void ;
135- emit < K extends keyof T > ( key : K , value : T [ K ] ) : void ;
136- subscribeMultiple (
137- subscribeTo : Array < keyof T > ,
133+ subscribe : < K extends keyof T > (
134+ key : K ,
135+ listener : Listener < T [ K ] > ,
136+ ) => ( ) => void ;
137+ set : < K extends keyof T > ( key : K , value : T [ K ] ) => void ;
138+ setState : ( state : Partial < T > ) => void ;
139+ emit : < K extends keyof T > ( key : K , value : T [ K ] ) => void ;
140+ subscribeMultiple : (
141+ subscribeTo : ( keyof T ) [ ] ,
138142 listener : Listener < T > ,
139- ) : ( ) => void ;
143+ ) => ( ) => void ;
140144}
141145
142146type Store < T extends object > = T & StoreMethods < T > ;
143147
144148const createStore = < T extends object > ( initialData : T ) : Store < T > => {
145149 const data : T = { ...initialData } ;
146- const listeners : { [ K in keyof T ] ?: Array < Listener < T [ K ] > > } = { } ;
150+ const listeners : { [ K in keyof T ] ?: Listener < T [ K ] > [ ] } = { } ;
147151
148152 const emit = < K extends keyof T > ( key : K , value : T [ K ] ) : void => {
149153 listeners [ key ] ?. forEach ( ( listener ) => listener ( value ) ) ;
@@ -172,14 +176,14 @@ const createStore = <T extends object>(initialData: T): Store<T> => {
172176
173177 const setState = ( state : Partial < T > ) => {
174178 for ( const key in state ) {
175- if ( state . hasOwnProperty ( key ) ) {
179+ if ( Object . prototype . hasOwnProperty . call ( state , key ) ) {
176180 set ( key as keyof T , state [ key ] as T [ keyof T ] ) ;
177181 }
178182 }
179183 } ;
180184
181185 const subscribeMultiple = (
182- subscribeTo : Array < keyof T > ,
186+ subscribeTo : ( keyof T ) [ ] ,
183187 listener : ( store : typeof data ) => void ,
184188 ) => {
185189 subscribeTo . forEach ( ( key ) => {
@@ -191,9 +195,7 @@ const createStore = <T extends object>(initialData: T): Store<T> => {
191195
192196 return ( ) => {
193197 subscribeTo . forEach ( ( key ) => {
194- listeners [ key as keyof T ] = listeners [ key as keyof T ] ?. filter (
195- ( cb ) => cb !== listener ,
196- ) ;
198+ listeners [ key ] = listeners [ key ] ?. filter ( ( cb ) => cb !== listener ) ;
197199 } ) ;
198200 } ;
199201 } ;
@@ -208,13 +210,12 @@ const createStore = <T extends object>(initialData: T): Store<T> => {
208210
209211 return Reflect . get ( target , prop , receiver ) ;
210212 } ,
211- set ( target , prop , value , receiver ) {
213+ set ( target , prop , value ) {
212214 if ( prop in target ) {
213215 set ( prop as keyof T , value as T [ keyof T ] ) ;
214216 return true ;
215- } else {
216- throw new Error ( `Property "${ String ( prop ) } " does not exist` ) ;
217217 }
218+ throw new Error ( `Property "${ String ( prop ) } " does not exist` ) ;
218219 } ,
219220 deleteProperty ( _ , prop ) {
220221 throw new Error ( `Cannot delete property "${ String ( prop ) } " from store` ) ;
0 commit comments