I would find this simple way to solve your problem:
const items = [{name : 'asd', x: 1}, {name : 'asd1', x: 2}, {name : 'TesT', x: 3}];
const byNameCi = curry((name, items) => find(
where({name: pipe(toLower, equals(toLower(name)))}),
items,
));
byNameCi('TEST', items);
curry may not be needed for your use case, but it will also allow:
const findAsd = byNameCi('Asd');
findAsd(items);
Note that this returns the original values without converting toLowerCase. If you want to return the names with the converted names, I can change them as follows:
const byTransformedNameCi = curry((name, items) => find(
where({name: pipe(toLower, equals(toLower(name)))}),
map(evolve({name: toLower}), items),
));
byTransformedNameCi('TEST', items); //=> {name: "test", x: 3}
, , lensProp over evolve.
, , , , - .
Ramda REPL.
. Ramda ; , Ramda . , -, , , assoc, adjust .