You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Transactional, reactive, and serializable state management core written with TypeScript.
5
+
Universal state container for modern JS applications written with TypeScript for both UI and domain state management.
6
6
7
-
Properly implemented two-phase update transactions on object ownership tree, dude. Change events, with updates in the scope of current transaction. All serializable. All dynamically type safe. Just what the doctors prescribe for the modern data layer.
7
+
Distributed application state is defined as supersposition of the recursively nested `Record` and `Collection` objects.
8
+
State trees supports transactional and deeply observable changes, and is JSON-serializable by default. All state elements are _typed_ with run-time type assertions and type conversions on assignment. The declarative state validation is supported out of box as well.
8
9
9
-
Mostly compatible by API with your backbonejs, but 10 times faster in all browsers and capable of way more than your old plugins are, dude. :)
10
+
Type-R explicitly supports both _aggregation_ and _associations by id_ with the majority of operations performed recursively on _ownership trees_.
10
11
11
-
Will be the basis of NestedTypes 2.0 version. Does to your React app the same thing as mobx does, but adds serialization. And to be fair, we started earler, so it's appropriate to say that they do the part of tricks we're doing for two years.
12
+
Mostly compatible by API with backbonejs, but 10 times faster in all browsers.
13
+
14
+
Type-R represents the pinnacle of Volicon/Verizon R&D in the state management technology lasted for 3 previous years.
12
15
13
16
## Rationale
14
17
15
18
Because we can.
16
19
17
20
## Current state
18
21
19
-
-[x] Basic regression tests passes. Transactional core seems to work.
20
-
-[x] New integral performance tests shows 2-3 times performance improvement in complex structure updates. Good enough to go further.
21
-
-[x] Launching backbone Model/Collection regression to implement missing core functionality. That's gonna be tough.
22
-
-[x] Model regression passes.
23
-
-[x] Collection regression passes.
24
-
-[x] Implement relations.
25
-
-[x] Implement NestedTypes compatibility layer.
26
-
-[x] Underscore/Lodash mixin for Model and Collection
27
-
-[x] Backbone Persistence API
28
-
-[x] Test it with NestedReact examples.
29
-
-[x] Release ObjectPlus as separate package.
30
-
-[x] Implement classes support in NestedReact.
31
-
-[x] Deploy NestedReact and NestedTypes 2.0 RC to Volicon Observer product.
32
-
-[ ] Release NestedTypes 2.0 and NestedReact 1.0
33
-
34
-
## To do later
35
-
36
-
-[-] Fix silent option semantic. Now it's wrong (as in NestedTypes 1.3). Update should be propagated upper, just events must be supressed. (UPD: under the closer look, it's really the question what is wrong and what is not. Let's keep it like this for a while.)
37
-
-[ ] Fix new event maps semantic in case of inheritance. There might be the problem with inherited models.
38
-
-[x] Fix TypeDoc. It doesn't work.
39
-
-[-] Tune-up the performance (UPD: seems to be fine for the first release - at least 2x gain compared to NestedTypes 1.3).
22
+
Tested and deployed to Volicon/Verizon production systems. Documentation is pending.
40
23
41
24
## Compatibility notes
42
25
43
-
I bet you never was aware about the most of these things, but still:
26
+
It highly unlikely that you even aware about the most of these Backbone API features, but still:
44
27
45
28
-`object.trigger( 'a b' )` is not supported. Use `object.trigger( 'a' ).trigger( 'b' )`. Performance reasons. Not to mention, that when you doing so, you are most likely doing something wrong.
46
29
-`model.initialize( attrs, options, owner )` uses third parameter to set owner, `options.collection` is ignored.
@@ -59,4 +42,4 @@ I bet you never was aware about the most of these things, but still:
59
42
- Symbolic references - `store.x` syntax is deprecated, use `~x` instead.
60
43
-`Integer` -> `Number.integer`
61
44
-`Date` attribute doesn't parse MS format. Use `Date.microsoft`.
0 commit comments