Картографирование со святилищем над фэнтезийным миром

У меня есть небольшой пример кода, который работает так, как я ожидал при использовании ramda, но моя попытка перенести это в убежище не удалась.

const IO = require('fantasy-io');
const S = require('sanctuary');
const R = require('ramda');

const url = 'http://localhost:8010?param1=arg1&param2=arg2';

const io = IO.of(url);

// Works as expected:

const r = R.map(R.split('?'), io);
console.dir(r.unsafePerform());
// -> [ 'http://localhost:8010', 'param1=arg1&param2=arg2' ]

// Fails:    

const s = S.map (S.splitOn('?')) (io);
console.dir(s.unsafePerform());

Проблема в том, что версия ramda работает, как и ожидалось, но версия sanctuary завершается с этой ошибкой, может кто-нибудь объяснить причину этого.

TypeError: Invalid value
splitOn :: String -> String -> Array String
                      ^^^^^^
 1)  function() {
        return x;
     } :: Function, (a -> b)

 The value at position 1 is not a member of ‘String’.

1 ответ

Решение

Только одна версия fantasy-io была когда-либо опубликована:

$ npm view fantasy-io versions --json
[
  "0.0.1"
]

Он нацелен на очень старую версию Fantasy Land, поэтому не поддерживает префиксные имена методов.

Проект был заброшен. Я предлагаю искать альтернативу. Я рекомендую Fluture, который является зрелым и ухоженным. Это также хорошо работает с Sanctuary.

Другие вопросы по тегам