SuperAPI AI 工具集

path-to-regexp-v8-migration

数据与分析

查看项目

更新于 10-16 09:48

技能介绍

用途:把使用 path-to-regexp v6 语法的路径字符串迁移到 v8,适用于 RestEndpoint 的 path、resource() 以及任何传给 path-to-regexp 的字符串。迁移规则如下。可选参数:不再用结尾 ?,改为用 {} 包裹可选段(含其前缀),如 /:id? 变为 {/:id},/users/:id? 变为 /users{/:id},/files/:name? 变为 /files{/:name}。重复参数:移除 + 与 * 后缀,改用 *name 通配符,如 /:path+ 变为 /path,/:path 变为 {/path}。带引号的参数名:参数名须为合法 JS 标识符,含特殊字符需用双引号,如 /:with-dash 变为 /:"with-dash",/:my.param 变为 /:"my.param"。转义特殊字符:{}()[]+?!:\ 作为字面量时需用 \ 转义,如 /(literal) 变为 /\(literal\),/a+b 变为 /a\+b;路径中字面量 ?(如 ?per_page=50 前)必须保留为 \?,去掉反斜杠会在 compile() 时报 Unexpected ?。自定义正则移除:/:id(\d+) 等内联正则不再支持,改为 /:id。组合示例:/:attr1?{-:attr2}?{-:attr3}? 变为 {/:attr1}{-:attr2}{-:attr3};/search\?q=:q?&page=:page? 变为 /search?{q=:q}{&page=:page}。查找位置:RestEndpoint、resource()、.extend() 中的 path 属性,docs/rest/api/ 文档,typescript-tests/ 类型测试,以及含代码示例的博客与更新日志。类型系统:pathTypes.ts 从路径字符串推断 TS 参数类型,:name 与 *name 为必填,{/:name} 与 {/name} 为可选(结尾 } 表示可选),:"quoted" 由 CleanKey 去引号得到属性名,\:、\、\} 视为转义而非参数。限制:官方文档仅给出此迁移规则,其他细节与工具支持情况暂未提供。