Closed justinbmeyer closed 5 years ago
DefineMap's .value() makes it easy to isolate how a property behaves. We should add this to can-map for all the legacy folks to use.
.value()
can-map
We need a new name, I propose resolver similar to can-observe's resolver decorator:
resolver
can-observe
https://canjs.com/doc/can-observe.resolver.html
CanMap.extend({ define: { name: "string", nameChangedCount: { resolver( {listenTo, resolve} ){ var count = resolve(0); listenTo("name", ()=>{ resolve(++count) }) } } } });
I think this might be as simple as changing:
https://github.com/canjs/can-map-define/blob/8838dc5c37e83779c054064edd22542d9e7bc98c/can-map-define.js#L365
To include something like:
var Resolver = require("can-simple-observable/resolver/resolver"); ... if (def.resolver) { mapHelpers.addComputedAttr(this, attr, new Resolver(def.resolver, this, def.value ) ); }
DefineMap's
.value()
makes it easy to isolate how a property behaves. We should add this tocan-map
for all the legacy folks to use.We need a new name, I propose
resolver
similar tocan-observe
'sresolver
decorator:https://canjs.com/doc/can-observe.resolver.html
I think this might be as simple as changing:
https://github.com/canjs/can-map-define/blob/8838dc5c37e83779c054064edd22542d9e7bc98c/can-map-define.js#L365
To include something like: