@alizeait/unflatto

中文文档
1.0.3发布于 2025/04/01MITTypeScriptESM + CJS零依赖近 30 天下载 3000

微小( ~ 210B) 和快平面物体扩展器, 未平面

中文使用文档
文档目录6 节
  1. 安装
  2. 使用量
  3. 基准
  4. 验证
  5. API 密码
  6. 解充( 输入: 对象、 分隔符? : 字符串)

@alizeait/ unflatto (帮助) Check Coverage

一个小(~210B)和 快点 平整对象扩展器, 未平面

使用一个已经平整的对象,并通过扩展键返回一个新的嵌入对象.

它假设钥匙被一个 . 默认情况下,但此选项可以更改为任何带有分隔符选项的选项.

安装

$ npm install @alizeait/unflatto

使用量

import { unflatto } from "@alizeait/unflatto";

const unflattened = unflatto(
{
  "key1.keyA": "valueI",
  "key2.keyB": "valueII",
  "key3.a.b.c": 2,
  "key4": [],
  "key5.a.0": "value1",
  "key5.a.1": "value2",
  "key5.a.2.key1.keyA": "valueI",
  "key5.a.2.key1.keyB.0": 1,
  "key5.a.2.key1.keyB.1": 2,
  "key5.a.2.key1.keyB.2": 3,
  "key5.a.2.key1.keyB.3": 4,
  "key5.b": null,
  "key5.c": undefined,
  "key6": {}
}

/*
{
  key1: {
    keyA: "valueI",
  },
  key2: {
    keyB: "valueII",
  },
  key3: { a: { b: { c: 2 } } },
  key4: [],
  key5: {
    a: [
      "value1",
      "value2",
      {
        key1: {
          keyA: "valueI",
          keyB: [1, 2, 3, 4],
        },
      },
    ],
    b: null,
    c: undefined,
  },
  key6: {},
});
  */

const unflattoCustom = unflatto({
  "key1-keyA": "valueI",
  "key2-keyB": "valueII",
  "key3-a-b-c": 2,
},"-");

/*
  {
    key1: {
      keyA: "valueI",
    },
    key2: {
      keyB: "valueII",
    },
    key3: { a: { b: { c: 2 } } },
  }
*/

基准

Benchmarks:

  flat.unflatten               x 63,827 ops/sec ±0.95% (89 runs sampled)
  @alizeait/unflatto           x 208,279 ops/sec ±0.84% (93 runs sampled)
  obj-unflatten                x 168,569 ops/sec ±0.68% (92 runs sampled)

运行于 Node.js v12.13.0, 64-bit OS, Intel(R) Core(TM) i5-6600K CPU @ 3.50GHz, 16.0 GB RAM

验证

Validation:

flat.unflatten               ✔
@alizeait/unflatto           ✔
obj-unflatten                ✘
  Wrongly expands arrays

API 密码

解充( 输入: 对象、 分隔符? : 字符串)

回返情况: Object | Array

返回新的扩展对象/阵列.

版本与发布记录

@alizeait/unflatto 共发布 4 个版本,首次发布于 2021/01/24;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.0.3latest2025/04/011.6 年前
1.0.22023/02/083 年前
1.0.12023/01/313 年前
1.0.02021/01/245 年前

关于 @alizeait/unflatto 的常见问题

@alizeait/unflatto 是什么?

微小( ~ 210B) 和快平面物体扩展器, 未平面

如何安装 @alizeait/unflatto?

在项目目录运行 npm install @alizeait/unflatto,或使用 pnpm add / yarn add / bun add。

@alizeait/unflatto 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@alizeait/unflatto 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@alizeait/unflatto 可以商用吗?

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

@alizeait/unflatto 的下载量有多少?

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

@alizeait/unflatto 还在维护吗?

最新版本 1.0.3 发布于 2025/04/01(1.6 年前);至今共发布 4 个版本,其中过去 12 个月发布了 0 个;首次发布于 2021/01/24。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。