@@ -60,8 +60,12 @@ export function createFindAllSourceFileReferencesVisitor<D extends ClassFieldDes
6060 tsTypes : 0 ,
6161 } ;
6262
63+ // Schematic NodeJS execution may not have `global.performance` defined.
64+ const currentTimeInMs = ( ) =>
65+ typeof global . performance !== 'undefined' ? global . performance . now ( ) : Date . now ( ) ;
66+
6367 const visitor = ( node : ts . Node ) => {
64- let lastTime = performance . now ( ) ;
68+ let lastTime = currentTimeInMs ( ) ;
6569
6670 if ( ts . isClassDeclaration ( node ) ) {
6771 identifyTemplateReferences (
@@ -76,16 +80,16 @@ export function createFindAllSourceFileReferencesVisitor<D extends ClassFieldDes
7680 result ,
7781 knownFields ,
7882 ) ;
79- perfCounters . template += ( performance . now ( ) - lastTime ) / 1000 ;
80- lastTime = performance . now ( ) ;
83+ perfCounters . template += ( currentTimeInMs ( ) - lastTime ) / 1000 ;
84+ lastTime = currentTimeInMs ( ) ;
8185
8286 identifyHostBindingReferences ( node , programInfo , checker , reflector , result , knownFields ) ;
8387
8488 perfCounters . hostBindings += ( performance . now ( ) - lastTime ) / 1000 ;
85- lastTime = performance . now ( ) ;
89+ lastTime = currentTimeInMs ( ) ;
8690 }
8791
88- lastTime = performance . now ( ) ;
92+ lastTime = currentTimeInMs ( ) ;
8993
9094 // find references, but do not capture input declarations itself.
9195 if (
@@ -106,7 +110,7 @@ export function createFindAllSourceFileReferencesVisitor<D extends ClassFieldDes
106110 }
107111
108112 perfCounters . tsReferences += ( performance . now ( ) - lastTime ) / 1000 ;
109- lastTime = performance . now ( ) ;
113+ lastTime = currentTimeInMs ( ) ;
110114 // Detect `Partial<T>` references.
111115 // Those are relevant to be tracked as they may be updated in Catalyst to
112116 // unwrap signal inputs. Commonly people use `Partial` in Catalyst to type
0 commit comments