问题标签 [sanctuary]

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.

0 投票
2 回答
336 浏览

javascript - 使用 Sanctuary.js 合并多个对象

我正在尝试将多个对象与 Sanctuary 合并。

使用 Ramda.js,我会做这样的事情(请参阅此处的 REPL ):

但是,对于 Santuary.js,以下代码行会引发异常。

这是我得到的例外:

我对这个错误信息感到困惑。我使用S.reduce不正确吗?另外,如果我写S.reduce(Object.assign)(initialEntry)([]).

0 投票
0 回答
58 浏览

graphql - 在解析自定义标量类型时知道值是否定义为 Nullable 或 NotNullable

我正在创建覆盖内置的自定义标量类型IntFloat. 我想知道架构是否将值定义为可为空的。我想解决一个IntInt!我的自定义标量类型不同的问题

我想要做的是在自定义标量类型的解析器中知道该值是否在模式中定义为 Nullable,以便我可以以不同的方式解析它们并引发自定义错误。

Int(Nullable) 的结果是类型,Maybe Integer( Int!Non-Nullable) 的结果是类型Integer

0 投票
1 回答
95 浏览

javascript - Sanctuary js 执行 2 步有条件的管道

我有一个S.pipe用于上传和操作传入请求文件

有 2 个特定步骤addWatermarkToImagecopyImageToPublicPath只应针对图像文件执行。

我知道如果文件不是图像,我可以返回Left,但这样做也会被忽略。checkIfIsImagecopyFileToPathformatResponse

如果文件不是图像addWatermarkToImage,我想忽略copyImageToPublicPath

我怎样才能做到这一点?

0 投票
1 回答
284 浏览

javascript - 在 Sanctuary 管道中间执行 Fluture 任务

我有这样的管道:

此管道中间有 2 个异步函数。我想awaitforcopyImageToPublicPath然后awaitforcopyFileToPath然后继续正常流程

经过一番搜索,我发现有Future.tryP功能可以做async,但我如何Fluture在这个管道中间使用?

0 投票
1 回答
214 浏览

javascript - 使用 Sancuary Either 执行 Fluture 任务

我有这样的管道

我想在asyncFn. 问题是当我有Right输入时,我可以再分叉它。

当我登录时,pipeResult我看到:

我怎样才能做到这一点?

0 投票
1 回答
215 浏览

javascript - 一种更惯用的编写庇护管道的方式

我写了一个提取对象键的代码片段source(应该是未知的,所以我添加了一个不存在的键baz来提取。我提取的数组中的每个元素 - 我想添加它所在的键提取然后展平结果以获得单个数组。

我在编写代码时遇到了两个主要问题:

  1. 尝试使用S.insert时,它总是返回错误,因为对象值(数字{r:**<<number>>**})与我尝试添加到键的字符串类型不同Section{'Section': **'foo'**}例如)。我最终只是为了传达我的意图而改变了对象。
  2. 我没有设法编写一个适当的映射函数来抽象Maybe并让我访问里面的变量。所以我不得不使用S.maybeToNullable然后将值重新包装到Maybe.
  3. 有没有更好的方法来表达下面写的任何逻辑sanctuary

代码片段:

0 投票
0 回答
151 浏览

typescript - Sanctuary `Maybe` 指的是一个值,但在这里被用作类型

我有这样的功能

它得到any并返回Maybe<MemberId>

但是打字稿告诉我这个错误

我应该怎么办?

0 投票
1 回答
105 浏览

javascript - 操作两个二选一

假设您有以下代码:

addOnefunc1or结合func2比较容易:

但是如何add使用func1andfunc2作为参数调用呢?

ps 我知道 ramda 提供了一个add功能。将该示例视为对现实世界问题的抽象。

0 投票
1 回答
197 浏览

functional-programming - sanctuary.js 中的数据建模挑战

我正在使用 javascript 中的函数式编程构建基于域驱动设计的应用程序。我已将 sanctuary.js 生态系统作为我选择的工具,但我在建模类型方面面临一些挑战。

为了把事情放在上下文中,让我们以下面的代码为例:

我的困惑点如下:

  1. 如何使用 sanctuary-def 定义简单类型?从上面的例子中,如果我想定义一个Amount类型并在 Payment RecordType 定义中使用它,我该怎么做呢?我必须为此定义另一个 RecordType 吗?
  2. 我在这里可能错了,但到目前为止我的理解是RecordType相当于函数式编程中的产品类型。使用 sanctuary.js 定义 sum 类型的方法是什么?上面的EnumType很接近,但似乎是用于简单值,而不是其他类型。更像是,如果我有另外两种类型CashCard,我将如何将另一种类型PaymentMethod 建模为CashCard之间的选择?

我很高兴有任何指示。我对函数式编程和 sanctuary.js 都很陌生,所以如果我缺少明显的东西,我会很感激朝着正确的方向轻推。

非常感谢。

0 投票
1 回答
36 浏览

sanctuary - 使用字符串时 S.min 的错误答案

为什么这甚至可能?(是的,类型强制...但这是 Sanctuary)可以配置 Sanctuary 以便在使用字符串时不返回任何内容吗?有没有一种优雅的方法来处理这个问题?