-
-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(layered-storage): add a new storage for options #71
base: master
Are you sure you want to change the base?
Commits on Jan 26, 2020
-
feat(layered-storage): add a new storage for options
This is intended to replace the prototype plus hacks insanity used at the moment. However this is still WIP. There is no documentations yet and more testing is necessary. TODO: - Add off. - Write docs. - Probably some other things too. In a quick test I was able to resolve the issue discussed in visjs/vis-network#178 and visjs/vis-network#213 with just a few lines of code. Which is much better than the massive mess of weird hacks that doesn't work reliably anyway. Putting this to use will be a lot of work but fortunately it should be possible to do it in parts. I would first use this in LayoutEngine and EdgesHandler to resolve the forementioned issues and then probably one module at the time. Features: - Encapsulates options merging. - Explicit layer/segment/key structure instead of prototype chains. - Observable. - Overrides. * - Type safety in TypeScript. * Hierarchical layout is incompatible with smooth edges and has to disable them. Overrides combined with observing easily and elegently solve that. See the forementioned issues for current state.
Configuration menu - View commit details
-
Copy full SHA for d4476da - Browse repository at this point
Copy the full SHA d4476daView commit details -
Configuration menu - View commit details
-
Copy full SHA for 285977d - Browse repository at this point
Copy the full SHA 285977dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4b49dc1 - Browse repository at this point
Copy the full SHA 4b49dc1View commit details -
docs(layered-storage): add yet more docs
About half should be done by now.
Configuration menu - View commit details
-
Copy full SHA for 9fb537a - Browse repository at this point
Copy the full SHA 9fb537aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 357b951 - Browse repository at this point
Copy the full SHA 357b951View commit details -
style(layered-storage): rename revert to abort
It makes more sense given what it actually does.
Configuration menu - View commit details
-
Copy full SHA for 353f220 - Browse repository at this point
Copy the full SHA 353f220View commit details -
Configuration menu - View commit details
-
Copy full SHA for 47bfa2f - Browse repository at this point
Copy the full SHA 47bfa2fView commit details -
Configuration menu - View commit details
-
Copy full SHA for bfb7012 - Browse repository at this point
Copy the full SHA bfb7012View commit details -
Configuration menu - View commit details
-
Copy full SHA for b2f0408 - Browse repository at this point
Copy the full SHA b2f0408View commit details -
fix(layered-storage): cache the values when accessed
Caching up front would be too complex to implement properly without rebuilding the whole cache due to every change.
Configuration menu - View commit details
-
Copy full SHA for 85ea039 - Browse repository at this point
Copy the full SHA 85ea039View commit details -
fix(layered-storage): throw for nonnumeric layers
The sorting fails and TS already prohibits them. There's no indisputable way of sorting nonnumbers anyway.
Configuration menu - View commit details
-
Copy full SHA for e5d429c - Browse repository at this point
Copy the full SHA e5d429cView commit details -
feat(layered-storage): add console dump method
This is to simplify debugging. It logs the content of the storage to the console using collased groups to denote the structure of the storage.
Configuration menu - View commit details
-
Copy full SHA for 689c154 - Browse repository at this point
Copy the full SHA 689c154View commit details -
fix(layered-storage): purge empty structures
Previously the structures were kept even if all values were deleted.
Configuration menu - View commit details
-
Copy full SHA for b6f13b8 - Browse repository at this point
Copy the full SHA b6f13b8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7c4350c - Browse repository at this point
Copy the full SHA 7c4350cView commit details -
Configuration menu - View commit details
-
Copy full SHA for d9eb64c - Browse repository at this point
Copy the full SHA d9eb64cView commit details -
feat(layered-storage): remove events
BREAKING CHANGE: The on methods were removed from Layered Storage. This was unbearably slow. Most of the time was actually spent handling events. Making it faster without reducing it's functionality to the same level as Emitter seems impossible to me. Since we already use the Emitter there's no point in having such thing.
Configuration menu - View commit details
-
Copy full SHA for de132b4 - Browse repository at this point
Copy the full SHA de132b4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 24beaa2 - Browse repository at this point
Copy the full SHA 24beaa2View commit details -
Configuration menu - View commit details
-
Copy full SHA for b1787b8 - Browse repository at this point
Copy the full SHA b1787b8View commit details -
perf(layered-storage): do not clean unaffacted cache
Prior to this all cache for given key was cleaned on set or delete. However this is only necessary for monolithic segment. Other segments can't affect anything but themselves so it's okay to keep the other segments cached. This greatly improves set and delete performance.
Configuration menu - View commit details
-
Copy full SHA for b64c4fd - Browse repository at this point
Copy the full SHA b64c4fdView commit details -
perf(layered-storage): cache nonexistent values too
This greatly improves performance on mostly static data as it avoids repeated traversing through the data just to find nothing over and over again.
Configuration menu - View commit details
-
Copy full SHA for 4bf2f3a - Browse repository at this point
Copy the full SHA 4bf2f3aView commit details -
perf(layered-storage): iterate over cache when clearing it
Before this all segments were iterated over and then checked for existence. This is faster as it iterates only over existing cache without checking for each segment's cache existence and also less code. Also includes a test for possible regression that was unchecked before.
Configuration menu - View commit details
-
Copy full SHA for 80f189c - Browse repository at this point
Copy the full SHA 80f189cView commit details -
feat(layered-storage): add expanders
These are used to expand short hand values to their full forms.
Configuration menu - View commit details
-
Copy full SHA for e87368a - Browse repository at this point
Copy the full SHA e87368aView commit details -
feat(layered-storage): unify validator and expander API
BREAKING CHANGE: addValidators no longer exists Appending validators to already existing one is most likely an error. At least in Vis Network I see no reason to do it. Therefore it makes more sense to throw in such a case.
Configuration menu - View commit details
-
Copy full SHA for 1ca06e1 - Browse repository at this point
Copy the full SHA 1ca06e1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1fed169 - Browse repository at this point
Copy the full SHA 1fed169View commit details -
fix(layered-storage): use entries instead of pair
BREAKING CHANGE: Some types were renamed. It has the same format as the various .entries() methods so it makes more sense to call it entries.
Configuration menu - View commit details
-
Copy full SHA for b9b559c - Browse repository at this point
Copy the full SHA b9b559cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9d61fa2 - Browse repository at this point
Copy the full SHA 9d61fa2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 84f4d27 - Browse repository at this point
Copy the full SHA 84f4d27View commit details -
perf(layered-storage): improve performance
Those are a few micro optimalizations. However since this is executed over and over again it adds up to noticable improvement.
Configuration menu - View commit details
-
Copy full SHA for 093040f - Browse repository at this point
Copy the full SHA 093040fView commit details -
Configuration menu - View commit details
-
Copy full SHA for fd2a42e - Browse repository at this point
Copy the full SHA fd2a42eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 84a0144 - Browse repository at this point
Copy the full SHA 84a0144View commit details -
feat(layered-storage): simplify
BREAKING CHANGE: Most stuff was changed. This is a really big overhaul that greatly reduces the API and the codebase. This should be much easier to maintain and also more performant when used at the expense of removing support for some niche features.
Configuration menu - View commit details
-
Copy full SHA for cc0f866 - Browse repository at this point
Copy the full SHA cc0f866View commit details -
Configuration menu - View commit details
-
Copy full SHA for cc7e879 - Browse repository at this point
Copy the full SHA cc7e879View commit details
Commits on May 24, 2020
-
Configuration menu - View commit details
-
Copy full SHA for bf566ec - Browse repository at this point
Copy the full SHA bf566ecView commit details -
Configuration menu - View commit details
-
Copy full SHA for 763c703 - Browse repository at this point
Copy the full SHA 763c703View commit details -
Configuration menu - View commit details
-
Copy full SHA for 28a1240 - Browse repository at this point
Copy the full SHA 28a1240View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1153f4a - Browse repository at this point
Copy the full SHA 1153f4aView commit details -
feat(layered-storage): add export to object
This will make integrating this into existing codebase much easier. We'll be able to mostly contain the changes into .setOptions() methods.
Configuration menu - View commit details
-
Copy full SHA for 41195bd - Browse repository at this point
Copy the full SHA 41195bdView commit details -
fix(layered-storage): throw right away in transactions
Prior to this only the commit would fail.
Configuration menu - View commit details
-
Copy full SHA for 6b3785b - Browse repository at this point
Copy the full SHA 6b3785bView commit details -
Configuration menu - View commit details
-
Copy full SHA for d229669 - Browse repository at this point
Copy the full SHA d229669View commit details -
feat(layered-storage): add inheritance
This can be used to implement groups from Vis Network. It actually allows for multiple groups per single node which is already a wanted feature that would be extremely difficult to implement using the (anti)pattern that's currently in Vis Network for options.
Configuration menu - View commit details
-
Copy full SHA for d1c16b9 - Browse repository at this point
Copy the full SHA d1c16b9View commit details -
feat(layered-storage): add a basic library of validators
This also includes a tweak to the way validating is done.
Configuration menu - View commit details
-
Copy full SHA for 10367bb - Browse repository at this point
Copy the full SHA 10367bbView commit details
Commits on May 31, 2020
-
feat(layered-storage)!: use sepparate input and output types
BREAKING CHANGE: The types are different, though the code is pretty much the same on the outside. This allows for typesafe expanding of values or transforming them (expanders allow both at the same time).
Configuration menu - View commit details
-
Copy full SHA for 9175f38 - Browse repository at this point
Copy the full SHA 9175f38View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9089b80 - Browse repository at this point
Copy the full SHA 9089b80View commit details -
feat(layered-storage)!: add DELETE keyword to delete values through set
BREAKING CHANGE: This completely prevents null from being used as a value. We could change it to a symbol if this turns out to be a problem.
Configuration menu - View commit details
-
Copy full SHA for fb0fc8b - Browse repository at this point
Copy the full SHA fb0fc8bView commit details -
Configuration menu - View commit details
-
Copy full SHA for ab56402 - Browse repository at this point
Copy the full SHA ab56402View commit details
Commits on Jun 1, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 6c3c545 - Browse repository at this point
Copy the full SHA 6c3c545View commit details
Commits on Jun 18, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 3a4b9f2 - Browse repository at this point
Copy the full SHA 3a4b9f2View commit details
Commits on Aug 9, 2020
-
Configuration menu - View commit details
-
Copy full SHA for ab88903 - Browse repository at this point
Copy the full SHA ab88903View commit details -
Configuration menu - View commit details
-
Copy full SHA for edb0996 - Browse repository at this point
Copy the full SHA edb0996View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4d41b96 - Browse repository at this point
Copy the full SHA 4d41b96View commit details -
Configuration menu - View commit details
-
Copy full SHA for 81fd0c3 - Browse repository at this point
Copy the full SHA 81fd0c3View commit details -
test: disable DTS testing for now
Since it's not possible to use custom tsconfig.json it only works with what the authors configured it to work with. There's an issue on their repo tracking this. It doesn't work with layered storage because it uses iterables other than arrays and that's not configured in check-dts.
Configuration menu - View commit details
-
Copy full SHA for 15603e8 - Browse repository at this point
Copy the full SHA 15603e8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 97deb9b - Browse repository at this point
Copy the full SHA 97deb9bView commit details
Commits on Aug 14, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 501926e - Browse repository at this point
Copy the full SHA 501926eView commit details