如何使用Fable(F#)进行base64编码?

时间:2017-05-05 15:15:40

标签: f# fable-f#

我使用Fable.PowerPack的FetchAPI来制作基本的身份验证应用程序,但我遇到麻烦,因为我无法进行base64编码。

例如,我写了这样的代码,

let base64enc str =
    str
    |> Seq.map byte
    |> Array.ofSeq
    |> System.Convert.ToBase64String

但是,会发生以下错误。

Error FABLE: Can not find replacement for System.Convert.ToBase64String

有什么办法吗?

1 个答案:

答案 0 :(得分:3)

我认为JavaScript btoa function可以满足您的需求。在寓言中使用它的最简单,最快捷的方法是使用Emit属性:

[<Emit("btoa($0)")>]
let toBase64String (bytes:byte[]) : string = failwith "JS"

.NET方法和JS函数之间可能存在一些细微差别,在这种情况下,您可能需要自己重新实现这些。

此外,这听起来像是Fable可以支持的东西 - .NET操作的替换通常在Replacements.fs file中定义,如果您有兴趣发送拉取请求以添加ToBase64String的映射和其他人,这将是惊人的!