Imported from didi/mpx (
packages/utils/AGENTS.md). Install upstream withnpx skills add didi/mpx --skill utils. Copyright stays with the author.
@mpxjs/utils
Mpx 全家桶共享的纯工具库,被 @mpxjs/core、@mpxjs/store、@mpxjs/pinia、@mpxjs/fetch 等大量复用。
入口文件
- src/index.js:聚合 re-export,所有对外能力都通过子模块的
export *暴露。
核心模块(按子文件)
- src/log.js:
error/warn/log等日志包装;同时是componentError的实现来源(componentError.js)。 - src/base.js:基础类型判断、
isObject/isPlainObject/isFunction/noop等。 - src/object.js:对象操作(
hasOwn、getByPath、setByPath、proxy、def等)。 - src/path.js:路径解析工具。
- src/array.js:数组工具。
- src/merge.js:
extend/merge/diffAndCloneA(对象合并/深克隆/差分),统一替代 Object spread。 - src/errorHandling.js:统一错误处理入口,承载
errorHandler。 - src/element.js:DOM/元素相关辅助(Web 端用)。
- src/env.js:运行环境判断(mode / target / env)。
- src/url.js:url / query 解析与拼装。
- src/componentError.js:组件级错误的格式化输出。
- src/make-map.js / makeMap:构造字符串集合查表函数(在 base.js 中导出)。
注:src/log.js 与 src/componentError.js 也通过
index.js的export * from './log'暴露。
典型调用链
- 运行时合并 options:
@mpxjs/core调用extend/merge/diffAndCloneA完成 mixin 合并与深拷贝(替代禁用的 object spread)。 - 响应式辅助:
@mpxjs/store/@mpxjs/pinia调用proxy、getByPath、hasOwn、warn实现路径访问与诊断。 - 错误兜底:组件/页面捕获到异常 → 调用 errorHandling.js 的统一入口 → 触发用户注册的
errorHandler与日志输出。