Skip to content

Commit d1391ce

Browse files
devversionpkozlowski-opensource
authored andcommitted
refactor(migrations): fix peformance.now() not available in input schematic (angular#57913)
In schematics, `performance.now()` is not available. This breaks execution. PR Close angular#57913
1 parent 304bb3b commit d1391ce

File tree

1 file changed

+10
-6
lines changed
  • packages/core/schematics/migrations/signal-migration/src/passes/reference_resolution

1 file changed

+10
-6
lines changed

packages/core/schematics/migrations/signal-migration/src/passes/reference_resolution/index.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)