mutant
Version:
Create observables and map them to DOM elements. Massively inspired by hyperscript and observ-*. No virtual dom, just direct observable bindings. Unnecessary garbage collection is avoided by using mutable objects instead of blasting immutable junk all ove
38 lines (33 loc) • 837 B
JavaScript
var Array = require('../array')
var Map = require('../map')
var Value = require('../value')
var computed = require('../computed')
var value = Value('human')
var array = Array(['cat'])
var map = Map(array, function (obj) {
if (typeof obj === 'function') {
console.log('mapping => obs')
return computed([obj], (x) => x + ' [dynamic]')
} else {
console.log('mapping => ', obj)
return obj + ' [static]'
}
})
map(x => console.log(x))
array.push('dog')
array.push('cow')
array.push(value)
array.push('chicken')
array.push('wolf')
array.insert('sheep', 0)
value.set('monkey')
// offline invalidate
var invalidator = Value(false)
var count = 0
var thing = Map(Array(['cat']), function (obj, invalidateOn) {
invalidateOn(invalidator)
return count++
})
console.log(thing())
invalidator.set(true)
console.log(thing())