Как передать несколько параметров в цепочку создания Ramda?

Вот четыре функции, которые я пытаюсь объединить в одну строку конечной точки:

const endpoint = str => `${str}` || 'default'
const protocol = str => `https://${str}`
const params = str => `${str}?sort=desc&part=true&`
const query = str => `${str}query={ some:'value', another:'value'}`

let finalEndpoint = R.compose(query, params, protocol, endpoint)

var result = finalEndpoint('api.content.io')

Эта композиция работает и возвращает желаемый результат:

https://api.content.io?sort=desc&part=true&query={ some:'value', another:'value'}

Но обратите внимание, как яжестко закодировано значения дляparams а такжеquery внутри их функции тела. Я вижу только одно значение, повышающееся значение в этомR.compose цепь.

Как и где именно япередать параметры к параметрам и параметрам запроса?

ОБНОВИТЬ:

То, что я сделал, каррировало эти функции как это:

var R = require('ramda');

const endpoint = str => `${str}` || 'default'
const protocol = str => `https://${str}`
const setParams = R.curry ( (str, params) => `${str}?${params}` )
const setQuery = R.curry ( (str, query) => `${str}&query=${JSON.stringify(query)}` )

а потом

let finalEndpoint = R.compose(protocol, endpoint)

var result = setQuery(setParams(finalEndpoint('api.content.io'), 'sort=desc&part=true'), { some:'value', another:'value'})

console.log(result);

Но последний звонок, чтобы получитьresult все еще кажется довольно взломанным и неэлегичным. Есть ли способ улучшить это?

Ответы на вопрос(3)

Ваш ответ на вопрос