@anyfu/dict-core
v0.0.1
Published
`@anyfu/dict-core`是一个用于字典数据请求合并、缓存、重试、降级、LRU 管理 的高性能工具,适用于后台配置字典、状态枚举、选项列表等场景。
Readme
@anyfu/dict-core
@anyfu/dict-core是一个用于字典数据请求合并、缓存、重试、降级、LRU 管理 的高性能工具,适用于后台配置字典、状态枚举、选项列表等场景。
同时, 也提供了一些相应的工具函数, 如:transformToOptions、getDictItems、getDictLabel、getOptionLabel、listToTree、treeToArray。
核心能力
| 能力 | 说明 | |---------------|----------------------------------------------------| | 🚀 请求合并 | mergeDelay 窗口内的多个字典请求自动合并为一次 HTTP | | 🧠 LRU 缓存 | 支持最大缓存条数 + 最近最少使用淘汰 | | ⏳ 过期控制 | cacheTime 控制缓存过期时间 | | 🔁 SWR 模式 | 过期数据先返回旧值,再后台刷新 | | 🧯 降级容错 | 请求失败可自动回退到缓存数据 | | 🔄 自动重试 | 支持失败重试与自定义重试条件 | | ✋ 可取消请求 | 支持取消未发出请求 + 进行中请求 | | 🔌 拦截器 | 支持请求和响应拦截 | | 🧩 可定制解析 | 可自定义响应结构和字典解析逻辑 |
工具函数
| 函数 | 作用 | |----------------|------------------------------------------------------| | transformToOptions | 将 枚举 / 普通对象 转换为 UI 组件可用的 options 结构 | | getDictItems | 获取字典数据列表,支持 禁用过滤、树形结构转换 | | getDictLabel | 根据字典值获取显示 label | | getOptionLabel | 根据 options 列表获取 label(UI 场景常用) | | listToTree | 扁平列表 → 树结构 | | treeToArray | 树结构 → 扁平数组,自动添加层级与父子关系 |
