Run this in one shell
./node_modules/.bin/mocha --debug-brk --compilers js:babel-register test/node
Then this in another shell
node-inspector
Then open the browser
/** | |
* Delays all items from the source Observable up until when the other Observable | |
* emits its first item. After the other Observable emitted its first item, | |
* the source items are not delayed. | |
* | |
* source: ---s-s---s----------s---s----s---s---s--|> | |
* other: ------------o------o-------o------o-----|> | |
* result: ------------sss-----s---s----s---s---s--|> | |
* | |
* @param first |
(defn button [props _] | |
(om/component | |
(dom/button nil (:children props)))) | |
(def render-out (om/render-to-object button {:children "text"})) | |
(is (= "text" (:children render-out)) |
function main() { | |
return { | |
DOM: Rx.Observable.timer(0, 1000) | |
.map(i => `Seconds elapsed ${i}`) | |
}; | |
} | |
const drivers = { | |
DOM: function DOMDriver(sink) { | |
sink.subscribe(text => { |
function main() { | |
return { | |
DOM: Rx.Observable.timer(0, 1000) | |
.map(i => { | |
return { | |
tagName: 'h1', | |
children: [`Seconds elapsed ${i}`] | |
} | |
}) | |
} |
Rx.Observable.timer(0, 1000) | |
.map(i => `Seconds elapsed ${i}`) | |
.subscribe(text => { | |
const container = document.querySelector('#app'); | |
container.textContent = text; | |
}); |
import {Observable, Disposable} from 'rx'; | |
import {run} from '@cycle/core' | |
const jsondiffpatch = require('jsondiffpatch').create({ | |
objectHash: function(obj) { | |
return obj.name; | |
} | |
}); | |
function generateCurve(steps){ | |
var curve = new Float32Array(steps) |
var operators = [ | |
'\\.case', | |
'\\.create', | |
'\\.defer', | |
'\\.empty', | |
'\\.forkJoin', | |
'\\.from', | |
'\\.fromCallback', | |
'\\.fromEvent', | |
'\\.fromEventPattern', |
Run this in one shell
./node_modules/.bin/mocha --debug-brk --compilers js:babel-register test/node
Then this in another shell
node-inspector
Then open the browser
// Generic helper function that takes a main() (the top-level component) | |
// and wraps it with Stanga logic | |
function wrapWithStanga(main, initialState) { | |
return function (sources) { | |
const modProxy$ = new Subject(); | |
const modelSource = Model(initialState)(modProxy$); | |
sources.model = modelSource; | |
const sinks = main(sources); | |
sinks.model.subscribe(modProxy$); |
import xs from 'xstream'; | |
import Cycle from '@cycle/xstream-run'; | |
import {h, makeDOMDriver} from '@cycle/dom'; | |
require('aframe'); | |
function main(sources) { | |
let vdom$ = xs.periodic(16).startWith(0).map(i => | |
h('a-scene', [ | |
h('a-sphere', { | |
attrs: { |