partial.lenses
Advanced tools
Comparing version 0.2.0 to 0.2.1
@@ -50,2 +50,10 @@ "use strict"; | ||
var toPartial = function toPartial(transform) { | ||
return function (x) { | ||
return undefined === x ? x : transform(x); | ||
}; | ||
}; | ||
// | ||
var conserve = function conserve(f) { | ||
@@ -92,2 +100,6 @@ return function (n0, o) { | ||
L.normalize = function (transform) { | ||
return _ramda2.default.lens(toPartial(transform), conserve(toPartial(transform))); | ||
}; | ||
L.prop = function (k) { | ||
@@ -138,2 +150,2 @@ return _ramda2.default.lens(function (o) { | ||
exports.default = L; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJ0aWFsLmxlbnNlcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUlBLElBQU0sWUFBWSxTQUFaLFNBQVksQ0FBQyxDQUFELEVBQUksQ0FBSixFQUFVO0FBQzFCLE1BQUksTUFBTSxTQUFOLElBQW1CLEVBQUUsS0FBSyxDQUFMLENBQUYsRUFDckIsT0FBTyxDQUFQLENBREY7QUFFQSxNQUFJLGFBQUosQ0FIMEI7QUFJMUIsT0FBSyxJQUFNLENBQU4sSUFBVyxDQUFoQixFQUFtQjtBQUNqQixRQUFJLE1BQU0sQ0FBTixFQUFTO0FBQ1gsVUFBSSxjQUFjLENBQWQsRUFDRixJQUFJLEVBQUosQ0FERjtBQUVBLFFBQUUsQ0FBRixJQUFPLEVBQUUsQ0FBRixDQUFQLENBSFc7S0FBYjtHQURGO0FBT0EsU0FBTyxDQUFQLENBWDBCO0NBQVY7O0FBY2xCLElBQU0sU0FBUyxTQUFULE1BQVMsQ0FBQyxDQUFELEVBQUksQ0FBSixFQUFPLENBQVAsRUFBYTtBQUMxQixNQUFJLE1BQU0sU0FBTixFQUNGLDJCQUFTLEdBQUksRUFBYixDQURGO0FBRUEsTUFBSSxLQUFLLENBQUwsSUFBVSxnQkFBRSxNQUFGLENBQVMsQ0FBVCxFQUFZLEVBQUUsQ0FBRixDQUFaLENBQVYsRUFDRixPQUFPLENBQVAsQ0FERjtBQUVBLE1BQU0sd0JBQU0sR0FBSSxFQUFWLENBTG9CO0FBTTFCLE9BQUssSUFBTSxDQUFOLElBQVcsQ0FBaEI7QUFDRSxRQUFJLE1BQU0sQ0FBTixFQUNGLEVBQUUsQ0FBRixJQUFPLEVBQUUsQ0FBRixDQUFQLENBREY7R0FERixPQUdPLENBQVAsQ0FUMEI7Q0FBYjs7OztBQWNmLElBQU0sVUFBVSxTQUFWLE9BQVU7U0FBTSxPQUFPLElBQVAsQ0FBWSxFQUFaLEVBQWdCLE1BQWhCLEtBQTJCLENBQTNCLEdBQStCLFNBQS9CLEdBQTJDLEVBQTNDO0NBQU47Ozs7QUFLaEIsSUFBTSxXQUFXLFNBQVgsUUFBVztT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MkQ7Q0FBcEQ7O0FBb0JULEVBQUUsS0FBRixHQUFVO1NBQUssZ0JBQUUsSUFBRixDQUFPO1dBQU0sTUFBTSxHQUFHLENBQUgsQ0FBTjtHQUFOLEVBQW1CLFVBQUMsQ0FBRCxFQUFJLEVBQUosRUFBVztBQUNsRCxRQUFJLE1BQU0sU0FBTixFQUFpQjtBQUNuQixVQUFJLE9BQU8sU0FBUCxFQUNGLE9BQU8sU0FBUCxDQURGO0FBRUEsVUFBSSxJQUFJLEdBQUcsTUFBSCxFQUNOLE9BQU8sUUFBUSxHQUFHLEtBQUgsQ0FBUyxDQUFULEVBQVksQ0FBWixFQUFlLE1BQWYsQ0FBc0IsR0FBRyxLQUFILENBQVMsSUFBRSxDQUFGLENBQS9CLENBQVIsQ0FBUCxDQURGO0FBRUEsYUFBTyxFQUFQLENBTG1CO0tBQXJCLE1BTU87QUFDTCxVQUFJLE9BQU8sU0FBUCxFQUNGLE9BQU8sTUFBTSxDQUFOLEVBQVMsTUFBVCxDQUFnQixDQUFDLENBQUQsQ0FBaEIsQ0FBUCxDQURGO0FBRUEsVUFBSSxHQUFHLE1BQUgsSUFBYSxDQUFiLEVBQ0YsT0FBTyxHQUFHLE1BQUgsQ0FBVSxNQUFNLElBQUksR0FBRyxNQUFILENBQXBCLEVBQWdDLENBQUMsQ0FBRCxDQUFoQyxDQUFQLENBREY7QUFFQSxVQUFJLGdCQUFFLE1BQUYsQ0FBUyxDQUFULEVBQVksR0FBRyxDQUFILENBQVosQ0FBSixFQUNFLE9BQU8sRUFBUCxDQURGO0FBRUEsYUFBTyxHQUFHLEtBQUgsQ0FBUyxDQUFULEVBQVksQ0FBWixFQUFlLE1BQWYsQ0FBc0IsQ0FBQyxDQUFELENBQXRCLEVBQTJCLEdBQUcsS0FBSCxDQUFTLElBQUUsQ0FBRixDQUFwQyxDQUFQLENBUEs7S0FOUDtHQUR1QztDQUEvQjs7a0JBa0JLIiwiZmlsZSI6InBhcnRpYWwubGVuc2VzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFIgZnJvbSBcInJhbWRhXCJcblxuLy9cblxuY29uc3QgZGVsZXRlS2V5ID0gKGssIG8pID0+IHtcbiAgaWYgKG8gPT09IHVuZGVmaW5lZCB8fCAhKGsgaW4gbykpXG4gICAgcmV0dXJuIG9cbiAgbGV0IHJcbiAgZm9yIChjb25zdCBwIGluIG8pIHtcbiAgICBpZiAocCAhPT0gaykge1xuICAgICAgaWYgKHVuZGVmaW5lZCA9PT0gcilcbiAgICAgICAgciA9IHt9XG4gICAgICByW3BdID0gb1twXVxuICAgIH1cbiAgfVxuICByZXR1cm4gclxufVxuXG5jb25zdCBzZXRLZXkgPSAoaywgdiwgbykgPT4ge1xuICBpZiAobyA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiB7W2tdOiB2fVxuICBpZiAoayBpbiBvICYmIFIuZXF1YWxzKHYsIG9ba10pKVxuICAgIHJldHVybiBvXG4gIGNvbnN0IHIgPSB7W2tdOiB2fVxuICBmb3IgKGNvbnN0IHAgaW4gbylcbiAgICBpZiAocCAhPT0gaylcbiAgICAgIHJbcF0gPSBvW3BdXG4gIHJldHVybiByXG59XG5cbi8vXG5cbmNvbnN0IGRyb3BwZWQgPSB4cyA9PiBPYmplY3Qua2V5cyh4cykubGVuZ3RoID09PSAwID8gdW5kZWZpbmVkIDogeHNcblxuXG4vL1xuXG5jb25zdCBjb25zZXJ2ZSA9IGYgPT4gKG4wLCBvKSA9PiB7XG4gIGNvbnN0IG4gPSBmKG4wLCBvKVxuICByZXR1cm4gUi5lcXVhbHMobiwgbykgPyBvIDogblxufVxuXG4vL1xuXG5jb25zdCBsaWZ0ID0gbCA9PiB7XG4gIHN3aXRjaCAodHlwZW9mIGwpIHtcbiAgY2FzZSBcInN0cmluZ1wiOiByZXR1cm4gTC5wcm9wKGwpXG4gIGNhc2UgXCJudW1iZXJcIjogcmV0dXJuIEwuaW5kZXgobClcbiAgZGVmYXVsdDogICAgICAgcmV0dXJuIGxcbiAgfVxufVxuXG5jb25zdCBMID0gKC4uLmxzKSA9PiBscy5sZW5ndGggPT09IDEgPyBsaWZ0KGxzWzBdKSA6IFIuY29tcG9zZSguLi5scy5tYXAobGlmdCkpXG5cbkwubGVucyA9IFIubGVuc1xuTC5vdmVyID0gUi5vdmVyXG5MLnNldCAgPSBSLnNldFxuTC52aWV3ID0gUi52aWV3XG5cbkwucmVwbGFjZSA9IChpbm4sIG91dCkgPT5cbiAgUi5sZW5zKHggPT4gUi5lcXVhbHMoeCwgaW5uKSA/IG91dCA6IHgsXG4gICAgICAgICBjb25zZXJ2ZSh5ID0+IFIuZXF1YWxzKHksIG91dCkgPyBpbm4gOiB5KSlcblxuTC5wcm9wID0gayA9PlxuICBSLmxlbnMobyA9PiBvICYmIG9ba10sXG4gICAgICAgICAodiwgbykgPT4gdiA9PT0gdW5kZWZpbmVkID8gZGVsZXRlS2V5KGssIG8pIDogc2V0S2V5KGssIHYsIG8pKVxuXG5MLmZpbmQgPSBwcmVkaWNhdGUgPT4gUi5sZW5zKHhzID0+IHhzICYmIHhzLmZpbmQocHJlZGljYXRlKSwgKHgsIHhzKSA9PiB7XG4gIGlmICh4ID09PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoeHMgPT09IHVuZGVmaW5lZClcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICBjb25zdCBpID0geHMuZmluZEluZGV4KHByZWRpY2F0ZSlcbiAgICBpZiAoaSA8IDApXG4gICAgICByZXR1cm4geHNcbiAgICByZXR1cm4gZHJvcHBlZCh4cy5zbGljZSgwLCBpKS5jb25jYXQoeHMuc2xpY2UoaSsxKSkpXG4gIH0gZWxzZSB7XG4gICAgaWYgKHhzID09PSB1bmRlZmluZWQpXG4gICAgICByZXR1cm4gW3hdXG4gICAgY29uc3QgaSA9IHhzLmZpbmRJbmRleChwcmVkaWNhdGUpXG4gICAgaWYgKGkgPCAwKVxuICAgICAgcmV0dXJuIHhzLmNvbmNhdChbeF0pXG4gICAgaWYgKFIuZXF1YWxzKHgsIHhzW2ldKSlcbiAgICAgIHJldHVybiB4c1xuICAgIHJldHVybiB4cy5zbGljZSgwLCBpKS5jb25jYXQoW3hdLCB4cy5zbGljZShpKzEpKVxuICB9XG59KVxuXG5MLmluZGV4ID0gaSA9PiBSLmxlbnMoeHMgPT4geHMgJiYgeHNbaV0sICh4LCB4cykgPT4ge1xuICBpZiAoeCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKHhzID09PSB1bmRlZmluZWQpXG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgaWYgKGkgPCB4cy5sZW5ndGgpXG4gICAgICByZXR1cm4gZHJvcHBlZCh4cy5zbGljZSgwLCBpKS5jb25jYXQoeHMuc2xpY2UoaSsxKSkpXG4gICAgcmV0dXJuIHhzXG4gIH0gZWxzZSB7XG4gICAgaWYgKHhzID09PSB1bmRlZmluZWQpXG4gICAgICByZXR1cm4gQXJyYXkoaSkuY29uY2F0KFt4XSlcbiAgICBpZiAoeHMubGVuZ3RoIDw9IGkpXG4gICAgICByZXR1cm4geHMuY29uY2F0KEFycmF5KGkgLSB4cy5sZW5ndGgpLCBbeF0pXG4gICAgaWYgKFIuZXF1YWxzKHgsIHhzW2ldKSlcbiAgICAgIHJldHVybiB4c1xuICAgIHJldHVybiB4cy5zbGljZSgwLCBpKS5jb25jYXQoW3hdLCB4cy5zbGljZShpKzEpKVxuICB9XG59KVxuXG5leHBvcnQgZGVmYXVsdCBMXG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJ0aWFsLmxlbnNlcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUlBLElBQU0sWUFBWSxTQUFaLFNBQVksQ0FBQyxDQUFELEVBQUksQ0FBSixFQUFVO0FBQzFCLE1BQUksTUFBTSxTQUFOLElBQW1CLEVBQUUsS0FBSyxDQUFMLENBQUYsRUFDckIsT0FBTyxDQUFQLENBREY7QUFFQSxNQUFJLGFBQUosQ0FIMEI7QUFJMUIsT0FBSyxJQUFNLENBQU4sSUFBVyxDQUFoQixFQUFtQjtBQUNqQixRQUFJLE1BQU0sQ0FBTixFQUFTO0FBQ1gsVUFBSSxjQUFjLENBQWQsRUFDRixJQUFJLEVBQUosQ0FERjtBQUVBLFFBQUUsQ0FBRixJQUFPLEVBQUUsQ0FBRixDQUFQLENBSFc7S0FBYjtHQURGO0FBT0EsU0FBTyxDQUFQLENBWDBCO0NBQVY7O0FBY2xCLElBQU0sU0FBUyxTQUFULE1BQVMsQ0FBQyxDQUFELEVBQUksQ0FBSixFQUFPLENBQVAsRUFBYTtBQUMxQixNQUFJLE1BQU0sU0FBTixFQUNGLDJCQUFTLEdBQUksRUFBYixDQURGO0FBRUEsTUFBSSxLQUFLLENBQUwsSUFBVSxnQkFBRSxNQUFGLENBQVMsQ0FBVCxFQUFZLEVBQUUsQ0FBRixDQUFaLENBQVYsRUFDRixPQUFPLENBQVAsQ0FERjtBQUVBLE1BQU0sd0JBQU0sR0FBSSxFQUFWLENBTG9CO0FBTTFCLE9BQUssSUFBTSxDQUFOLElBQVcsQ0FBaEI7QUFDRSxRQUFJLE1BQU0sQ0FBTixFQUNGLEVBQUUsQ0FBRixJQUFPLEVBQUUsQ0FBRixDQUFQLENBREY7R0FERixPQUdPLENBQVAsQ0FUMEI7Q0FBYjs7OztBQWNmLElBQU0sVUFBVSxTQUFWLE9BQVU7U0FBTSxPQUFPLElBQVAsQ0FBWSxFQUFaLEVBQWdCLE1BQWhCLEtBQTJCLENBQTNCLEdBQStCLFNBQS9CLEdBQTJDLEVBQTNDO0NBQU47Ozs7QUFJaEIsSUFBTSxZQUFZLFNBQVosU0FBWTtT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LENBQUYsQ0FBcEMsQ0FBUCxDQVBLO0tBTlA7R0FEdUM7Q0FBL0I7O2tCQWtCSyIsImZpbGUiOiJwYXJ0aWFsLmxlbnNlcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSIGZyb20gXCJyYW1kYVwiXG5cbi8vXG5cbmNvbnN0IGRlbGV0ZUtleSA9IChrLCBvKSA9PiB7XG4gIGlmIChvID09PSB1bmRlZmluZWQgfHwgIShrIGluIG8pKVxuICAgIHJldHVybiBvXG4gIGxldCByXG4gIGZvciAoY29uc3QgcCBpbiBvKSB7XG4gICAgaWYgKHAgIT09IGspIHtcbiAgICAgIGlmICh1bmRlZmluZWQgPT09IHIpXG4gICAgICAgIHIgPSB7fVxuICAgICAgcltwXSA9IG9bcF1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJcbn1cblxuY29uc3Qgc2V0S2V5ID0gKGssIHYsIG8pID0+IHtcbiAgaWYgKG8gPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4ge1trXTogdn1cbiAgaWYgKGsgaW4gbyAmJiBSLmVxdWFscyh2LCBvW2tdKSlcbiAgICByZXR1cm4gb1xuICBjb25zdCByID0ge1trXTogdn1cbiAgZm9yIChjb25zdCBwIGluIG8pXG4gICAgaWYgKHAgIT09IGspXG4gICAgICByW3BdID0gb1twXVxuICByZXR1cm4gclxufVxuXG4vL1xuXG5jb25zdCBkcm9wcGVkID0geHMgPT4gT2JqZWN0LmtleXMoeHMpLmxlbmd0aCA9PT0gMCA/IHVuZGVmaW5lZCA6IHhzXG5cbi8vXG5cbmNvbnN0IHRvUGFydGlhbCA9IHRyYW5zZm9ybSA9PiB4ID0+IHVuZGVmaW5lZCA9PT0geCA/IHggOiB0cmFuc2Zvcm0oeClcblxuLy9cblxuY29uc3QgY29uc2VydmUgPSBmID0+IChuMCwgbykgPT4ge1xuICBjb25zdCBuID0gZihuMCwgbylcbiAgcmV0dXJuIFIuZXF1YWxzKG4sIG8pID8gbyA6IG5cbn1cblxuLy9cblxuY29uc3QgbGlmdCA9IGwgPT4ge1xuICBzd2l0Y2ggKHR5cGVvZiBsKSB7XG4gIGNhc2UgXCJzdHJpbmdcIjogcmV0dXJuIEwucHJvcChsKVxuICBjYXNlIFwibnVtYmVyXCI6IHJldHVybiBMLmluZGV4KGwpXG4gIGRlZmF1bHQ6ICAgICAgIHJldHVybiBsXG4gIH1cbn1cblxuY29uc3QgTCA9ICguLi5scykgPT4gbHMubGVuZ3RoID09PSAxID8gbGlmdChsc1swXSkgOiBSLmNvbXBvc2UoLi4ubHMubWFwKGxpZnQpKVxuXG5MLmxlbnMgPSBSLmxlbnNcbkwub3ZlciA9IFIub3ZlclxuTC5zZXQgID0gUi5zZXRcbkwudmlldyA9IFIudmlld1xuXG5MLnJlcGxhY2UgPSAoaW5uLCBvdXQpID0+XG4gIFIubGVucyh4ID0+IFIuZXF1YWxzKHgsIGlubikgPyBvdXQgOiB4LFxuICAgICAgICAgY29uc2VydmUoeSA9PiBSLmVxdWFscyh5LCBvdXQpID8gaW5uIDogeSkpXG5cbkwubm9ybWFsaXplID0gdHJhbnNmb3JtID0+XG4gIFIubGVucyh0b1BhcnRpYWwodHJhbnNmb3JtKSwgY29uc2VydmUodG9QYXJ0aWFsKHRyYW5zZm9ybSkpKVxuXG5MLnByb3AgPSBrID0+XG4gIFIubGVucyhvID0+IG8gJiYgb1trXSxcbiAgICAgICAgICh2LCBvKSA9PiB2ID09PSB1bmRlZmluZWQgPyBkZWxldGVLZXkoaywgbykgOiBzZXRLZXkoaywgdiwgbykpXG5cbkwuZmluZCA9IHByZWRpY2F0ZSA9PiBSLmxlbnMoeHMgPT4geHMgJiYgeHMuZmluZChwcmVkaWNhdGUpLCAoeCwgeHMpID0+IHtcbiAgaWYgKHggPT09IHVuZGVmaW5lZCkge1xuICAgIGlmICh4cyA9PT0gdW5kZWZpbmVkKVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIGNvbnN0IGkgPSB4cy5maW5kSW5kZXgocHJlZGljYXRlKVxuICAgIGlmIChpIDwgMClcbiAgICAgIHJldHVybiB4c1xuICAgIHJldHVybiBkcm9wcGVkKHhzLnNsaWNlKDAsIGkpLmNvbmNhdCh4cy5zbGljZShpKzEpKSlcbiAgfSBlbHNlIHtcbiAgICBpZiAoeHMgPT09IHVuZGVmaW5lZClcbiAgICAgIHJldHVybiBbeF1cbiAgICBjb25zdCBpID0geHMuZmluZEluZGV4KHByZWRpY2F0ZSlcbiAgICBpZiAoaSA8IDApXG4gICAgICByZXR1cm4geHMuY29uY2F0KFt4XSlcbiAgICBpZiAoUi5lcXVhbHMoeCwgeHNbaV0pKVxuICAgICAgcmV0dXJuIHhzXG4gICAgcmV0dXJuIHhzLnNsaWNlKDAsIGkpLmNvbmNhdChbeF0sIHhzLnNsaWNlKGkrMSkpXG4gIH1cbn0pXG5cbkwuaW5kZXggPSBpID0+IFIubGVucyh4cyA9PiB4cyAmJiB4c1tpXSwgKHgsIHhzKSA9PiB7XG4gIGlmICh4ID09PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoeHMgPT09IHVuZGVmaW5lZClcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICBpZiAoaSA8IHhzLmxlbmd0aClcbiAgICAgIHJldHVybiBkcm9wcGVkKHhzLnNsaWNlKDAsIGkpLmNvbmNhdCh4cy5zbGljZShpKzEpKSlcbiAgICByZXR1cm4geHNcbiAgfSBlbHNlIHtcbiAgICBpZiAoeHMgPT09IHVuZGVmaW5lZClcbiAgICAgIHJldHVybiBBcnJheShpKS5jb25jYXQoW3hdKVxuICAgIGlmICh4cy5sZW5ndGggPD0gaSlcbiAgICAgIHJldHVybiB4cy5jb25jYXQoQXJyYXkoaSAtIHhzLmxlbmd0aCksIFt4XSlcbiAgICBpZiAoUi5lcXVhbHMoeCwgeHNbaV0pKVxuICAgICAgcmV0dXJuIHhzXG4gICAgcmV0dXJuIHhzLnNsaWNlKDAsIGkpLmNvbmNhdChbeF0sIHhzLnNsaWNlKGkrMSkpXG4gIH1cbn0pXG5cbmV4cG9ydCBkZWZhdWx0IExcbiJdfQ== |
{ | ||
"name": "partial.lenses", | ||
"version": "0.2.0", | ||
"version": "0.2.1", | ||
"description": "Ramda compatible lenses", | ||
@@ -5,0 +5,0 @@ "main": "lib/partial.lenses.js", |
@@ -49,4 +49,5 @@ [![npm version](https://badge.fury.io/js/partial.lenses.svg)](http://badge.fury.io/js/partial.lenses) | ||
The default import, `L`, is also a shorthand function for lens composition and | ||
lifting. The semantics can be described as | ||
The default import, `L`, is also a shorthand function for lens composition (see | ||
[compose](http://ramdajs.com/0.19.0/docs/#compose)) and lifting. The semantics | ||
can be described as | ||
@@ -113,4 +114,19 @@ ``` | ||
matches the given unary predicate. When no matching element is found the effect | ||
is same as with `R.index` when the index set to the length of the array. | ||
is same as with `R.index` with the index set to the length of the array. | ||
### L.normalize(transform) | ||
`L.normalize(transform)` maps the value with same given `transform` when viewed | ||
and set and implicitly maps undefined to undefined. More specifically, | ||
`L.normalize(transform)` is equivalent to `R.lens(toPartial(transform), | ||
toPartial(transform))` where | ||
```js | ||
const toPartial = transform => x => undefined === x ? x : transform(x) | ||
``` | ||
The use case for `normalize` is to make it easy to determine whether, after a | ||
change, the data has actually changed. By keeping the data normalized, a simple | ||
`R.equals` comparison will do. | ||
### L.replace(inn, out) | ||
@@ -125,6 +141,13 @@ | ||
```js | ||
> L.view(L(L.replace(undefined, {type: "title", text: ""}), "text"), undefined) | ||
> L.view(L(L.replace(undefined, {type: "title", text: ""}), | ||
"text"), | ||
undefined) | ||
"" | ||
> L.set(L(L.replace(undefined, {type: "title", text: ""}), "text"), "", {type: "title", text: "not empty"}) | ||
> L.set(L(L.replace(undefined, {type: "title", text: ""}), | ||
"text"), | ||
"", | ||
{type: "title", text: "not empty"}) | ||
undefined | ||
``` | ||
The use case for `replace` is to handle optional properties and elements. |
@@ -35,3 +35,6 @@ import R from "ramda" | ||
// | ||
const toPartial = transform => x => undefined === x ? x : transform(x) | ||
// | ||
@@ -65,2 +68,5 @@ | ||
L.normalize = transform => | ||
R.lens(toPartial(transform), conserve(toPartial(transform))) | ||
L.prop = k => | ||
@@ -67,0 +73,0 @@ R.lens(o => o && o[k], |
@@ -90,1 +90,22 @@ import R from "ramda" | ||
}) | ||
describe("L.normalize", () => { | ||
testEq('L.view(L.normalize(R.sortBy(R.identity)), [1,3,2,5])', () => | ||
L.view(L.normalize(R.sortBy(R.identity)), [1,3,2,5]), [1,2,3,5]) | ||
testEq('L.set(L(L.normalize(R.sortBy(R.identity)), L.find(R.equals(2))), 4, [1,3,2,5])', () => | ||
L.set(L(L.normalize(R.sortBy(R.identity)), L.find(R.equals(2))), 4, [1,3,2,5]), | ||
[1,3,4,5]) | ||
testEq('L.set(L(L.normalize(R.sortBy(R.identity)), L.find(R.equals(2))), 4, undefined)', () => | ||
L.set(L(L.normalize(R.sortBy(R.identity)), L.find(R.equals(2))), 4, undefined), | ||
[4]) | ||
testEq('L.set(L(L.normalize(R.sortBy(R.identity)), L.find(R.equals(2))), undefined, [2])', () => | ||
L.set(L(L.normalize(R.sortBy(R.identity)), L.find(R.equals(2))), undefined, [2]), | ||
undefined) | ||
testEq('L.set(L(L.normalize(R.sortBy(R.identity)), L.find(R.equals(2))), undefined, [1,3,2,5])', () => | ||
L.set(L(L.normalize(R.sortBy(R.identity)), L.find(R.equals(2))), undefined, [1,3,2,5]), | ||
[1,3,5]) | ||
}) |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
30665
311
151