@angular/core
Version:
Angular - the core framework
36 lines (32 loc) • 1.08 kB
JavaScript
;
/**
* @license Angular v22.1.0
* (c) 2010-2026 Google LLC. https://angular.dev/
* License: MIT
*/
;
var ts = require('typescript');
/** Determines the base type identifiers of a specified class declaration. */
function getBaseTypeIdentifiers(node) {
if (!node.heritageClauses) {
return null;
}
return node.heritageClauses
.filter((clause) => clause.token === ts.SyntaxKind.ExtendsKeyword)
.reduce((types, clause) => types.concat(clause.types), [])
.map((typeExpression) => typeExpression.expression)
.filter(ts.isIdentifier);
}
/**
* Finds the class declaration that is being referred to by a node.
* @param reference Node referring to a class declaration.
* @param typeChecker
*/
function findClassDeclaration(reference, typeChecker) {
return (typeChecker
.getTypeAtLocation(reference)
.getSymbol()
?.declarations?.find(ts.isClassDeclaration) || null);
}
exports.findClassDeclaration = findClassDeclaration;
exports.getBaseTypeIdentifiers = getBaseTypeIdentifiers;