Skip to content

Instantly share code, notes, and snippets.

View conorhastings's full-sized avatar
🏄‍♂️
9-5, just to make a living

Conor Hastings conorhastings

🏄‍♂️
9-5, just to make a living
View GitHub Profile
@conorhastings
conorhastings / machine.js
Last active April 9, 2021 17:28
Generated by XState Viz: https://xstate.js.org/viz
const PIN = 1234;
const pinMachine = Machine({
id: "wizard",
context: {
phone: "",
pin: "",
retries: 0
},
initial: "phone",
states: {
@conorhastings
conorhastings / machine.js
Last active April 8, 2021 17:39
Generated by XState Viz: https://xstate.js.org/viz
const UserMachine = () => {};
Machine(
{
id: 'Get UserI',
initial: 'idle',
context: {
user: null,
retries: 0,
maxRetries: 3,
},
This file has been truncated, but you can view the full file.
[
{
"name": "les Escaldes",
"country": "Andorra",
"subcountry": "Escaldes-Engordany",
"geocode": "3040051"
},
{
"name": "Andorra la Vella",
"country": "Andorra",
@conorhastings
conorhastings / machine.js
Created November 8, 2019 19:19
Generated by XState Viz: https://xstate.js.org/viz
// Available variables:
// - Machine
// - interpret
// - assign
// - send
// - sendParent
// - spawn
// - raise
// - actions
export const userType = `
type User {
id: Int!
title: String!
}
`;
export const resolveUserData() {
return someFunctionThatGetsData();
}
export default function(babel) {
const { types: t } = babel;
return {
visitor: {
VariableDeclaration(path) {
const node = path.node;
if (node.declarations && node.declarations.length === 1) {
const [{ init }] = node.declarations;
if (t.isTemplateLiteral(init)) {
@conorhastings
conorhastings / schedule.json
Last active August 31, 2018 14:31
scheduling
{
"1": [
[1, 2],
[1, 3],
[1, 9],
[1, 6],
[1, 3],
[1, 9],
[1, 6],
[1, 5],
import gql from 'graphql-tag';
import { pick } = 'lodash'
function routeql({ query = {}, params = [], method, apiPrefix = "" }) {
const ast = gql`
${query}
`;
if (
ast.definitions.length > 1 ||
ast.definitions[0].selectionSet.selections.length > 1
@conorhastings
conorhastings / subscribable-request.js
Created December 24, 2017 17:01
subscriable request
export default function subscribableRequest({ baseUrl }) {
let subscriptions = {};
return {
fetch: ({ endpoint, ...rest }) => (
fetch(`${baseUrl}/${endpoint}`, ...rest)
.then(res => res.json())
.then(res => {
subscriptions[endpoint] &&
subscriptions[endpoint].forEach(sub => sub(res));
return res;
@conorhastings
conorhastings / esnextbin.md
Created May 30, 2017 19:11
esnextbin sketch