Skip to content

Instantly share code, notes, and snippets.

type Listener<T extends Array<any>> = (...args: T) => undefined
type EventMap = {
[index: string]: any[]
}
class TypedEvents<Events extends EventMap> {
private events: {
[K in keyof Events]?: Listener<Events[K]>[]
} = {}
import { Gpio } from 'pigpio';
import NanoTimer from 'nanotimer';
function sleep(ms: number) {
return new Promise((resolve) => {
new NanoTimer().setTimeout(resolve, '', `${ms * 1000}u`);
});
}
const stepperConfigs = {
@stutrek
stutrek / machine.js
Last active October 28, 2019 01:42
Generated by XState Viz: https://xstate.js.org/viz
// Available variables:
// - Machine
// - interpret
// - assign
// - send
// - sendParent
// - spawn
// - raise
// - actions
@stutrek
stutrek / machine.js
Created October 15, 2019 17:06
Generated by XState Viz: https://xstate.js.org/viz
// Available variables:
// - Machine
// - interpret
// - assign
// - send
// - sendParent
// - spawn
// - raise
// - actions
@stutrek
stutrek / machine.js
Last active October 26, 2019 16:03
Generated by XState Viz: https://xstate.js.org/viz
// Available variables:
// - Machine
// - interpret
// - assign
// - send
// - sendParent
// - spawn
// - raise
// - actions
@stutrek
stutrek / machine.js
Created October 14, 2019 22:36
Generated by XState Viz: https://xstate.js.org/viz
// Available variables:
// - Machine
// - interpret
// - assign
// - send
// - sendParent
// - spawn
// - raise
// - actions
@stutrek
stutrek / stop_animations.html
Created November 29, 2017 16:06
A style tag that will stop all animations and transitions
<style>
* {
transition-duration: 0 !important;
animation-duration: 0 !important;
}
</style>
@stutrek
stutrek / setup_whitespace
Created December 6, 2016 15:31
git whitespace config
#!/bin/bash
Smudge=$(git config --global filter.tabspace.smudge)
echo $Smudge;
if [ "$Smudge" == '' ]; then
git config --global filter.tabspace.smudge 'unexpand -t 4'
git config --global filter.tabspace.clean 'expand -t 4'
// in place array unique
function unique (arr) {
var i = 0;
var end = arr.length - 1;
while (i < end) {
var item = arr[i];
var index = arr.lastIndexOf(item, end);
if (index > i) {
var ItemView = require('marionette').ItemView;
import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import store from 'app/store';
class MarionetteContainer extends React.Component {
render () {