⬅️ Back to Table of Contents
📄 typeDeclaredInPackageDeclarationFile.ts
📊 Analysis Summary
Metric |
Count |
🔧 Functions |
4 |
📊 Variables & Constants |
1 |
📚 Table of Contents
🛠️ File Location:
📂 packages/type-utils/src/typeOrValueSpecifiers/typeDeclaredInPackageDeclarationFile.ts
Variables & Constants
Name |
Type |
Kind |
Value |
Exported |
matcher |
RegExp |
const |
new RegExp( ${packageName} |
${typesPackageName}) |
Functions
findParentModuleDeclaration(node: ts.Node): ts.ModuleDeclaration | undefined
Code
function findParentModuleDeclaration(
node: ts.Node,
): ts.ModuleDeclaration | undefined {
switch (node.kind) {
case ts.SyntaxKind.ModuleDeclaration:
return ts.isStringLiteral((node as ts.ModuleDeclaration).name)
? (node as ts.ModuleDeclaration)
: undefined;
case ts.SyntaxKind.SourceFile:
return undefined;
default:
return findParentModuleDeclaration(node.parent);
}
}
- Parameters:
node: ts.Node
- Return Type:
ts.ModuleDeclaration | undefined
- Calls:
ts.isStringLiteral
findParentModuleDeclaration
typeDeclaredInDeclareModule(packageName: string, declarations: ts.Node[]): boolean
Code
function typeDeclaredInDeclareModule(
packageName: string,
declarations: ts.Node[],
): boolean {
return declarations.some(
declaration =>
findParentModuleDeclaration(declaration)?.name.text === packageName,
);
}
- Parameters:
packageName: string
declarations: ts.Node[]
- Return Type:
boolean
- Calls:
declarations.some
findParentModuleDeclaration
typeDeclaredInDeclarationFile(packageName: string, declarationFiles: ts.SourceFile[], program: ts.Program): boolean
Code
function typeDeclaredInDeclarationFile(
packageName: string,
declarationFiles: ts.SourceFile[],
program: ts.Program,
): boolean {
// Handle scoped packages: if the name starts with @, remove it and replace / with __
const typesPackageName = packageName.replace(/^@([^/]+)\//, '$1__');
const matcher = new RegExp(`${packageName}|${typesPackageName}`);
return declarationFiles.some(declaration => {
const packageIdName = program.sourceFileToPackageName.get(declaration.path);
return (
packageIdName != null &&
matcher.test(packageIdName) &&
program.isSourceFileFromExternalLibrary(declaration)
);
});
}
- Parameters:
packageName: string
declarationFiles: ts.SourceFile[]
program: ts.Program
- Return Type:
boolean
- Calls:
packageName.replace
declarationFiles.some
program.sourceFileToPackageName.get
matcher.test
program.isSourceFileFromExternalLibrary
- Internal Comments:
// Handle scoped packages: if the name starts with @, remove it and replace / with __ (x2)
typeDeclaredInPackageDeclarationFile(packageName: string, declarations: ts.Node[], declarationFiles: ts.SourceFile[], program: ts.Program): boolean
Code
export function typeDeclaredInPackageDeclarationFile(
packageName: string,
declarations: ts.Node[],
declarationFiles: ts.SourceFile[],
program: ts.Program,
): boolean {
return (
typeDeclaredInDeclareModule(packageName, declarations) ||
typeDeclaredInDeclarationFile(packageName, declarationFiles, program)
);
}
- Parameters:
packageName: string
declarations: ts.Node[]
declarationFiles: ts.SourceFile[]
program: ts.Program
- Return Type:
boolean
- Calls:
typeDeclaredInDeclareModule
typeDeclaredInDeclarationFile