const { join, purge } = createPathUtils({
separator: '/',
dangerReplace: (path, sep) => {
// 拒绝绝对路径
if (path.startsWith(sep)) throw new Error('absolute path not allowed');
return path;
},
});
join('a', 'b', 'c'); // 'a/b/c'
join('a', '.', 'b'); // 'a/b'
join('a', '..', 'b'); // 'b'
purge('/a/b/'); // 'a/b'
创建路径处理工具
返回
{ purge, join }两个方法。所有操作基于统一的separator, 支持回调注入安全策略(dangerReplace)和规范化策略(duplicateReplace)。安全注意:默认情况下
dangerReplace为空,路径遍历攻击(../) 不会被拦截。请根据使用场景实现自定义安全策略。