From 5f75ef64acd5233c2c96d549f91b63acfe6b1e89 Mon Sep 17 00:00:00 2001 From: Burton Smith Date: Tue, 4 Mar 2025 09:27:47 -0500 Subject: [PATCH] exclude node_modules from parser --- .changeset/lemon-pears-attack.md | 5 +++++ src/cem-plugin.ts | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 .changeset/lemon-pears-attack.md diff --git a/.changeset/lemon-pears-attack.md b/.changeset/lemon-pears-attack.md new file mode 100644 index 0000000..31e1fd0 --- /dev/null +++ b/.changeset/lemon-pears-attack.md @@ -0,0 +1,5 @@ +--- +"@wc-toolkit/type-parser": patch +--- + +Excluded `mode_modules` from parser to prevent infinite loops diff --git a/src/cem-plugin.ts b/src/cem-plugin.ts index 8e76292..b0bc73f 100644 --- a/src/cem-plugin.ts +++ b/src/cem-plugin.ts @@ -171,7 +171,7 @@ function getObjectTypes(fileName: string, typeName: string): string { } function getFinalType(type: any): string { - if(isTsType(type)) { + if(isNpmType(type)) { return typeChecker.typeToString(type); } if (type.isUnion()) { @@ -253,7 +253,7 @@ function getFinalType(type: any): string { return typeChecker.typeToString(type); } -function isTsType(type: ts.Type): boolean { +function isNpmType(type: ts.Type): boolean { const symbol = type.getSymbol(); if (!symbol) return false; @@ -262,7 +262,7 @@ function isTsType(type: ts.Type): boolean { return declarations.some((decl) => { const sourceFile = decl.getSourceFile(); - return sourceFile.fileName.includes('node_modules/typescript'); + return sourceFile.fileName.includes('node_modules'); }); }