Nx 调用镜
遵循 Nx 依赖图的 Nx 插件可以追踪每个项目的调用堆栈 .
用于呼叫跟踪、配置、深度和广度分析以及报告格式的分类文件载于
@callidescope/cli 读取。 。 。 .
@callidescope/cli 目的为无 Nx : 它需要 --directories,每个人的路径 持有自己的 tsconfig.json,所以这个
在任意类型脚本工作区工作,无论Nx是否靠近它。 这个
软件包是工具链中唯一一个知道Nx存在的地方,也是唯一的
一个取决于 @nx/devkit。 。 。 .
它增加了两个核心CLI无法知道的东西:
- 每个项目的目标,所以工作空间的任务执行者
选择..
nx affected, (中文(简体) ),--projects=tag:…、 ca临τ. - 依赖意识范围,所以运行一个项目 范围为一切 这个项目取决于而不是仅仅依靠项目.
安装
npm install --save-dev @callidescope/nx
登记在册 nx.json数字 :
{
"plugins": [
{
"plugin": "@callidescope/nx",
"options": {
"configurationPath": "configuration/callidescope.config.ts"
}
}
]
}
| 选项 | 含义 |
|---|---|
configurationPath | 要求。 工作空间的 Callidescope 配置所居住的地方 。 没有搜索到任何内容: 拒绝删除此选项的注册 。 拒绝的决定由 @callidescope/configuration,每个表面共享 |
traceTargetName | 推断出追踪目标的名称. callidescope-trace 省略时 |
depthTargetName | 推断出深度目标的名称. callidescope-depth 省略时 |
breadthTargetName | 推断出宽度目标的名称. callidescope-breadth 省略时 |
gateTargetName | 推断出的目标. callidescope-restrict 省略时 |
所有推断目标默认为 callidescope-* 名称以避免通用任务
nx 列表中的标签。 如果工作空间, 请从注册中重新命名其中的任何一个
已经使用了一个.
使用量
在每个项目中,有四个目标被推断为 tsconfig.json这样
选择是Nx的工作,而不是这个软件包的旗:
nx run callidescope-nx:callidescope-trace # one project, with its dependencies
nx run-many -t callidescope-trace # the workspace
nx run-many -t callidescope-trace --projects=tag:type:package # a category
nx affected -t callidescope-trace # only what changed
nx run callidescope-nx:callidescope-depth --addresses="projects/ic-suite/callidescope/callidescope-nx/src/modules/projects/projects.service.ts#ProjectsService.resolveDependencyClosure"
nx run callidescope-nx:callidescope-breadth --addresses="src/foo.service.ts#FooService.bar"
# Several at once, which is what a rename spanning a handful of them needs
nx run callidescope-nx:callidescope-depth --addresses="src/a.service.ts#A.b,src/c.service.ts#C.d"
| 目标 | 答复 |
|---|---|
callidescope-restrict | 项目中是否有东西突破了它所持有的限制 |
callidescope-trace | 工程的每个呼叫堆, 和哪些突破限制 |
callidescope-depth | 每一个可调取的上下堆栈 调取者到根,调取者到叶 |
callidescope-breadth | 每个被呼叫的直呼者和被呼叫者并肩 |
depth 财务报告和审定财务报表 breadth 一样 <file>#<qualified-name> 地址:
callidescope 命令确实——每个打印堆栈已经使用的窗体——和
相同的逗号分隔 --addresses 旗帜会让他们通过。 通过
插件,它们针对项目及其依赖性而不是
整个工作空间,它既更快, 地址的设定属于.
每一个地址都必须解决,否则任务会一无所获. 一份涵盖
只有被理解的地址,在任务Nx记录为
成功,比失败的更糟糕;每个未匹配的地址被命名和
任务失败 。 下 --format=json 报告总是一个阵列,不管是什么
地址计数,匹配命令行打印的内容.
与命令行不同, 缺少一个 --addresses 实值 拒绝,而不是
已提示: 任务执行者没有人要问.
大门
gate 是一条管道中的一条 是用来读取出口代码的,
唯一一个只印出其发现的 堆叠和可调用的东西
而不是项目中的每一堆. nx affected -t gate
因此,通过它所改变的项目将一个分支关入,失败的任务就是
以退后的工程命名, 而该工程从不执行全工作空间的任务
能够.
依赖的破坏就是依赖门的生意. 追踪
进入项目 门的工程取决于, 因为堆叠
在一个包的边界上停止 测量错误的东西,但判决覆盖
任务范围仅限于项目。 这是出版界的一行
已绘制,向前再走一步:测量达到依赖性,
出版没有,判断也没有。 没有什么能逃脱判决,
因为 nx affected 选择更改的依赖性及其自己的门名
这个. trace 所以一个项目的两个目标
对于谁的退步,它永远不会有分歧
完全关闭, 因为只有判决缩小.
深度总是被门, 宽度,只要有限制. 非两种模式
选择在 : maximumDepth 默认, 所以每个工程都有数字
并被判决 maximumBreadth 没有任何一个级别——因此是一个项目
所宣布的无宽度限制的判断 Infinity 无法产生
广度发现.
一个没有打开被判断项目自身文件的门失败 . 一个项目
报告零文件本身不是一个干净的项目——这是一个项目
什么都没有看,绿色的任务 将会说相反的无所事事
在输出中纠正它。 这个 callidescope 命令失败
同样的原因.
trace 印出相同的块并经过它 规则之一
目标的行动不同, 唯一的地方是他们的判决。 一个项目
配置按定义排除了读取任何内容
没有 gate 正是因为这个原因,所以失败了 trace 也会离开
它被配置的永久红色目标
总是红色的红色任务 是读者学会忽略的 这个
仍然打印,因为是否读取了项目本身的代码是关于
不管是哪种方式 读者必须能看到它。 其他一切——一叠
超过深度限制 超过宽度限制的调用 一次无读的跑
都失败了.
被询问的每个判断项目,而不是整个运行,因为缩小
判决提出了这两个不同的问题。 有依赖关系的项目
非空地运行 任何它自己的来源,所以 exclude 那个
超比例——项目本身 callidescope.config.* 可能写作——叶片
它没有报告内容,没有发现, 并传递绿色代码
没有读。 显示 : projects/ic-suite/codometer/codometer-output 给定
{"exclude": ["**"]} 它的附属物102个
没有什么贡献,这是一个绿色的大门 关于整个问题,一个红色的
这一点。 未读的项目被重新命名,因为 --projects 可能
数个法官.
文件而非可调用文件,这是较弱的问题和权利
一个 工程可以持有宣布完全不可调用的文件——一个
tsconfig.json 仅命名自己的配置文件,其测试是
形状,而这个寄存器有五个—— 那些文件被读取,所以一个判决
他们将受某种判决。 要求拨号失败 全部5个
没有任何功能,这是一无所获。 成本,说明
plainly:在配置文件时排除来源的项目
自己活下来的算作读取.
相邻的两起案子都失败了 都说出发生了什么 正在变换: 已读出 没什么,这就是一个未读 叶子工程看起来像, 和一个 Nx 选择 无目录。 。 。 .
它的缓存密钥名称是工程自己的 callidescope.config.* 与
工作空间配置,所以编辑一个工程的限制 重新运行工程的
门,没有其他项目。 受抚养人的来源包括: ^default, (中文(简体) ),
因为它能衡量它的依赖性,即使它不加以判断.
所有四个目标都有意跳出两个项目: 工作空间根
项目目标可以追踪所有无法完成的任务
任何项目 没有 tsconfig.json,其目标将是永久的
空无相. 配置的工程 不包括 —— 说 exclude 或者说 excludeFrom 内
工作空间文件 – 额外得到否 gate:它自己的代码从未被追踪,
因此,一个门 将没有任何发现 并报告绿色代码 它从来没有
读取。 它保持三个 打印的东西, trace 包括,这是什么
上面未读的豁免是为了保留: projects/ic-suite/callidescope/callidescope-examples
它的堆栈仍然是读者可以打开的报告.
为什么追踪跟随依赖
nx run callidescope-cli:trace 跟踪 callidescope-cli 财务报告和审定财务报表
一切取决于,从 Nx 项目图中转接解出.
一个呼叫堆栈向下运行——一个命令呼叫进入它被注入的服务 与,它生活在一个包 它依赖于—— 所以一个痕迹停止在一个 工程本身的边界会测量错误的东西.
没有此插件, 追踪就不会停止 .
@callidescope/cli 构建类型脚本
程序用于每个工程的目录被中转导入, 所以
对依赖的调用决定了Nx是否为真实框架
参与。 根据这个包裹,
callidescope --config configuration/callidescope.config.ts --directories projects/ic-suite/callidescope/callidescope-nx 财务报告和审定财务报表
nx run callidescope-nx:trace 在185个文件中报告同样的575个可调用文件
7个项目.
Nx 图表决定的是 运行是哪个项目 范围为 相当
而不是仅仅达到。 这个执行者在任何地方都写不出来
报告并打印出来,所以区别在这里没有代价,扩大
选择只更改哪些项目为关闭的种子。 这是命令线
执行该程序的主机: a --write 运行那里出版一个 ## 🔭 Callidescope
列入范围项目 README.md {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}留下一个伸手的
运行它的范围。 图表中还指定了不关闭导入的依赖关系
可以找到——隐含的依赖,或者只在运行时间存在的边缘.
两套不同. Nx 图给出 callidescope-nx 6个
项目; 导入关闭达到7个, 添加 codometer-configuration, (中文(简体) ),
这个项目 tsconfig.json 自己拉进来
codometer.config.ts - 名单里没理由提的.
依附关系,从不依附关系:项目依附关系 输入 并添加 下方没有框架.
过 --withDependencies=false 到选定项目的运行范围
一个人 它们下面的闭合线是搭建的 所以有什么变化
工程运行称为自己的运行,而不是堆栈运行多远.
执行器选项
nx run logging:trace --tags=type:package
nx run logging:depth --addresses="a.ts#A.b" --projects=callidescope-cli
所有三个执行者都采用相同的范围界定选项.
| 选项 | 含义 |
|---|---|
addresses | depth 财务报告和审定财务报表 breadth 仅,且需要:可调取的抬头,逗号分隔 |
projects | Nx 项目名称可以解决, 替换目标自己的项目 |
tags | Nx 项目标记, 选择每个携带的工程 任意 他们 |
withDependencies | 沿着Nx依赖图拓宽. true 默认 |
format | markdown, (中文(简体) ), mermaid,或 json |
configuration | 要求,并写在从登记中推断出的每个目标上 configurationPath。手写目标必须自己命名,否则被拒绝命名此选项 |
--projects 财务报告和审定财务报表 --tags 结合而不是交叉,项目已经实现
两条路都有一次被追查. --tags 匹配 任意 标记,
因为Nx标签家庭在单个项目上是互相排斥的
两者 type:application 财务报告和审定财务报表 type:package,所以要求他们所有人
选择无.
更喜欢Nx自己的 --projects=tag:… 打开 run-many 用于普通选择; 这些
对想要在定义中宣布固定范围的目标,有选项
project.json。 。 。 .
没有什么能无声无息
工作空间没有工程名称, 或没有项目带的标签, 失败 任务和名称。 缩小跑道 将让它通过,同时测量的比要求它少,并报告 跑步的掩护不能让你看到它没有的.
作为图书馆
Nx-graph 读取是一个 NestJS 的提供者, 用于一个主机, 它宁愿导入 它不是执行一个任务
import { resolveProjectsService } from "@callidescope/nx";
const projectsService = await resolveProjectsService();
const graph = await projectsService.readProjectGraph();
const names = projectsService.resolveDependencyClosure({
graph,
projectNames: ["callidescope-cli"],
});
const directories = projectsService.toDirectories({ graph, projectNames: names });
readProjectGraph 是唯一在运行时触及 Nx 的方法; 每
解析规则将图取为参数,因此可以不用
一个工作空间来构建一个来自.
软件包
| 软件包 | 作用 |
|---|---|
@callidescope/nx | Nx 插件: 每个项目的微量目标, 通过 Nx 图表解决 |
@callidescope/cli | 管弦乐演奏:追踪工作空间,计划检查什么,以及报告 |
@callidescope/configuration | 读取 callidescope.config.ts 并解决界限 |
@callidescope/graph | 构建来自追溯源的调用图并测量深度和宽度 |
@callidescope/output | 美人鱼和JSON的标记 |
测试
nx run callidescope-nx:vitest
捐款
nx run callidescope-nx:lint-code --configuration=check
许可证
麻省理工学院——见 自由主义。 。 。 .
* 调和
这个项目源于 巢-服务-项目 符合模板.
\\ 代码endix
依赖图导出 代码,由 nx run configuration:codependix:write。 。 。 .
邻里
graph LR
callidescope_cli["callidescope-cli"]
callidescope_configuration["callidescope-configuration"]
callidescope_core["callidescope-core"]
callidescope_graph["callidescope-graph"]
callidescope_nx["callidescope-nx"]
callidescope_output["callidescope-output"]
observability["observability"]
callidescope_nx --> callidescope_cli
callidescope_nx --> callidescope_configuration
callidescope_nx --> callidescope_core
callidescope_nx --> callidescope_graph
callidescope_nx --> callidescope_output
callidescope_nx --> observability
classDef subject fill:#7c3aed,color:#fff,stroke:#4c1d95,stroke-width:2px
class callidescope_nx subject
NestJS 模块图
flowchart LR
AddressLookupModule
AddressModule
AddressReportModule
CallablesModule
CallidescopeModule
ClassesModule
ConfigurationFileModule
ConfigurationModule
DocumentationModule
EdgesModule
EntriesModule
FlagResolutionModule
GraphModule
InputModule
LoggerModule([LoggerModule])
MainModule
OptionsModule
OutputJsonModule
OutputMarkdownModule
PluginModule
ProgramModule
ProjectReportsModule
ProjectsModule
ReportFindingsModule
ReportModule
RunConfigurationModule
RunPlanModule
SignaturesModule
VerdictModule
WorkspaceModule
WriteDestinationsModule
AddressLookupModule --> CallablesModule
AddressLookupModule --> CallidescopeModule
AddressLookupModule --> ConfigurationModule
AddressModule --> AddressLookupModule
AddressModule --> AddressReportModule
AddressModule --> GraphModule
AddressReportModule --> ReportModule
CallablesModule --> ProgramModule
CallablesModule --> WorkspaceModule
CallidescopeModule --> CallablesModule
CallidescopeModule --> ClassesModule
CallidescopeModule --> ConfigurationModule
CallidescopeModule --> EdgesModule
CallidescopeModule --> EntriesModule
CallidescopeModule --> GraphModule
CallidescopeModule --> OutputJsonModule
CallidescopeModule --> OutputMarkdownModule
CallidescopeModule --> ProgramModule
CallidescopeModule --> ProjectReportsModule
CallidescopeModule --> ReportFindingsModule
CallidescopeModule --> ReportModule
CallidescopeModule --> WorkspaceModule
CallidescopeModule --> WriteDestinationsModule
ConfigurationModule --> ConfigurationFileModule
ConfigurationModule --> InputModule
ConfigurationModule --> RunPlanModule
EdgesModule --> CallablesModule
EdgesModule --> ClassesModule
EdgesModule --> ProgramModule
EdgesModule --> WorkspaceModule
EntriesModule --> CallablesModule
GraphModule --> DocumentationModule
GraphModule --> EdgesModule
GraphModule --> SignaturesModule
MainModule --> AddressModule
MainModule --> PluginModule
OptionsModule --> ConfigurationModule
PluginModule --> CallidescopeModule
PluginModule --> ConfigurationModule
PluginModule --> OptionsModule
PluginModule --> ProjectsModule
PluginModule --> ReportModule
PluginModule --> RunConfigurationModule
PluginModule --> VerdictModule
PluginModule --> WorkspaceModule
ProgramModule --> WorkspaceModule
ProjectReportsModule --> GraphModule
ProjectReportsModule --> SignaturesModule
RunConfigurationModule --> ConfigurationModule
RunPlanModule --> FlagResolutionModule
VerdictModule --> ProjectReportsModule
WriteDestinationsModule --> OutputJsonModule
WriteDestinationsModule --> OutputMarkdownModule
WriteDestinationsModule --> ReportModule
四舍五入的模块是全局的:每个模块都可以注入,因此其边缘被忽略.
文件导入
graph LR
file_callidescope_config_ts["callidescope.config.ts"]
file_codependix_config_ts["codependix.config.ts"]
file_codometer_config_ts["codometer.config.ts"]
file_coinagerie_config_ts["coinagerie.config.ts"]
file_eslint_config_ts["eslint.config.ts"]
file_src_callidescope_nx_module_ts["src/callidescope-nx.module.ts"]
file_src_executors_address_types_ts["src/executors/address.types.ts"]
file_src_executors_breadth_executor_ts["src/executors/breadth/executor.ts"]
file_src_executors_breadth_executor_unit_test_ts["src/executors/breadth/executor.unit.test.ts"]
file_src_executors_depth_executor_ts["src/executors/depth/executor.ts"]
file_src_executors_depth_executor_unit_test_ts["src/executors/depth/executor.unit.test.ts"]
file_src_executors_gate_batch_executor_ts["src/executors/gate/batch-executor.ts"]
file_src_executors_gate_batch_executor_unit_test_ts["src/executors/gate/batch-executor.unit.test.ts"]
file_src_executors_gate_executor_integration_test_ts["src/executors/gate/executor.integration.test.ts"]
file_src_executors_gate_executor_ts["src/executors/gate/executor.ts"]
file_src_executors_gate_executor_types_ts["src/executors/gate/executor.types.ts"]
file_src_executors_gate_executor_unit_test_ts["src/executors/gate/executor.unit.test.ts"]
file_src_executors_manifest_unit_test_ts["src/executors/manifest.unit.test.ts"]
file_src_executors_trace_executor_ts["src/executors/trace/executor.ts"]
file_src_executors_trace_executor_types_ts["src/executors/trace/executor.types.ts"]
file_src_executors_trace_executor_unit_test_ts["src/executors/trace/executor.unit.test.ts"]
file_src_index_ts["src/index.ts"]
file_src_index_unit_test_ts["src/index.unit.test.ts"]
file_src_modules_address_address_constants_ts["src/modules/address/address.constants.ts"]
file_src_modules_address_address_module_ts["src/modules/address/address.module.ts"]
file_src_modules_address_address_service_ts["src/modules/address/address.service.ts"]
file_src_modules_address_address_service_unit_test_ts["src/modules/address/address.service.unit.test.ts"]
file_src_modules_address_address_types_ts["src/modules/address/address.types.ts"]
file_src_modules_address_address_utilities_ts["src/modules/address/address.utilities.ts"]
file_src_modules_address_address_utilities_unit_test_ts["src/modules/address/address.utilities.unit.test.ts"]
file_src_modules_options_options_constants_ts["src/modules/options/options.constants.ts"]
file_src_modules_options_options_module_ts["src/modules/options/options.module.ts"]
file_src_modules_options_options_service_ts["src/modules/options/options.service.ts"]
file_src_modules_options_options_service_unit_test_ts["src/modules/options/options.service.unit.test.ts"]
file_src_modules_options_options_types_ts["src/modules/options/options.types.ts"]
file_src_modules_plugin_plugin_context_utilities_ts["src/modules/plugin/plugin-context.utilities.ts"]
file_src_modules_plugin_plugin_context_utilities_unit_test_ts["src/modules/plugin/plugin-context.utilities.unit.test.ts"]
file_src_modules_plugin_plugin_constants_ts["src/modules/plugin/plugin.constants.ts"]
file_src_modules_plugin_plugin_module_ts["src/modules/plugin/plugin.module.ts"]
file_src_modules_plugin_plugin_service_ts["src/modules/plugin/plugin.service.ts"]
file_src_modules_plugin_plugin_service_unit_test_ts["src/modules/plugin/plugin.service.unit.test.ts"]
file_src_modules_plugin_plugin_types_ts["src/modules/plugin/plugin.types.ts"]
file_src_modules_plugin_plugin_utilities_ts["src/modules/plugin/plugin.utilities.ts"]
file_src_modules_projects_projects_constants_ts["src/modules/projects/projects.constants.ts"]
file_src_modules_projects_projects_module_ts["src/modules/projects/projects.module.ts"]
file_src_modules_projects_projects_service_ts["src/modules/projects/projects.service.ts"]
file_src_modules_projects_projects_service_unit_test_ts["src/modules/projects/projects.service.unit.test.ts"]
file_src_modules_projects_projects_types_ts["src/modules/projects/projects.types.ts"]
file_src_modules_run_configuration_run_configuration_constants_ts["src/modules/run-configuration/run-configuration.constants.ts"]
file_src_modules_run_configuration_run_configuration_module_ts["src/modules/run-configuration/run-configuration.module.ts"]
file_src_modules_run_configuration_run_configuration_service_ts["src/modules/run-configuration/run-configuration.service.ts"]
file_src_modules_run_configuration_run_configuration_service_unit_test_ts["src/modules/run-configuration/run-configuration.service.unit.test.ts"]
file_src_modules_run_configuration_run_configuration_types_ts["src/modules/run-configuration/run-configuration.types.ts"]
file_src_modules_verdict_verdict_constants_ts["src/modules/verdict/verdict.constants.ts"]
file_src_modules_verdict_verdict_module_ts["src/modules/verdict/verdict.module.ts"]
file_src_modules_verdict_verdict_service_ts["src/modules/verdict/verdict.service.ts"]
file_src_modules_verdict_verdict_service_unit_test_ts["src/modules/verdict/verdict.service.unit.test.ts"]
file_src_modules_verdict_verdict_types_ts["src/modules/verdict/verdict.types.ts"]
file_testing_mocks_ts["testing/mocks.ts"]
file_testing_setup_ts["testing/setup.ts"]
file_vite_config_ts["vite.config.ts"]
file_vitest_config_ts["vitest.config.ts"]
file_src_callidescope_nx_module_ts --> file_src_modules_address_address_module_ts
file_src_callidescope_nx_module_ts --> file_src_modules_plugin_plugin_module_ts
file_src_executors_breadth_executor_ts --> file_src_executors_address_types_ts
file_src_executors_breadth_executor_ts --> file_src_modules_address_address_utilities_ts
file_src_executors_breadth_executor_unit_test_ts --> file_src_executors_breadth_executor_ts
file_src_executors_breadth_executor_unit_test_ts --> file_src_modules_address_address_utilities_ts
file_src_executors_depth_executor_ts --> file_src_executors_address_types_ts
file_src_executors_depth_executor_ts --> file_src_modules_address_address_utilities_ts
file_src_executors_depth_executor_unit_test_ts --> file_src_executors_depth_executor_ts
file_src_executors_depth_executor_unit_test_ts --> file_src_modules_address_address_utilities_ts
file_src_executors_gate_batch_executor_ts --> file_src_executors_gate_executor_types_ts
file_src_executors_gate_batch_executor_ts --> file_src_modules_plugin_plugin_context_utilities_ts
file_src_executors_gate_batch_executor_ts --> file_src_modules_plugin_plugin_constants_ts
file_src_executors_gate_batch_executor_ts --> file_src_modules_plugin_plugin_types_ts
file_src_executors_gate_batch_executor_ts --> file_src_modules_plugin_plugin_utilities_ts
file_src_executors_gate_batch_executor_unit_test_ts --> file_src_executors_gate_batch_executor_ts
file_src_executors_gate_batch_executor_unit_test_ts --> file_src_executors_gate_executor_types_ts
file_src_executors_gate_batch_executor_unit_test_ts --> file_src_modules_options_options_service_ts
file_src_executors_gate_batch_executor_unit_test_ts --> file_src_modules_plugin_plugin_constants_ts
file_src_executors_gate_batch_executor_unit_test_ts --> file_src_modules_plugin_plugin_service_ts
file_src_executors_gate_batch_executor_unit_test_ts --> file_src_modules_plugin_plugin_types_ts
file_src_executors_gate_executor_integration_test_ts --> file_src_executors_gate_executor_ts
file_src_executors_gate_executor_integration_test_ts --> file_src_executors_gate_executor_types_ts
file_src_executors_gate_executor_integration_test_ts --> file_src_modules_plugin_plugin_constants_ts
file_src_executors_gate_executor_integration_test_ts --> file_src_modules_projects_projects_service_ts
file_src_executors_gate_executor_ts --> file_src_executors_gate_executor_types_ts
file_src_executors_gate_executor_ts --> file_src_modules_plugin_plugin_context_utilities_ts
file_src_executors_gate_executor_ts --> file_src_modules_plugin_plugin_constants_ts
file_src_executors_gate_executor_ts --> file_src_modules_plugin_plugin_utilities_ts
file_src_executors_gate_executor_unit_test_ts --> file_src_executors_gate_executor_ts
file_src_executors_gate_executor_unit_test_ts --> file_src_modules_options_options_service_ts
file_src_executors_gate_executor_unit_test_ts --> file_src_modules_plugin_plugin_constants_ts
file_src_executors_gate_executor_unit_test_ts --> file_src_modules_plugin_plugin_service_ts
file_src_executors_gate_executor_unit_test_ts --> file_src_modules_plugin_plugin_types_ts
file_src_executors_trace_executor_ts --> file_src_executors_trace_executor_types_ts
file_src_executors_trace_executor_ts --> file_src_modules_plugin_plugin_context_utilities_ts
file_src_executors_trace_executor_ts --> file_src_modules_plugin_plugin_utilities_ts
file_src_executors_trace_executor_unit_test_ts --> file_src_executors_trace_executor_ts
file_src_executors_trace_executor_unit_test_ts --> file_src_modules_options_options_service_ts
file_src_executors_trace_executor_unit_test_ts --> file_src_modules_plugin_plugin_service_ts
file_src_executors_trace_executor_unit_test_ts --> file_src_modules_plugin_plugin_types_ts
file_src_index_ts --> file_src_modules_plugin_plugin_context_utilities_ts
file_src_index_ts --> file_src_modules_plugin_plugin_constants_ts
file_src_index_unit_test_ts --> file_src_index_ts
file_src_index_unit_test_ts --> file_src_modules_plugin_plugin_service_ts
file_src_index_unit_test_ts --> file_src_modules_plugin_plugin_types_ts
file_src_modules_address_address_module_ts --> file_src_modules_address_address_service_ts
file_src_modules_address_address_service_ts --> file_src_modules_address_address_types_ts
file_src_modules_address_address_service_unit_test_ts --> file_src_modules_address_address_service_ts
file_src_modules_address_address_utilities_ts --> file_src_executors_address_types_ts
file_src_modules_address_address_utilities_ts --> file_src_modules_plugin_plugin_context_utilities_ts
file_src_modules_address_address_utilities_ts --> file_src_modules_plugin_plugin_utilities_ts
file_src_modules_address_address_utilities_unit_test_ts --> file_src_modules_address_address_service_ts
file_src_modules_address_address_utilities_unit_test_ts --> file_src_modules_address_address_utilities_ts
file_src_modules_address_address_utilities_unit_test_ts --> file_src_modules_options_options_service_ts
file_src_modules_address_address_utilities_unit_test_ts --> file_src_modules_plugin_plugin_service_ts
file_src_modules_address_address_utilities_unit_test_ts --> file_src_modules_plugin_plugin_types_ts
file_src_modules_options_options_module_ts --> file_src_modules_options_options_service_ts
file_src_modules_options_options_service_ts --> file_src_modules_options_options_constants_ts
file_src_modules_options_options_service_ts --> file_src_modules_options_options_types_ts
file_src_modules_options_options_service_unit_test_ts --> file_src_modules_options_options_constants_ts
file_src_modules_options_options_service_unit_test_ts --> file_src_modules_options_options_service_ts
file_src_modules_plugin_plugin_context_utilities_ts --> file_src_callidescope_nx_module_ts
file_src_modules_plugin_plugin_context_utilities_ts --> file_src_modules_address_address_service_ts
file_src_modules_plugin_plugin_context_utilities_ts --> file_src_modules_options_options_service_ts
file_src_modules_plugin_plugin_context_utilities_ts --> file_src_modules_plugin_plugin_constants_ts
file_src_modules_plugin_plugin_context_utilities_ts --> file_src_modules_plugin_plugin_service_ts
file_src_modules_plugin_plugin_context_utilities_ts --> file_src_modules_plugin_plugin_types_ts
file_src_modules_plugin_plugin_context_utilities_ts --> file_src_modules_projects_projects_service_ts
file_src_modules_plugin_plugin_context_utilities_unit_test_ts --> file_src_modules_address_address_service_ts
file_src_modules_plugin_plugin_context_utilities_unit_test_ts --> file_src_modules_options_options_service_ts
file_src_modules_plugin_plugin_context_utilities_unit_test_ts --> file_src_modules_plugin_plugin_context_utilities_ts
file_src_modules_plugin_plugin_context_utilities_unit_test_ts --> file_src_modules_plugin_plugin_service_ts
file_src_modules_plugin_plugin_context_utilities_unit_test_ts --> file_src_modules_projects_projects_service_ts
file_src_modules_plugin_plugin_module_ts --> file_src_modules_options_options_module_ts
file_src_modules_plugin_plugin_module_ts --> file_src_modules_plugin_plugin_service_ts
file_src_modules_plugin_plugin_module_ts --> file_src_modules_projects_projects_module_ts
file_src_modules_plugin_plugin_module_ts --> file_src_modules_run_configuration_run_configuration_module_ts
file_src_modules_plugin_plugin_module_ts --> file_src_modules_verdict_verdict_module_ts
file_src_modules_plugin_plugin_service_ts --> file_src_modules_options_options_constants_ts
file_src_modules_plugin_plugin_service_ts --> file_src_modules_options_options_service_ts
file_src_modules_plugin_plugin_service_ts --> file_src_modules_options_options_types_ts
file_src_modules_plugin_plugin_service_ts --> file_src_modules_plugin_plugin_constants_ts
file_src_modules_plugin_plugin_service_ts --> file_src_modules_plugin_plugin_types_ts
file_src_modules_plugin_plugin_service_ts --> file_src_modules_projects_projects_service_ts
file_src_modules_plugin_plugin_service_ts --> file_src_modules_run_configuration_run_configuration_service_ts
file_src_modules_plugin_plugin_service_ts --> file_src_modules_verdict_verdict_service_ts
file_src_modules_plugin_plugin_service_unit_test_ts --> file_src_modules_options_options_service_ts
file_src_modules_plugin_plugin_service_unit_test_ts --> file_src_modules_plugin_plugin_constants_ts
file_src_modules_plugin_plugin_service_unit_test_ts --> file_src_modules_plugin_plugin_service_ts
file_src_modules_plugin_plugin_service_unit_test_ts --> file_src_modules_plugin_plugin_types_ts
file_src_modules_plugin_plugin_service_unit_test_ts --> file_src_modules_projects_projects_service_ts
file_src_modules_plugin_plugin_service_unit_test_ts --> file_src_modules_run_configuration_run_configuration_service_ts
file_src_modules_plugin_plugin_service_unit_test_ts --> file_src_modules_verdict_verdict_service_ts
file_src_modules_plugin_plugin_types_ts --> file_src_modules_plugin_plugin_constants_ts
file_src_modules_plugin_plugin_utilities_ts --> file_src_modules_plugin_plugin_context_utilities_ts
file_src_modules_plugin_plugin_utilities_ts --> file_src_modules_plugin_plugin_types_ts
file_src_modules_projects_projects_module_ts --> file_src_modules_projects_projects_service_ts
file_src_modules_projects_projects_service_ts --> file_src_modules_projects_projects_types_ts
file_src_modules_projects_projects_service_unit_test_ts --> file_src_modules_projects_projects_service_ts
file_src_modules_run_configuration_run_configuration_module_ts --> file_src_modules_run_configuration_run_configuration_service_ts
file_src_modules_run_configuration_run_configuration_service_ts --> file_src_modules_run_configuration_run_configuration_types_ts
file_src_modules_run_configuration_run_configuration_service_unit_test_ts --> file_src_modules_run_configuration_run_configuration_service_ts
file_src_modules_verdict_verdict_module_ts --> file_src_modules_verdict_verdict_service_ts
file_src_modules_verdict_verdict_service_ts --> file_src_modules_plugin_plugin_constants_ts
file_src_modules_verdict_verdict_service_ts --> file_src_modules_plugin_plugin_types_ts
file_src_modules_verdict_verdict_service_unit_test_ts --> file_src_modules_plugin_plugin_constants_ts
file_src_modules_verdict_verdict_service_unit_test_ts --> file_src_modules_plugin_plugin_types_ts
file_src_modules_verdict_verdict_service_unit_test_ts --> file_src_modules_verdict_verdict_service_ts
缩写表
项目
计量目标
类型脚本
Java 脚本
蟒
贾森
也门
移动
贝壳
SQL 组合键
高级理事会
支助科
公约
朱比特语Name
标记
调用镜
追踪到的呼叫堆栈 projects/ic-suite/callidescope/callidescope-nx首先最深处 每个框架显示它需要什么,它返回什么,以及它的文件内容.
| 措施 | 数值 |
|---|---|
| 可调用 | 83个 |
| 文件 | 第44条 |
| 追踪的电话 | 123国道 |
| 调用堆栈 | 第7条 |
| 最深的堆栈 | 页:1 |
| 通过重复堆叠 | 0 个 |
| 无法接听的电话 | 1个 |
限制
如项目本身所宣布的那样,对该项目作出何种判断 callidescope.config.ts。 。 。 .
| 限制 | 数值 |
|---|---|
maximumDepth | 页:1 |
maximumBreadth | 第7条 |
调用堆栈( 深度)
1. 联合国. breadthExecutor - 深度 17 个孤儿
🚀 breadthExecutor(…): Promise<{ success: boolean; }> [projects/ic-suite/callidescope/callidescope-nx/src/executors/breadth/executor.ts:15]
↳ Prints each named callable's direct callers and callees side by side — the two questions a rename or a refactor needs…
└─> runAddressExecutor(…): Promise<{ success: boolean; }> [projects/ic-suite/callidescope/callidescope-nx/src/modules/address/address.utilities.ts:19]
↳ Runs the address lookups on behalf of the `depth` or `breadth` executor.
└─> AddressService.runDepth(args: LookupArguments): Promise<LookupResult> [projects/ic-suite/callidescope/callidescope-nx/src/modules/address/address.service.ts:152]
↳ Prints every call stack above and below each callable.
└─> AddressService.locate(…): Promise<string | { identified: { address: string; id: string; }[]; workspace: LocatedWorkspace; }> [projects/ic-suite/callidescope/callidescope-nx/src/modules/address/address.service.ts:74]
↳ Traces the selection, then matches every address against it.
└─> AddressLookupService.locate(options: AddressCommandOptions): Promise<LocatedWorkspace> [projects/ic-suite/callidescope/callidescope-cli/src/modules/address-lookup/address-lookup.service.ts:87]
↳ Loads the configuration and traces the workspace, matching nothing yet.
└─> CallidescopeService.locate(args: TraceArguments): Promise<LocateOutcome> [projects/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:394]
↳ Collects every callable and assembles the graph over them, without running the analysis a full trace does.
└─> GraphAssemblyService.assemble(args: AssembleGraphArguments): AssembledGraph [projects/ic-suite/callidescope/callidescope-graph/src/modules/graph/graph-assembly.service.ts:43]
↳ Builds the call graph and everything derived from it.
└─> EdgesService.build(args: BuildEdgesArguments): EdgeCollection [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:251]
↳ Builds every edge in the graph, and records the calls it could not.
└─> EdgesService.buildSiteEdges(…): { edges: CallEdge[]; unresolved: UnresolvedCall[]; } [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:59]
↳ Turns one call site into the edges and non-resolutions it produced.
└─> EdgesService.resolveSite(…): ResolvedCallSite | undefined [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:226]
↳ Resolves one call site, choosing the right strategy for its shape.
└─> SymbolResolutionService.resolve(…): ResolvedCallSite [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:267]
↳ Resolves a call expression to every declaration it can reach.
└─> SymbolResolutionService.resolveSymbol(…): ResolvedCallSite [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:165]
↳ Resolves an already-identified callee symbol to its declarations.
└─> SymbolResolutionService.resolveThroughHierarchy(…): ResolvedCallSite [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:217]
↳ Expands an interface or abstract member to its implementations.
└─> ClassesService.resolveImplementations(…): ImplementationLookup [projects/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:204]
↳ Finds the concrete declarations one interface member resolves to.
└─> ClassesService.flatMap(…)(this: undefined, candidate: ts.ClassDeclaration): ts.Declaration[] [projects/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:232]
└─> ClassesService.readMemberDeclarations(…): Declaration[] [projects/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:148]
↳ Reads one member's concrete declarations off a candidate class.
└─> ClassesService.filter(…)(member: ts.PropertyDeclaration | ts.MethodDeclaration): boolean [projects/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:162]
2. 联合国. depthExecutor - 深度 17 个孤儿
🚀 depthExecutor(…): Promise<{ success: boolean; }> [projects/ic-suite/callidescope/callidescope-nx/src/executors/depth/executor.ts:15]
↳ Prints every call stack above and below each named callable — every caller chain up to a root, every callee chain down…
└─> runAddressExecutor(…): Promise<{ success: boolean; }> [projects/ic-suite/callidescope/callidescope-nx/src/modules/address/address.utilities.ts:19]
↳ Runs the address lookups on behalf of the `depth` or `breadth` executor.
└─> AddressService.runDepth(args: LookupArguments): Promise<LookupResult> [projects/ic-suite/callidescope/callidescope-nx/src/modules/address/address.service.ts:152]
↳ Prints every call stack above and below each callable.
└─> AddressService.locate(…): Promise<string | { identified: { address: string; id: string; }[]; workspace: LocatedWorkspace; }> [projects/ic-suite/callidescope/callidescope-nx/src/modules/address/address.service.ts:74]
↳ Traces the selection, then matches every address against it.
└─> AddressLookupService.locate(options: AddressCommandOptions): Promise<LocatedWorkspace> [projects/ic-suite/callidescope/callidescope-cli/src/modules/address-lookup/address-lookup.service.ts:87]
↳ Loads the configuration and traces the workspace, matching nothing yet.
└─> CallidescopeService.locate(args: TraceArguments): Promise<LocateOutcome> [projects/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:394]
↳ Collects every callable and assembles the graph over them, without running the analysis a full trace does.
└─> GraphAssemblyService.assemble(args: AssembleGraphArguments): AssembledGraph [projects/ic-suite/callidescope/callidescope-graph/src/modules/graph/graph-assembly.service.ts:43]
↳ Builds the call graph and everything derived from it.
└─> EdgesService.build(args: BuildEdgesArguments): EdgeCollection [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:251]
↳ Builds every edge in the graph, and records the calls it could not.
└─> EdgesService.buildSiteEdges(…): { edges: CallEdge[]; unresolved: UnresolvedCall[]; } [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:59]
↳ Turns one call site into the edges and non-resolutions it produced.
└─> EdgesService.resolveSite(…): ResolvedCallSite | undefined [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:226]
↳ Resolves one call site, choosing the right strategy for its shape.
└─> SymbolResolutionService.resolve(…): ResolvedCallSite [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:267]
↳ Resolves a call expression to every declaration it can reach.
└─> SymbolResolutionService.resolveSymbol(…): ResolvedCallSite [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:165]
↳ Resolves an already-identified callee symbol to its declarations.
└─> SymbolResolutionService.resolveThroughHierarchy(…): ResolvedCallSite [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:217]
↳ Expands an interface or abstract member to its implementations.
└─> ClassesService.resolveImplementations(…): ImplementationLookup [projects/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:204]
↳ Finds the concrete declarations one interface member resolves to.
└─> ClassesService.flatMap(…)(this: undefined, candidate: ts.ClassDeclaration): ts.Declaration[] [projects/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:232]
└─> ClassesService.readMemberDeclarations(…): Declaration[] [projects/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:148]
↳ Reads one member's concrete declarations off a candidate class.
└─> ClassesService.filter(…)(member: ts.PropertyDeclaration | ts.MethodDeclaration): boolean [projects/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:162]
3个. gateBatchExecutor 15个孤儿
🚀 gateBatchExecutor(…): Promise<Record<string, GateBatchTaskResult>> [projects/ic-suite/callidescope/callidescope-nx/src/executors/gate/batch-executor.ts:33]
↳ Gates every task Nx batched for this executor from one trace.
└─> PluginService.runGateBatch(args: RunGateBatchArguments): Promise<Record<string, RunTraceResult>> [projects/ic-suite/callidescope/callidescope-nx/src/modules/plugin/plugin.service.ts:394]
↳ Gates every task of a batch from one trace of their combined scope.
└─> CallidescopeService.trace(args: TraceArguments): Promise<TraceOutcome> [projects/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:408]
↳ Traces a workspace and returns everything the run found.
└─> CallidescopeService.analyze(…): AnalyzeOutcome [projects/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:295]
↳ Derives every finding from the collected callables.
└─> GraphAssemblyService.assemble(args: AssembleGraphArguments): AssembledGraph [projects/ic-suite/callidescope/callidescope-graph/src/modules/graph/graph-assembly.service.ts:43]
↳ Builds the call graph and everything derived from it.
└─> EdgesService.build(args: BuildEdgesArguments): EdgeCollection [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:251]
↳ Builds every edge in the graph, and records the calls it could not.
└─> EdgesService.buildSiteEdges(…): { edges: CallEdge[]; unresolved: UnresolvedCall[]; } [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:59]
↳ Turns one call site into the edges and non-resolutions it produced.
└─> EdgesService.resolveSite(…): ResolvedCallSite | undefined [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:226]
↳ Resolves one call site, choosing the right strategy for its shape.
└─> SymbolResolutionService.resolve(…): ResolvedCallSite [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:267]
↳ Resolves a call expression to every declaration it can reach.
└─> SymbolResolutionService.resolveSymbol(…): ResolvedCallSite [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:165]
↳ Resolves an already-identified callee symbol to its declarations.
└─> SymbolResolutionService.resolveThroughHierarchy(…): ResolvedCallSite [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:217]
↳ Expands an interface or abstract member to its implementations.
└─> ClassesService.resolveImplementations(…): ImplementationLookup [projects/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:204]
↳ Finds the concrete declarations one interface member resolves to.
└─> ClassesService.flatMap(…)(this: undefined, candidate: ts.ClassDeclaration): ts.Declaration[] [projects/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:232]
└─> ClassesService.readMemberDeclarations(…): Declaration[] [projects/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:148]
↳ Reads one member's concrete declarations off a candidate class.
└─> ClassesService.filter(…)(member: ts.PropertyDeclaration | ts.MethodDeclaration): boolean [projects/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:162]
再打四通电话
4.四. gateExecutor 15个孤儿
🚀 gateExecutor(…): Promise<{ success: boolean; }> [projects/ic-suite/callidescope/callidescope-nx/src/executors/gate/executor.ts:31]
↳ Fails one project's task when its call stacks broke the limits it is held to.
└─> PluginService.runGate(args: RunGateArguments): Promise<RunTraceResult> [projects/ic-suite/callidescope/callidescope-nx/src/modules/plugin/plugin.service.ts:368]
↳ Traces the resolved directories and judges what it found against the limits every project in scope declared.
└─> CallidescopeService.trace(args: TraceArguments): Promise<TraceOutcome> [projects/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:408]
↳ Traces a workspace and returns everything the run found.
└─> CallidescopeService.analyze(…): AnalyzeOutcome [projects/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:295]
↳ Derives every finding from the collected callables.
└─> GraphAssemblyService.assemble(args: AssembleGraphArguments): AssembledGraph [projects/ic-suite/callidescope/callidescope-graph/src/modules/graph/graph-assembly.service.ts:43]
↳ Builds the call graph and everything derived from it.
└─> EdgesService.build(args: BuildEdgesArguments): EdgeCollection [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:251]
↳ Builds every edge in the graph, and records the calls it could not.
└─> EdgesService.buildSiteEdges(…): { edges: CallEdge[]; unresolved: UnresolvedCall[]; } [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:59]
↳ Turns o