v1.0.0 Change Log
Goals
This release aims to standardize library’s property creation methodology.
- Standardize on StateType use instead of mixing with explicit property creation parameters
- Allow property class specType to be specialized
- Add Collection support for specType
- Add Collection endpoint support for stubbed data (PojoEndpointProperty)
- Collection todo example
- Remove stateSpec references (rely on type mechanism)
- Remove KeyedProperty, StateTypes, and createXyzPropertyType() functions
- Create IndexedApi class to mirror KeyedApi
- Basic todo example
- Tutorial based on todo example
- Reduce memory footprint of ShadowImpl
- Unit tests: AutoShader, Property, PropertyFactoryShader, Shader, StateType, Store
Documentation
- Overview document
- Tutorial under development
Changes
Libraries
- (uuid)[https://github.com/kelektiv/node-uuid]
ArrayProperty
createClass(shadowType={}, specCallback, initialState=[])signature changed
IndexedProperty
- Constructor takes single argument of
StateType createClass(shadowType={}, specCallback, initialState=[])signature changed
IndexedShadowImpl
- Fixed
remove()bug where state improperly set - Fix f
ilter()bug where undefined variablevwas being used instead of this[i] - Use
ShadowImpl.switchNames()while remapping
MapProperty
createClass(shadowType={}, specCallback, initialState=[])signature changed
ObjectProperty
- Constructor takes single argument of
StateType - Use
ObjectShadowImpl createClass(shadowType={}, specCallback, initialState=[])signature changed
Property
- Constructor takes single argument of
StateType. If one not passed as parameter then default located in the property’s prototype chain.
PropertyFactoryShader
- Constructor signature:
constructor(stateType, parent) - Replaed s
etElementClass()withsetElementType(stateType) addStateType()->addProperty(name, stateType)addPropertyClass()removed
Shader
addStateType()->addProperty(name, stateType)addPropertyClass()removed
StateType
computeInitialState()now non-static and no argumentsshadowClassForProperty(defaultClass=Shadow)signature changed and no longer staticinitialStateWithDefaults(state)signature changed and no longer staticfrom(prop)static method to walk the prototype hieararchy looking for aStateTypeinstance on the constructor: stateSpec or type properties in that order
ShadowImpl
switchNames()added to move_nextNameto_nameto be used during property remapping
createPropertyClass()
- Signature changed:
createPropertyClass(shadowType, initialState, specCallback, PropertyClass, BaseShadowClass=Shadow)
Examples
- Todo basic example
- Todo with Collections
- Tutorial step examples