我正在尝试使用Purescript为Firestore中的SetOptions
数据类型建模。
到目前为止,我有以下内容
SetOptions
请注意,foreign import data FieldPath :: Type
foreign import buildFieldPath :: Array String -> FieldPath
foreign import fieldNames :: FieldPath -> Array String
type MergeFields = Array (String \/ FieldPath)
data SetOptions
= MergeOption Merge
| MergeFieldsOption MergeFields
是求和类型,因为SetOptions
和merge
是互斥的(即使未记录)。>>
现在我需要将mergeFields
转换为Javascript对象,以便可以将其从Javascript SetOptions
库传递给某些函数。
应该是某种形式
firebase
我的问题是这种类型。
由于包含的数据不是同质的,因此我无法使用{
"mergeFields": [
"foo",
new FieldPath("bar", "baz")
]
}
(Object
表示布尔值,Object
表示数组)。
我无法使用merge
,因为我需要在结果中包含mergeFields
个对象。
我到目前为止发现的唯一解决方案是返回一些Json
,然后在javascript端对其进行解析,并在需要的地方添加Json
对象,但是它看起来很脏而且很脆弱。
我正在尝试使用Purescript对Firestore中的SetOptions数据类型进行建模。到目前为止,我具有以下外部导入数据FieldPath ::类型外部导入buildFieldPath :: Array String-> ...
我可能会跳过PS端的副产品FieldPath
表示,只提供这两个“脏”构造函数: