Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

import tink.pure.*;
using tink.state.Promised;
using tink.CoreApi;
private typedef Payload<Key, Item> = {
final order:List<Key>;
final items:Mapping<Key, Item>;
}
@back2dos
back2dos / Main.hx
Created May 3, 2020 07:12
Caching circular references in tink_json
// haxe -lib tink_json --run Main
package;
class Main {
static function main() {
var foo = new Circular('foo');
var a = { c1: foo, c2: foo };
var json = tink.Json.stringify(a);
trace(json);
@back2dos
back2dos / current.hx
Last active January 7, 2020 20:24
apis
interface IReadable {
final dataSignal:Signal<Bytes>;
final endSignal:Signal<NoData>;
final errorSignal:Signal<Error>;
final pauseSignal:Signal<NoData>;
final resumeSignal:Signal<NoData>;
function resume():Void;
function pause():Void;
function pipe(target:IWritable):Void;
}
@back2dos
back2dos / coconut.data.hxml
Last active January 8, 2020 00:00
Speedup hxx/coconut.
-D coconut.data=0.9.0
# @install: lix --silent download "gh://github.com/MVCoconut/coconut.data#d531e49a168b496afa69085c78e56a079e158bca" into coconut.data/0.9.0/github/d531e49a168b496afa69085c78e56a079e158bca
-lib tink_anon
-lib tink_lang
-lib tink_pure
-lib tink_state
-cp ${HAXE_LIBCACHE}/coconut.data/0.9.0/github/d531e49a168b496afa69085c78e56a079e158bca/src
--macro coconut.data.macros.Setup.run()
@back2dos
back2dos / preact.html
Created October 13, 2018 11:09
TodoMVCoconut
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>TodoMVCoconut + Preact</title>
<meta name="description" content="TodoMVC implementation based on MVCoconut" />
<link rel="stylesheet" type="text/css" href="styles.css">
<link rel="icon" href="https://avatars1.githubusercontent.com/u/25455337?v=3&amp;s=200" type="image/png" />
</head>
@back2dos
back2dos / Test.hx
Created October 4, 2018 02:26
Coconut data example.
import js.Browser.*;
using StringTools;
class Data implements coconut.data.Model {
@:observable var text:String;
@:observable var type:Int;
@:observable var visible:Bool;
@:transition function receiveUpdate(delta)
return @patch delta;
}

coconut.ui

  • get rid of view cache

coconut.vdom

  • adjust to cacheless coconut.ui
  • align life cycle hooks with react (to the extent that it makes sense)
  • pull tag information from tink_domspec
  • merge to master
import coconut.ui.*;
import vdom.Attr;
import js.Browser.*;
typedef Bounds =
{
var top(default, never):Float;
var left(default, never):Float;
var bottom(default, never):Float;
var right(default, never):Float;
import tink.state.*;
import coconut.data.*;
@:enum abstract Side(String) to String {
var North = "North";
var East = "East";
var South = "South";
var West = "West";
}
@back2dos
back2dos / tagsoup.md
Last active May 18, 2018 12:09
A short comparison of various markup flavors.

JSX

<Window content={
  <div>
     <h1>Hello!</h1>
     <button onClick={function () { alert("why not onclick?!"); }}>Click me!</button>
  </div>
} />