Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
bit-pm
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
燕伟桐
bit-pm
Commits
9d11f6c7
Unverified
提交
9d11f6c7
authored
7月 01, 2025
作者:
Will Chen
提交者:
GitHub
7月 01, 2025
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Support yml/yaml files (#535)
Fixes #533
上级
8254b520
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
24 行增加
和
11 行删除
+24
-11
codebase.ts
src/utils/codebase.ts
+24
-11
没有找到文件。
src/utils/codebase.ts
浏览文件 @
9d11f6c7
...
@@ -29,6 +29,9 @@ const ALLOWED_EXTENSIONS = [
...
@@ -29,6 +29,9 @@ const ALLOWED_EXTENSIONS = [
".scss"
,
".scss"
,
".sass"
,
".sass"
,
".less"
,
".less"
,
// GitHub Actions
".yml"
,
".yaml"
,
// Needed for Capacitor projects
// Needed for Capacitor projects
".xml"
,
".xml"
,
".plist"
,
".plist"
,
...
@@ -42,9 +45,24 @@ const ALLOWED_EXTENSIONS = [
...
@@ -42,9 +45,24 @@ const ALLOWED_EXTENSIONS = [
// Directories to always exclude
// Directories to always exclude
const
EXCLUDED_DIRS
=
[
"node_modules"
,
".git"
,
"dist"
,
"build"
];
const
EXCLUDED_DIRS
=
[
"node_modules"
,
".git"
,
"dist"
,
"build"
];
// Files to always exclude
const
EXCLUDED_FILES
=
[
"pnpm-lock.yaml"
,
"package-lock.json"
];
// Files to always include, regardless of extension
// Files to always include, regardless of extension
const
ALWAYS_INCLUDE_FILES
=
[
"package.json"
];
const
ALWAYS_INCLUDE_FILES
=
[
"package.json"
];
// File patterns to omit (contents will be replaced with a placeholder)
//
// Why are we not using path.join here?
// Because we have already normalized the path to use /.
const
OMITTED_FILES
=
[
"src/components/ui"
,
"eslint.config"
,
"tsconfig.json"
,
".env"
,
];
// Maximum file size to include (in bytes) - 100KB
// Maximum file size to include (in bytes) - 100KB
const
MAX_FILE_SIZE
=
100
*
1024
;
const
MAX_FILE_SIZE
=
100
*
1024
;
...
@@ -242,6 +260,11 @@ async function collectFiles(dir: string, baseDir: string): Promise<string[]> {
...
@@ -242,6 +260,11 @@ async function collectFiles(dir: string, baseDir: string): Promise<string[]> {
const
subDirFiles
=
await
collectFiles
(
fullPath
,
baseDir
);
const
subDirFiles
=
await
collectFiles
(
fullPath
,
baseDir
);
files
.
push
(...
subDirFiles
);
files
.
push
(...
subDirFiles
);
}
else
if
(
entry
.
isFile
())
{
}
else
if
(
entry
.
isFile
())
{
// Skip excluded files
if
(
EXCLUDED_FILES
.
includes
(
entry
.
name
))
{
return
;
}
// Check file extension and filename
// Check file extension and filename
const
ext
=
path
.
extname
(
entry
.
name
).
toLowerCase
();
const
ext
=
path
.
extname
(
entry
.
name
).
toLowerCase
();
const
shouldAlwaysInclude
=
ALWAYS_INCLUDE_FILES
.
includes
(
entry
.
name
);
const
shouldAlwaysInclude
=
ALWAYS_INCLUDE_FILES
.
includes
(
entry
.
name
);
...
@@ -273,17 +296,7 @@ async function collectFiles(dir: string, baseDir: string): Promise<string[]> {
...
@@ -273,17 +296,7 @@ async function collectFiles(dir: string, baseDir: string): Promise<string[]> {
// Skip large configuration files or generated code (just include the path)
// Skip large configuration files or generated code (just include the path)
function
isOmittedFile
(
relativePath
:
string
):
boolean
{
function
isOmittedFile
(
relativePath
:
string
):
boolean
{
return
(
return
OMITTED_FILES
.
some
((
pattern
)
=>
relativePath
.
includes
(
pattern
));
// Why are we not using path.join here?
// Because we have already normalized the path to use /.
relativePath
.
includes
(
"src/components/ui"
)
||
relativePath
.
includes
(
"eslint.config"
)
||
relativePath
.
includes
(
"tsconfig.json"
)
||
relativePath
.
includes
(
"package-lock.json"
)
||
// These should already be excluded based on file type, but
// just in case, we'll redact the contents here.
relativePath
.
includes
(
".env"
)
);
}
}
const
OMITTED_FILE_CONTENT
=
"// Contents omitted for brevity"
;
const
OMITTED_FILE_CONTENT
=
"// Contents omitted for brevity"
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论