@arxo/law类型
类型脚本 阿克索法 核心0.1:合法的IR(CLIR), 评价文件、诊断、包单、锁文件、决定 表格、参数数据集、查询和规范文件的其余部分 型号.
只有类型. 没有运行时引擎, 没有依赖, 一个小生成的运行时
用于诊断码登记册的模块。 实际运行法律,使用
@arxo/law-engine这些是
和它所搭载的一样, 单独出版的消费者只和
引擎在电线上不需要拉 4.5 MB的Web Assembly.
安装
npm install --save-dev @arxo/law-types
使用
import type { EvaluationDocument, Diagnostic, LegalIr } from '@arxo/law-types';
function firstIssue(doc: EvaluationDocument) {
return doc.issues?.[0];
}
这些类型的来源
他们是 生成从来没有手写。 规范的JSON计划 定义每个文档的形状; 代码生成器将其转换为 TypeScript, 和自动检查验证计划目录 生成器的注册, 生成的文件和此软件包的构建列表 说吧 切换计划没有达到类型,反而会失败 而不是说谎言.
如果一个计划使用有条件的成分(allOf 编号 : if-then生成
类型是故意宽的,并在评论中这样说。 准确性是
必须是 可见而不是假装准确.
诊断代码
import type { LawDiagnosticCode } from '@arxo/law-types/diagnostics';
import {
KNOWN_DIAGNOSTIC_CODES,
isKnownDiagnosticCode,
} from '@arxo/law-types/diagnostics';
KnownDiagnosticCode 是每个人的结合 LDC-… 从两者收集代码
引擎执行和从规格通货。 四门课是
工会由下列机构组成:
- 发射 ——至少一项实施实际产生本守则;
- 文档 规格名称,尚未发布;
- 保留 仅由配套文件命名
LDC-E8xxx范围为 保留给尚未遵守的建议.
消费型是故意的 打开数字 :
export type LawDiagnosticCode = KnownDiagnosticCode | (string & {});
代码是添加剂——被冰冻的0.1语义通过添加而生长——所以是一个引擎
比这套计划更新 工会从不以密码合法回答
听说了 一个封闭的enum会拒绝这个答案,这将是关于
引擎,不是检查它. string & {} 保持编辑器自动补全
接受未知代码时已知代码。 同样的原因
isKnownDiagnosticCode(code) === false 意思是"不知道... .. 这个 软件包
版本,从来没有"不是真正的代码".
匹配代码, 而不是消息
引擎信息是俄语,其确切文本属于字节级
两个独立执行同一语义的契约——它
在不违反合同的情况下,无法在一方翻译。 马厩,
静态诊断语言独立控件是其 code数字 :
// yes
if (diagnostic.code === 'LDC-E1104') { … }
// no — this string is a contract between two engines, not an API
if (diagnostic.message.includes('пакет')) { … }
如果您正在构建一个面向用户的产品, 请将代码映射到本地化 字符串而不是通过引擎文本。 医生也一样 在生成类型中的评论 : 它们带有 schemas' 的俄语正文, 因为 计划是规范的来源 在这里翻译它们会创造一个 第二,不加限制的描述.
版本
每个软件包的独立成像器,引擎和客户端版本
分别. 0.x 发布精确相容版本的比克包.
许可证
阿帕奇2.0 (英语). 见 LICENSE 财务报告和审定财务报表 NOTICE。 。 。 .
从源头建楼
在源检出中 :
npm run build -- --public --package-out /tmp/new-law-types-package
建筑复制了所制作的种类和公众诊断 登记;不运行货物或再生计划.
登记处还支持 historical 代码通过记录的更改而退役.
结构类型描述文档格式;其存在不承诺
生成该格式的每个操作都在此分布中.