问题标签 [dhall]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
yaml - dhall-to-yaml:表示嵌套在结构化 yaml 中的非结构化块
我正在玩 dhall,试图代表我在 dhall 中拥有的现有大型 yaml 文件。
具体来说,我正在尝试为大厅管道定义构建 dhall 类型和助手。定义大厅管道的部分 yaml 看起来像我在这里编写的 yaml。我列表中的每个资源都包含一个名称、一个类型和一个源,其结构完全取决于资源的类型。
没有详尽的资源列表供我定义,因为明天有人可能会创建一个新的资源,而且我不想每次第三方创建新的源类型时都更新我的类型。
我为此拥有的 dhall 也在这里,但我不确定我该如何代表source
。我曾考虑在我的类型中省略该字段并指示消费者使用 dhall 的//
运算符添加源,但随后很难将resource
s 嵌入 a[resource]
并仍然进行类型检查。
如何为包含非结构化字段的资源定义 dhall 类型。
haskell - 有没有办法从 haskell 数据类型生成 dhall 模式?
我正在尝试使用 dhall 重写 Haksell 应用程序中使用的 BIG yaml 配置文件。为此,我正在使用json-to-dhall
它需要一个 SCHEMA ,它是结果表达式的类型。问题是实际模式几乎不可能手动编写,因为它涉及到大量的求和类型(和嵌套的求和类型)。我尝试通过手动将 yaml 的某些部分转换为 dhall 来生成模式,然后运行dhall type
. 这给出了一个我可以使用的模式jston-to-dhall
之后。这适用于简单类型,但现在我面临联合(联合)的问题。Dhall 需要类型注释来编写我用来生成类型的文件......所以我想知道有没有办法(使用工具或修改我的 haskell 应用程序)将 Haskell 数据转储到正确的 dhall 文件或至少从 Haskell 类型生成模式。
dhall - Dynamic records key type
I'm trying to generate some YAML containing a map with dynamic keys, as described here. This works if I use Text
keys, but not when the keys have any other type. I'd like to use a union type for the keys if possible.
I've tried using different types for mapKey
, including a union type and Natural
, but with no success. I can work around the problem by converting all mapKey
values to Text
, but this isn't ideal.
Here's a minimal example of what I'm trying to do:
I'd expect it to generate YAML to be:
but instead, the generated YAML looks like this:
dhall - 传递文件名作为参数读取
我的配置从文件中读取证书。
这是一个简单的方法:
我还没有找到/path/to/cert/ca.crt
作为参数传递的方法。例如:
有可能吗?如果没有,已知的解决方法是什么?
dhall - 如何在 dhall 中模拟 Python 连接函数?
我是没有 Haskell 背景的 dhall 新手。如何将字符串列表转换为值以逗号分隔的单个字符串?例如
我尝试了 List/fold,但想不出一种惯用的方法来摆脱多余的逗号。
谢谢
json - 如何在 Dhall 中表示以下 JSON?
我使用以下 JSON 来表示我们的基础架构。这是一个大大简化的版本。
这可以映射到文件夹,并且很容易从代码中处理。
但是,我想使用 Dhall 生成此文件以将可能的键限制为列表。
Dhall 对此表示支持:
唯一的问题是我找不到将记录键作为空类型的支持,只有值可以限制为那些。
这使我拥有以下方式的基础设施:
从代码中处理生成的 JSON 有点困难,我不能像其他表示一样轻松地引用我们基础设施的子集。
有没有办法让 Dhall 拥有像枚举(空类型的联合)这样的键?
dhall - 将不同模式与联合值相关联的惯用方式是什么?
我正在尝试使用 Dhall 类型来表示 Zuul-CI 项目的管道系统:管道可以使用具有不同触发事件的不同连接。
我想提供一个默认管道,为每种类型的连接设置正确的触发事件,其方式是:
我不得不为 ConnectionTrigger 使用 Union,因为合并函数期望该值是单一类型。
有没有办法以某种方式将 GerritTrigger 与 ConnectionTypes.Gerrit 关联并避免在 CheckPipeline 定义中键入事件类型(例如删除 ConnectionTrigger.Gerrit 注释)?
提前致谢 :)
dhall - 如何使用与抽象类型的合并?
我正在尝试实现一个merge
与抽象类型一起使用的通用过程,但它总是失败❰merge❱ expects a record of handlers
,即使调用者传递了一个记录类型:
是否可以指示 configType 将是一个记录类型,以便可以解释这个通用方法?
dhall - 如何使用 dhall 验证配置的内部一致性?
我将从一个几乎代表特使代理配置的配置示例开始:)
规则是,必须定义该名称clusters
列表必须定义为在route
配置部分中使用。如果您仔细观察,此配置将无法加载,因为bodhi_web
is not bodhi-web
. 我将如何在 Dhall 中对其进行编码?
一方面,我可以clusters
在 let 绑定中作为列表,这会有所帮助,但没有什么强迫我使用绑定,实际上我希望将其clusters
视为cluster:
字段的总和类型?依赖类型可以在这里帮助我吗(即我记得在纯脚本中做了类似的事情,它对依赖类型编程的能力有限)
还是我应该只创建一个构造函数/验证器函数并滥用断言来验证它?
还是我不应该?:)