@@ -51,7 +51,7 @@ function isSafeInteger(number: unknown): boolean {
5151
5252export function keyBy < K > ( arr : K [ ] , key : string ) : { [ key : string ] : K } {
5353 if ( ! arr ) return { } ;
54- return keyByUtil ( arr , function ( item ) {
54+ return keyByUtil ( arr , function ( item ) {
5555 // eslint-disable-next-line @typescript-eslint/no-explicit-any
5656 return ( item as any ) [ key ] ;
5757 } ) ;
@@ -62,84 +62,84 @@ function isNumber(value: unknown): boolean {
6262}
6363
6464export function uuid ( ) : string {
65- return v4 ( )
65+ return v4 ( ) ;
6666}
6767
68- export type Omit < T , K > = Pick < T , Exclude < keyof T , K > >
68+ export type Omit < T , K > = Pick < T , Exclude < keyof T , K > > ;
6969
7070export function getTimestamp ( ) : number {
71- return new Date ( ) . getTime ( )
71+ return new Date ( ) . getTime ( ) ;
7272}
7373
7474/**
75- * Validates a value is a valid TypeScript enum
76- *
77- * @export
78- * @param {object } enumToCheck
79- * @param {* } value
80- * @returns {boolean }
81- */
75+ * Validates a value is a valid TypeScript enum
76+ *
77+ * @export
78+ * @param {object } enumToCheck
79+ * @param {* } value
80+ * @returns {boolean }
81+ */
8282// TODO[OASIS-6649]: Don't use any type
8383// eslint-disable-next-line @typescript-eslint/no-explicit-any
8484export function isValidEnum ( enumToCheck : { [ key : string ] : any } , value : number | string ) : boolean {
85- let found = false
85+ let found = false ;
8686
87- const keys = Object . keys ( enumToCheck )
87+ const keys = Object . keys ( enumToCheck ) ;
8888 for ( let index = 0 ; index < keys . length ; index ++ ) {
8989 if ( value === enumToCheck [ keys [ index ] ] ) {
90- found = true
91- break
90+ found = true ;
91+ break ;
9292 }
9393 }
94- return found
94+ return found ;
9595}
9696
9797export function groupBy < K > ( arr : K [ ] , grouperFn : ( item : K ) => string ) : Array < K [ ] > {
98- const grouper : { [ key : string ] : K [ ] } = { }
98+ const grouper : { [ key : string ] : K [ ] } = { } ;
9999
100100 arr . forEach ( item => {
101- const key = grouperFn ( item )
102- grouper [ key ] = grouper [ key ] || [ ]
103- grouper [ key ] . push ( item )
104- } )
101+ const key = grouperFn ( item ) ;
102+ grouper [ key ] = grouper [ key ] || [ ] ;
103+ grouper [ key ] . push ( item ) ;
104+ } ) ;
105105
106- return objectValues ( grouper )
106+ return objectValues ( grouper ) ;
107107}
108108
109109export function objectValues < K > ( obj : { [ key : string ] : K } ) : K [ ] {
110- return Object . keys ( obj ) . map ( key => obj [ key ] )
110+ return Object . keys ( obj ) . map ( key => obj [ key ] ) ;
111111}
112112
113113export function objectEntries < K > ( obj : { [ key : string ] : K } ) : [ string , K ] [ ] {
114- return Object . keys ( obj ) . map ( key => [ key , obj [ key ] ] )
114+ return Object . keys ( obj ) . map ( key => [ key , obj [ key ] ] ) ;
115115}
116116
117117export function find < K > ( arr : K [ ] , cond : ( arg : K ) => boolean ) : K | undefined {
118- let found
118+ let found ;
119119
120120 for ( const item of arr ) {
121121 if ( cond ( item ) ) {
122- found = item
123- break
122+ found = item ;
123+ break ;
124124 }
125125 }
126126
127- return found
127+ return found ;
128128}
129129
130130export function keyByUtil < K > ( arr : K [ ] , keyByFn : ( item : K ) => string ) : { [ key : string ] : K } {
131- const map : { [ key : string ] : K } = { }
131+ const map : { [ key : string ] : K } = { } ;
132132 arr . forEach ( item => {
133- const key = keyByFn ( item )
134- map [ key ] = item
135- } )
136- return map
133+ const key = keyByFn ( item ) ;
134+ map [ key ] = item ;
135+ } ) ;
136+ return map ;
137137}
138138
139139// TODO[OASIS-6649]: Don't use any type
140140// eslint-disable-next-line @typescript-eslint/no-explicit-any
141141export function sprintf ( format : string , ...args : any [ ] ) : string {
142- let i = 0
142+ let i = 0 ;
143143 return format . replace ( / % s / g, function ( ) {
144144 const arg = args [ i ++ ] ;
145145 const type = typeof arg ;
@@ -150,11 +150,9 @@ export function sprintf(format: string, ...args: any[]): string {
150150 } else {
151151 return String ( arg ) ;
152152 }
153- } )
153+ } ) ;
154154}
155155
156-
157-
158156/**
159157 * Checks two string arrays for equality.
160158 * @param arrayA First Array to be compared against.
@@ -165,6 +163,18 @@ export function checkArrayEquality(arrayA: string[], arrayB: string[]): boolean
165163 return arrayA . length === arrayB . length && arrayA . every ( ( item , index ) => item === arrayB [ index ] ) ;
166164}
167165
166+ /**
167+ * Checks the current running context
168+ * @returns {boolean } True if window object exists.
169+ */
170+ export function isBrowser ( ) : boolean {
171+ if ( typeof window === 'object' && typeof process !== 'object' && typeof require !== 'function' ) {
172+ return true ;
173+ }
174+
175+ return false ;
176+ }
177+
168178export default {
169179 assign,
170180 checkArrayEquality,
@@ -181,4 +191,5 @@ export default {
181191 find,
182192 keyByUtil,
183193 sprintf,
194+ isBrowser,
184195} ;
0 commit comments