@cocreate/utils

中文文档
2.0.3发布于 2026/11/07AGPL-3.0ES Module近 30 天下载 6378

香草javascript中一个简单的utils组件. 使用 HTML5 属性和/或 JavaScript API 轻松配置.

中文使用文档
文档目录20 节
  1. 文档和演示
  2. 光盘N
  3. 国家预防机制
  4. 线条
  5. 模块使用
  6. 无害环境管理(震动树木)
  7. ESCR 分路径进口
  8. 普通JS( 节点)
  9. 在字符串中渲染值
  10. 查询和排序
  11. 查询
  12. 多字段排序
  13. 存储本地排序
  14. 倾斜
  15. 构建
  16. 领导 $this 选择器
  17. 解析属性名称
  18. 指定嵌入式 AST 结果
  19. AST 中的浏览器全域
  20. 同步和同步调用

创造功用

香草javascript中一个简单的utils组件. 使用 HTML5 属性和/或 JavaScript API 轻松配置. 把它当作我们的旋转 游乐场!

minified gzip brotli GitHub latest release License Hiring

CoCreate-utils

文档和演示

完整的指南和工作演示请参见 贴花

光盘N

<script src="https://cdn.CoCreateJS.com/utils/latest/CoCreate-utils.min.js"></script>
<script src="https://cdn.CoCreateJS.com/utils/latest/CoCreate-utils.min.css"></script>

国家预防机制

$ npm i @cocreate/utils

线条

$ yarn install @cocreate/utils

模块使用

无害环境管理(震动树木)

import { uid, ObjectId } from "@cocreate/utils";

ESCR 分路径进口

import { getValueFromObject } from "@cocreate/utils/getValueFromObject";
import { queryElements } from "@cocreate/utils/queryElements";

普通JS( 节点)

const { uid, ObjectId } = require("@cocreate/utils");
const { getValueFromObject } = require("@cocreate/utils/getValueFromObject");

在字符串中渲染值

renderValue 解决 Coreate 双曲线值和 AST 表达式。 它会 当表达式从所提供的数据读取时,运行时无需DOM节点。 这个 从最内层的占位符向外解决嵌入值,同时调用者 拥有自己的巢穴瞄准镜 可以通过一个习惯 resolveValue 调用.

import { renderValue } from "@cocreate/utils";

const html = await renderValue(
    undefined,
    {
        data: { ready: "<ready>" },
        object: { status: "ready" },
        module: { name: "utils" }
    },
    "<p>{{data.{{object.status}}}} {{$data.module.name}}</p>",
    undefined,
    undefined,
    undefined,
    undefined,
    { escapeOutput: true }
);

可选 escapeOutput hTML 字符串的解析值 输出。 DOM 渲染器可以省略它,因为 DOM 处理文本和属性 指定值时逃出 .

查询和排序

CoCreate在MongoDB、索引DB、MySQL和 其他存储供应商。 MongoDB 查询和排序行为为犬科 合同。 存储包可以使用其本地查询引擎或索引作为 优化,但它必须返回相同的逻辑结果.

共享帮助者可从 @cocreate/utils数字 :

import { queryData, searchData, sortData } from "@cocreate/utils";

查询

queryData(object, query) 对一个对象进行MongoDB式查询. 密钥可能使用点标记来解决嵌入值.

const matches = queryData(
    {
        status: "active",
        profile: { score: 82 },
        tags: ["customer", "priority"]
    },
    {
        status: "active",
        "profile.score": { $gte: 80 },
        tags: { $in: ["priority"] }
    }
);

查询可使用 $and, (中文(简体) ), $or,以及 $nor支持 字段操作者包括平等和不平等比较、成员、, 阵列匹配、 存在、 正则表达式、 类型检查和模块 检查。 储存包装器应将这些条件转化为原生条件 当对应行为可用时查询语言并使用共享 帮助作为相容性倒置.

searchData(object, search) 在一个对象之间进行面向文本的匹配. 它与结构不同 queryData 过滤后可应用 记录满足结构化查询.

多字段排序

sortData(data, sort) 应用所声明顺序的排序字段:

const sorted = sortData(records, [
    { key: "status", direction: "asc" },
    { key: "updated.on", direction: "desc" },
    { key: "_id", direction: "desc" }
]);

第一个领域是初级类型。 只有在 基本价值是平等的,每个后面的字段都打破了所有人留下的联系 上一个字段。 缺少的二级或三级价值不排除 记录.

排序遵循蒙戈DB公约:

  • 键支持点标记,包括嵌入值,如 updated.on。 。 。 .
  • 缺失的字段被视为 null 为了比较.
  • 按上升顺序在普通值之前排序和 在他们之后,依次降下.
  • 不同类型的值遵循了MongoDB的BSON比较顺序.
  • 矩阵和对象比较应当遵循 MongoDB 行为 相应的 JavaScript 表示允许它.
  • 等位排序键并不意味着稳定的顺序 。 包含 _id 作为最后决定 字段.

存储本地排序

存储包装器在生产油罐时更喜欢本土分拣 结果 :

  • MongoDB可以直接使用它的原生类型.
  • IndexedDB在每个索引字段时可以使用一个光标来覆盖一个复合索引 所有字段都使用同一方向.
  • SQL 包装器可以将此类翻译为 ORDER BY 并同时明确匹配 蒙戈DB的无效订单.
  • 混合方向、可选索引DB索引字段或不兼容的本地字段 类型排序必须使用共享的比较器作为倒置.

索引DB 复合索引省略不包含每个索引的记录 字段。 因此,不得设置可选的二级或三级领域 在唯一用于收集结果的光标中,除非包装器也收集 省略的记录。 倒车 sortData 保留统一 行为.

倾斜

过滤和完整的条条令必须在 index 财务报告和审定财务报表 limit 适用。 设置一个不完全排序的结果集 可返回存储提供者的不同记录.

光标页标,包括 _id 作为最后排序键并构建下一个 范围从所有排序键值加 _id提供了决定性的 当多个记录具有相同的前一个值时,边界.

构建

# Build UMD + ESM + CJS
npm run build

# Build only module outputs
npm run build:modules

# Build only UMD bundle
npm run build:umd

目录

通知

图书馆的所有更新都记录在我们 变化 财务报告和审定财务报表 释放。您也可以订阅电子邮件以发布和中断更改.

路线图

如果你对这个项目的未来方向有兴趣, 请看看我们的开放 问题 财务报告和审定财务报表 拖动请求我们想听听你的反馈.

关于

CoCreate-utils 由 CoCreate 开发者经验团队指导和支持.

请发电子邮件给开发者体验团队 这里 如果有任何疑问.

Coreate-utils由CoCreate维护和资助. CoCreate的名称和标志是CoCreate,LLC的商标.

如何贡献

我们鼓励为我们的图书馆捐款(你甚至可能得分) 捐款 详细指南.

我们希望这个图书馆由社区驱动, Coreate 领导。 我们需要你的帮助来实现这一目标。 为了帮助确保我们按正确的顺序建造正确的东西,我们请你们创造 问题 财务报告和审定财务报表 拖动请求 或只是对现有问题进行投票或发表意见或提出请求.

我们感谢你的继续支持,谢谢!

许可证

该软件在GNU Affero通用公共许可证版本3(AGPLv3)和商业许可证下获得双许可证.

  • 开源使用:用于开源项目和非商业用途,此软件可在AGPLv3下提供. AGPLv3允许您自由使用,修改并分发此软件,前提是所有修改和衍生作品也根据AGPLv3获得许可. 营业执照全文见 自由文件。 。 。 .

  • 商业用途: 意图将这一软件用于商业目的的营利性公司和个人必须获得商业许可证。 商业执照,当你签到 API 密钥我们 网站。该许可证允许对软件进行专有使用和修改,而不需要AGPLv3的左取要求。 将这一软件融入专有商业产品和应用是理想的.

如果您没有购买商业许可证,并打算将这个软件用于商业目的,请到我们的网站上注册API密钥.

领导 $this 选择器

启动查询分支 $this 以返回当前元素,或附加 用 CSS 选择器测试该元素 matches() 继续前:

click-query="$this:checked $closest .api-type-filter input:checked[]"
click-query="$this.active[aria-pressed='true'] $parent .target"

$this#id, (中文(简体) ), $this.class, (中文(简体) ), $this[attribute],而伪类都匹配 现在的要素,而不是后代。 失败的比赛只停止 逗号分枝. 裸体 $this 返回没有当前元素 测试。 附加选择器启动剩余查询后的空白; 引用属性或括号内的白空间仍然是测试的一部分. $this 仅在分支开始时支持。 现有横向 运营商和后人选择者继续正常进行.

解析属性名称

import { resolveProperty } from "@cocreate/utils";

const key = resolveProperty(element, "textcontent"); // "textContent"
if (key !== undefined) element[key] = "Updated";

resolveProperty(object, name) 返回匹配名称的原始字符串密钥 没有案件敏感性,或 undefined 当不存在匹配时。 它自己搜东西 财产,包括不可拥有的财产,不读 获取器。 不同的密钥必须是独特的忽略大小写: myMethod 财务报告和审定财务报表 mymethod 同一物体上或其原型链造成 TypeError即使一个是 准确的匹配。 允许使用同一种拼写法进行重叠. 打电话的人 选择是读取、指定还是引用已解决的成员.

指定嵌入式 AST 结果

一个被点到的运算符在已设定范围的对象上识别属性。 何时 该成员不是一个函数, AST 评价嵌入值, 指定 并返回该结果:

await astAsync({
    node: element,
    sandbox: { $this: element, $ExamplePlugin: ExamplePlugin },
    executeAST: {
        "$this.myInstance": { "$ExamplePlugin": ["$this", {}] }
    }
});

两者都有用 astSync 财务报告和审定财务报表 astAsync,包括多个兄弟姐妹的钥匙, 嵌入路径、数组指数和 items[] 附录。 AST解决 从它的沙盒或登记册中找到根,代表写信给 dotNotationToObject。 。 。 . 根对象必须存在; 缺少的父对象由共享创建 帮手 其公约适用于: undefined 删除属性,并指定 undefined 到一个索引化的数组条目,该条目将退出. 现有的可调用成员保留了方法引用语义. 诸如 "$this.myInstance" 仍然读取值; 普通键仍然存储值 aST结果和范围。 返回的结果不自动指定给 插件加载器下的主机元素.

AST 中的浏览器全域

在浏览器评价中, $window 读取浏览器窗口和 $CoCreate 读取当前 window.CoCreate 名称空间。 两个支持点化的地产 读取、指派密钥和方法调用 astSync 财务报告和审定财务报表 astAsync数字 :

astSync({ executeAST: "$window.location.origin" });
astSync({ executeAST: "$CoCreate" });
await astAsync({ executeAST: { "$window.exampleSettings": { enabled: true } } });

Globals在评价时间解析出,因此CoCreate可能在AST后加载. 运算符JS表达式也可以使用 $($window.innerWidth) 财务报告和审定财务报表 $($CoCreate.someProperty),或浏览器正常 window 财务报告和审定财务报表 CoCreate 内部名称 $()。 。 。 .

同步和同步调用

$function 在两者中创建同步回调 astSync 财务报告和审定财务报表 astAsync。 。 。 . 创建回调不会执行它的身体 。 把它包起来 $async 创建 一个同步召回,其身体使用 astAsync 并返回一个承诺:

{
    "$async": {
        "$function": {
            "params": ["value"],
            "body": { "$await": "$value" }
        }
    }
}

两种形式都保留了周围的范围、参数和可选性 bind。 。 。 . $await 需要同步评价;同步回调拒绝. 同步回电仍然可以直接返回承诺,而不等待 这个 Async 配置评价不会改变召回声明.

版本与发布记录

@cocreate/utils 共发布 294 个版本,首次发布于 2021/03/30;过去 12 个月发布了 22 个版本。

版本发布日期距今
2.0.3latest2026/11/073 天前
2.0.22026/11/073 天前
2.0.12026/11/064 天前
2.0.02026/11/037 天前
1.57.02026/10/2120 天前
1.54.02026/08/043 个月前

关于 @cocreate/utils 的常见问题

@cocreate/utils 是什么?

香草javascript中一个简单的utils组件. 使用 HTML5 属性和/或 JavaScript API 轻松配置.

如何安装 @cocreate/utils?

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

@cocreate/utils 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/cocreate__utils 是否存在。

@cocreate/utils 支持 ESM 还是 CommonJS?

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

@cocreate/utils 可以商用吗?

@cocreate/utils 使用 AGPL-3.0 许可。最严格的 Copyleft:除分发外,通过网络向用户提供基于它的服务也需要开源对应源码。闭源 SaaS 使用前务必评估。以上为概括,不构成法律意见,请以许可原文为准。

@cocreate/utils 的下载量有多少?

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

@cocreate/utils 还在维护吗?

最新版本 2.0.3 发布于 2026/11/07(3 天前);至今共发布 294 个版本,其中过去 12 个月发布了 22 个;首次发布于 2021/03/30。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。