数据犬 OpenFeature 核心库
配置解析切入点
默认 @datadog/flagging-core 切入点解析没有预计算配置
装入原生起发解码器。 为了分析预先计算和基于规则的配置,
选择进入全解析器 :
import { configurationFromString, configurationToString } from '@datadog/flagging-core/rules-based'
这个 /rules-based 输入点通过两个软件包 exports 地图和a
物理状态 rules-based/package.json 对不支持一揽子出口的解析器:
- 现代解析器使用现有的模块化通用JS/ESM执行.
- 遗产解析器使用自成一体的 CommonJS/ESM 兼容捆绑
同一来源在
yarn build/包装准备. 包括所需的原生生物 代码,所以消费者不需要解决/wire或者说/codegenv2潜行道. - 两种路径都暴露出相同的API并再使用相同的TypeScript声明. 默认 入站点保持模块化,不导入相容捆绑或原生取出解码器.
兼容捆绑会增加 npm 软件包的大小, 但只使用 遗留的基于规则的切入点在应用程序包中包含它们。 他们继续依赖 版权/许可通知和源地图,未为应用程序捆绑程序指定 以优化.
包装包烟雾测试覆盖了Android和iOS捆绑,Metro包同时出口
已启用和已停用,包括遗留下来的通用JS和无害环境管理解决方案。 它执行这些捆绑
无节点 BigInt, (中文(简体) ), TextEncoder,或 TextDecoder; 此检查反向行为但确实
不在实际的赫尔墨斯或JavaScriptCore运行时替换执行测试 .
准备激活时间戳
规则配置是快照. 原生去编码器准备随机活化
时间戳一次,节点提供者准备 JSON 配置在 setConfiguration。 。 。 .
无效的激活只标记受影响的旗帜为剖析错误, 不管选择退出模式如何 .
评价对准备的秒和分数秒进行比较,而不解开时间戳;
使用 Java 脚本 Date 这里将失去选择停产时所需的纳秒精度.
直接JSON核心消费者可以打电话 prepareUniversalFlagConfiguration(configuration) 何时
正在接收配置。 现有的低级评价电话仍然接受原始配置
并准备每面国旗首次使用。 替换已更改的旗帜, 而不是已准备的变异
旗帜就位。 准备不会改变序列化配置.
添加一个公共切入点
packages/core/package.json exports 是真理的唯一来源 为公共道路.
添加 @datadog/flagging-core/foo数字 :
-
创建
src/foo.ts与预期的出口。 在此保留任何所需的初始化 源入点,而不是添加到捆绑器特定列表中. -
添加其现代映射到
exports数字 :{ "./foo": { "types": "./cjs/foo.d.ts", "import": "./esm/foo.js", "require": "./cjs/foo.js", "default": "./esm/foo.js" } } -
运行
yarn workspace @datadog/flagging-core build,并将生成的元数据输入 来源改变。 照常添加该特征的行为测试.
构建生成物理回落表, 发布文件列表, 遗产声明 映射,和相容-捆绑副作用条目. 它发现并建立了CJS/ESM 每个公开的 JavaScript 子路径自动的兼容捆绑 。 不编辑这些 在Webpack配置或烟雾固定装置中显示或登记新路径.
支持混凝土嵌入子路径;通配符导出和不匹配 CJS/ESM/类型目标
失败时发生可操作错误。 删除路径 exports 并重建
拥有后退显示和生成的元数据,而不删除无关的文件.
yarn check:entrypoints 检查生成的元数据而不更改文件 。 线人以前开过
建筑物,以及 prepack 在打包前先检查一下,所以一个已失效的发布文件列表不能默默无闻
省略新的切入点。 包装测试发现每个已申报路径并生成
用于完整地铁矩阵的静态导入。 默认的切入点仍然单独而轻.
最终用户许可证协议
https://www.datadoghq.com/legal/eula 互联网档案馆的存檔,存档日期2013-12-02