Closed theengineear closed 3 years ago
FYI @klebba — I think we're finally ready to merge this!
Note — we will probably bump to 1.0.0-rc.41
before finally moving to 1.0.0
. The important part is that we should be clear to merge this in and release 👌
@theengineear awesome work!
This closes #68, closes #67, closes #66, closes #57, closes #46, closes #42, closes #36, closes #31, closes #30, closes #28, closes #26, and closes #25.
This is a clean version of #58 — that PR began as an exploration and turned into a promising candidate for our initial 1.0.0. Since the discussions got lengthy in there, I decided to start fresh with a better branch name and a clean slate.
Significant changes:
console.warn
(e.g., inherited property shadowing,data-*
attributes, etc.)observer
>>observe
is now a function (proper context is maintained if it's a constructor method).computed
>>input
+compute
.compute
is now a function.input
is an array of property names which will be resolved to arguments at runtime and passed tocompute
.value
>>initial
+default
.initial
is used if initial value is nullish.default
is used if property value is ever nullish.readOnly
is first-class.internal
is first-class..internal
proxy.compute
at the end.createRenderRoot
.observe
callbacks to bevalue, oldValue
— it was previouslyoldValue, value
.compute
,reflect
,render
, thenobserve
.compute
,listen
,observe
, etc).null
andundefined
to''
is removed, the underlying templating engine takes care of this for us.[Boolean, String, Number]
now throws a halting error (e.g., setting an attribute for a property that is oftype: Object
).