Comments (3)
Hi,
I've just tried to actually do an Object.seal
on observable and it works as expected, IMHO.
Specifically, if you'll run Object.seal
on observable, then:
- no new properties may be added, TypeError thrown, as well as no existing properties may be deleted
- any existing properties are still subject to modification and any modification of those is correctly observed and notified to listeners
I've pushed a set of tests to cover those cases. You may review them in the tests/module/test-object-generics.js
and notify me if I've missed anything.
If so - is it answering your case?
from object-observer.
Thank you! You are right, it does work as intended. I realized that our use case required deepSeal functionality. We wrote a deepSeal() function and then did deepSeal(observable) -- everything seems to be fine now. Perhaps, building this functionality (and having an option to use it) in the core of the library is still not such a bad idea.
Thank you again for you great work!
from object-observer.
Must say that my inclination is to keep the object-observer
focused on it's own concern - observation, and not extend it with less specific and more object-utilities-like functionalities.
Anyway, glad it worked out well for you and thanks for the feedback!
from object-observer.
Related Issues (20)
- pathsOf filter is misbehaving HOT 1
- Unable to get regexp from observable HOT 5
- Un-cure native objects unless proven needed HOT 1
- [ci/cd] remove custom CI logic in favor of standard npm version HOT 1
- Add TS definitions for convenience
- fix TS definition of Observable
- fix ChangeType type in TS definition
- the options should be optional on ObjectObserver's observe type definition
- Access the original object + some ideas HOT 6
- externalize `[un]observe` API - eliminate source modification
- Clean up the patching source code HOT 1
- Any way to prevent changes? HOT 2
- Exported CommonJS package HOT 15
- Request: Lite Version of Object Observer HOT 2
- Allow omission of observed keys and handling of cyclic references HOT 2
- handle correctly circular shaped object passed for observation HOT 3
- Wildcard path HOT 1
- Unwrapping proxies, getting the original raw object HOT 2
- Broken when using with typescript and "moduleResolution": "bundler" HOT 3
- Consider implementing the clone via structuredClone native method HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from object-observer.