# @data-fair/lib-utils 中文文档

规范地址：https://npmcn.com/package/%40data-fair/lib-utils/

版本：1\.14\.2
npm 元数据更新时间：2026-11-09T10:36:23.479Z
中文译文更新时间：2026-11-11T14:25:57.547Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40data-fair/lib-utils
原文对照：https://npmcn.com/package/%40data-fair/lib-utils/?lang=original

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：217 kB，73 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- 运行依赖：0 个
- peer 依赖：dayjs 1
- 首次发布：2024-10-07T12:40:00.686Z
- 最新版本发布：2026-11-09T10:36:23.239Z
- 近 30 天下载量：2314（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：28（近 12 个月 18 个）

## 中文简介

用于数据公平堆栈的小型无依赖或有依赖光的功能.

## 安装

```sh
npm install @data-fair/lib-utils
```

也可以使用：`pnpm add @data-fair/lib-utils`、`yarn add @data-fair/lib-utils`、`bun add @data-fair/lib-utils`

## README

# @ data-fair/ lib- utils

数据公平堆栈共享的小型无依赖或有依赖光的公用功能:服务(Node.js),Vue应用程序和处理. 每个模块都是由文件路径所导入的独立ES模块.

## 安装

```sh
npm i @data-fair/lib-utils
```

可选对等依赖 : `dayjs` (v1),仅需满足 `format/date-tz.js` 财务报告和审定财务报表 `format/field.js`。 。 。 .

`marked-vuetify.js`, (中文(简体) ), `sanitize-html.js` 财务报告和审定财务报表 `eslint/recommended.js` 仅导入类型 `marked`, (中文(简体) ), `sanitize-html` 财务报告和审定财务报表 `eslint`:在使用这些包的地方安装这些包.

## 模块

| 导入路径 | 说明 |
| --- | --- |
| `@data-fair/lib-utils/http-errors.js` | `httpError(status, message?, { expose? })` 编辑 `HttpError` 4xx的生产没有昂贵的堆栈痕迹. |
| `@data-fair/lib-utils/clone.js` | 快速深克隆(rfdc的轻度无害环境管理副本)处理日期、地图、套件和缓冲器. |
| `@data-fair/lib-utils/json-schema.js` | `jsonSchema(schema)` 取出图案的包装(取出/移出属性、PATCH和PUT变体.), `resolveXI18n`, (中文(简体) ), `makeLocalDefs`。 。 。 . |
| `@data-fair/lib-utils/micro-template.js` | `microTemplate(txt, params)` 替换 `{param}` 字符串中的占位符. |
| `@data-fair/lib-utils/event-promise.js` | `eventPromise(emitter, event, { timeout? })` 等待一个节点事件 `EventEmitter` (拒绝) `error` 或默认在60后). |
| `@data-fair/lib-utils/marked-vuetify.js` | `marked` 扩展渲染下加 Vuetify 类(`markedVuetify`, (中文(简体) ), `createMarkedVuetify({ density, headingClasses })`) (中文(简体) ). |
| `@data-fair/lib-utils/sanitize-html.js` | `getSanitizeOpts(defaults)` 共享 `sanitize-html` 选项(添加) `img`, (中文(简体) ), `class` 属性). |
| `@data-fair/lib-utils/filters/index.js` | 转换共享 `Filtres` 过滤对象到 REST 参数(`filter2params`, (中文(简体) ), `filters2params`)或到一个 lucene 查询字符串(`filter2qs`, (中文(简体) ), `filters2qs`(一) 贬值; `escape`, (中文(简体) ), `filterByDate`。 。 。 . |
| `@data-fair/lib-utils/format/field.js` | 格式化用于显示的数据集列值( X)`formatFieldValue`, (中文(简体) ), `formatFieldValues`, (中文(简体) ), `formatField`, (中文(简体) ), `getFieldLabel`) (中文(简体) ). |
| `@data-fair/lib-utils/format/bytes.js` | `formatBytes(bytes, locale = 'fr')` 人类可读尺寸(`1,2 Mo`) (中文(简体) ). |
| `@data-fair/lib-utils/format/date-tz.js` | `dateTimeInOwnTimeZone(value)` 返回字符串所带的相冲中保留的一个日日; `explicitOffsetMinutes`。 。 。 . |
| `@data-fair/lib-utils/format/attachment.js` | `attachmentFilename(url)` 财务报告和审定财务报表 `webPageLabel(url)` 用于附件和网页列的短标签. |
| `@data-fair/lib-utils/maps.js` | `bbox2zoom(bbox)` 财务报告和审定财务报表 `svgToDataURL(svgStr)`。 。 。 . |
| `@data-fair/lib-utils/in-iframe.js` | `inIframe` 布尔,当页面运行在 iframe (仅浏览器) 内时为真 . |
| `@data-fair/lib-utils/webgl-supported.js` | `isWebglSupported()` (只浏览器). |
| `@data-fair/lib-utils/eslint/recommended.js` | ESLint 平面配置 禁止进口由 lib 所取代的模块(`rfdc`, (中文(简体) ), `http-errors`, (中文(简体) ), `event-to-promise`(......) (中文(简体) ). |

## 使用量

### HTTP 错误

```ts
import { httpError } from '@data-fair/lib-utils/http-errors.js'

if (!dataset) throw httpError(404, 'dataset not found')
// a 5xx message is hidden by the error handler unless exposed explicitly
throw httpError(502, 'remote service unavailable', { expose: true })
```

### 衍生计划

`jsonSchema()` 复制计程器,每种方法都返回包装器 所以调用链 `.schema` 保持结果.

```ts
import jsonSchema from '@data-fair/lib-utils/json-schema.js'
import pageSchema from '#types/page/schema.js'

export default {
  ...jsonSchema(pageSchema)
    .pickProperties(['title', 'owner'])
    .removeRequired()
    .schema,
  $id: 'https://github.com/data-fair/portals/pages/patch-req-body',
  'x-exports': ['validate', 'types']
}
```

`makePatchSchema(properties?)` 财务报告和审定财务报表 `makePutSchema()` 生成通常的 PATCH(不需要,可选属性无效,只读去除)和PUT(只读从不要求)变体.

### 以 Vuetify 类标记下

```ts
import { marked } from 'marked'
import sanitizeHtml from 'sanitize-html'
import { markedVuetify } from '@data-fair/lib-utils/marked-vuetify.js'
import { getSanitizeOpts } from '@data-fair/lib-utils/sanitize-html.js'

marked.use(markedVuetify)
const html = sanitizeHtml(marked.parse(markdown) as string, getSanitizeOpts(sanitizeHtml.defaults))
```

### ESLint 语录

```js
// eslint.config.js
import neostandard from 'neostandard'
import dfLibRecommended from '@data-fair/lib-utils/eslint/recommended.js'

export default [
  ...dfLibRecommended,
  ...neostandard({ ts: true })
]
```

## 常见问题

### @data-fair/lib-utils 是什么？

用于数据公平堆栈的小型无依赖或有依赖光的功能\.

### 如何安装 @data-fair/lib-utils？

在项目目录运行 npm install @data-fair/lib-utils，或使用 pnpm add / yarn add / bun add。

### @data-fair/lib-utils 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/data-fair\_\_lib-utils 是否存在。

### @data-fair/lib-utils 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @data-fair/lib-utils 可以商用吗？

@data-fair/lib-utils 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @data-fair/lib-utils 的下载量有多少？

根据 npm 官方下载统计，@data-fair/lib-utils 在 2026/10/12 – 2026/11/10 这 30 天内被下载 2,314 次，日均约 77 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @data-fair/lib-utils 还在维护吗？

最新版本 1\.14\.2 发布于 2026/11/09（2 天前）；至今共发布 28 个版本，其中过去 12 个月发布了 18 个；首次发布于 2024/10/07。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

