monocle-ts
Functional optics: a (partial) porting of Scala monocle (by gcanti)
shades
A lodash-inspired lens-like library for Javascript (by jamesmcnamara)
Our great sponsors
- Appwrite - The open-source backend cloud platform
- Amplication - open-source Node.js backend code generator
- SurveyJS - A Non-Cloud Alternative to Google Forms that has it all.
- Sonar - Write Clean JavaScript Code. Always.
- InfluxDB - Collect and Analyze Billions of Data Points in Real Time
- Mergify - Tired of breaking your main and manually rebasing outdated pull requests?
monocle-ts | shades | |
---|---|---|
6 | 1 | |
988 | 406 | |
- | - | |
0.0 | 0.0 | |
10 months ago | 9 months ago | |
TypeScript | JavaScript | |
MIT License | MIT License |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
monocle-ts
Posts with mentions or reviews of monocle-ts.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-05-23.
-
I may have a crush on the TypeScript compiler, because of stuff like this
You may be interested also in checking out the implementation of Lens in monocle-ts, one of the libraries in the fp-ts ecosystem
-
Haskell Lens Tutorial by Exercises
For anyone - anyone who's faffed around with JavaScript's spread syntax when working with nested immutable data, anyway - struggling to understand the general concept or utility of lenses, I'd encourage looking into monocle-ts. The motivation [0] that kicks off the README instantly made me a believer, and TypeScript's idiosyncratic type system makes using the library remarkably natural; it fits right in without needing to deal with anything analogous to Template Haskell.
-
Is there a cleaner way to immutably update a deeply nested attribute? (I feel like this is not very clean)
You could have a look at the monocle-ts library. It was designed to deal with this kind of problem.
-
Simple Immutable Data w/ Spectacles 👓
spectacles-ts integrates seamlessly with the fp-ts ecosystem (it's built on top of the excellent monocle-ts library)
-
Why is it so difficult to modify a deeply nested state in React?
lenses help with this quite a bit, check out monocle-ts
shades
Posts with mentions or reviews of shades.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-01-04.
-
Is there a cleaner way to immutably update a deeply nested attribute? (I feel like this is not very clean)
There’s also https://github.com/jamesmcnamara/shades. It’s less of a direct Haskell port than some of the other lens libraries, and I found the interface pretty intuitive
What are some alternatives?
When comparing monocle-ts and shades you can also consider the following projects:
optics-ts - Type-safe, ergonomic, polymorphic optics for TypeScript
zustand - 🐻 Bear necessities for state management in React
spectacles-ts - Practical Optics • Unfancy monocle-ts
immutability-helper - mutate a copy of data without changing the original source
valtio - 💊 Valtio makes proxy-state simple for React and Vanilla
fp-ts-contrib - A community driven utility package for fp-ts
fp-ts - Functional programming in TypeScript
jotai - 👻 Primitive and flexible state management for React
reatom - Reatom - the ultimate state manager
Immer - Create the next immutable state by mutating the current one