用途:为 Enonic XP 的无头内容交付编写、调试并优化 Guillotine GraphQL 查询。
主要能力:扫描工作区中已有的 Guillotine 用法;区分 5.x 字符串式 query 与 6.x+ 的 queryDsl / queryDslConnection,并识别 Guillotine 7 Extensions API;按单条内容、子节点、过滤搜索、类型元数据选择查询形态;构造内容类型片段(类型名由描述符转换,如 com.enonic.app.myapp:BlogPost → com_enonic_app_myapp_BlogPost);构建 Query DSL 过滤与排序;在 connection 变体上添加聚合与高亮;生成 TypeScript 类型;设置站点上下文;执行查询校验。
使用方式:先运行 node scripts/find-guillotine-targets.mjs . 清点目标;Node 不可用时手动搜索 guillotine、queryDsl、queryDslConnection、/lib/guillotine。组合查询前阅读 references/guillotine-reference.md,涉及版本迁移时阅读 references/compatibility.md,命中示例模式时阅读 references/examples.md,出现空结果或类型错误时阅读 references/troubleshooting.md。生成类型时以 assets/guillotine-query.template.ts 为模板,替换 APP_KEY、CONTENT_TYPE、GRAPHQL_TYPE、FIELDS 占位符。站点相关查询可设置 siteKey、X-Guillotine-SiteKey 请求头,或在路径参数使用 ${site} 占位符,并用 _path(type: siteRelative) 返回站点相对路径。
适用场景:Enonic XP headless 项目中的内容查询编写、分页、过滤搜索、聚合统计、高亮、类型化查询生成及版本迁移。
限制:聚合与高亮仅在 queryDslConnection 上可用;每个 QueryDSLInput 只能包含一个表达式字段;每个 DSLExpressionValueInput 只能包含一个值类型字段;连接类查询需传入 after / first 进行分页。未提供具体收费、价格或平台信息。