Skip to content

Instantly share code, notes, and snippets.

View geoffreydhuyvetters's full-sized avatar

Geoffrey Dhuyvetters geoffreydhuyvetters

View GitHub Profile
(() => {
const delay = (time=1000) => {
return new Promise((resolve, reject) => {
if(typeof time !== 'number') return reject(new Error('wrong type'));
setTimeout(() => {
return resolve(`waited ${time}ms`);
}, time);
});
};
class Todos extends Component {
componentDidMount() {
const {getTodos} = this.props;
getTodos();
}
/* ... */
}
@geoffreydhuyvetters
geoffreydhuyvetters / script.js
Last active October 28, 2015 16:15
react style as a template string
import ReactDOM from 'react-dom';
import React from 'react';
const toCamelCase = data => {
let str = '';
data.split('-').forEach((part, i) => {
if(i > 0) str += (part.charAt(0).toUpperCase() + part.substr(1, part.length));
else str += part;
export const buildFormData = (form, data={}) => {
let fd = form ? new FormData(form) : new FormData();
for(let key in data){
fd.append(key, data[key]);
}
return fd;
};
export const fetchAndMerge = arr => {
return Promise.all(arr)
.then(data => Object.assign({}, ...data));
};
@geoffreydhuyvetters
geoffreydhuyvetters / stringToHTML.js
Created September 24, 2015 12:37
string to HTML (with template strings)
const stringToHTML = (string, ...values) => {
var str = '';
for(let i = 0; i < string.length; i++){
if(string[i]) str += string[i];
if(values[i]) str += values[i];
}
let doc = new DOMParser().parseFromString(str.trim(), 'text/html');
@geoffreydhuyvetters
geoffreydhuyvetters / dataset_es6.js
Created August 5, 2015 15:48
dataset filtering with es6
var elements = [...document.getElementsByTagName("*")].filter((el) => {
for(var key in el.dataset){
if(key.startsWith('col-')){
return true
}
}
return false;
});
@geoffreydhuyvetters
geoffreydhuyvetters / dataset.js
Created August 5, 2015 15:41
filter on dataset.
var elements = [].filter.call(
document.getElementsByTagName("*"), function(el){
for(var key in el.dataset){
if(key.indexOf('col-') === 0){
console.log(el);
return true
}
}
@geoffreydhuyvetters
geoffreydhuyvetters / templating.js
Last active August 29, 2015 14:25
templating strings fun.
//abusing templating strings part 1.
function _checkStatus(response){
if(response.status >= 200 && response.status < 300){
return response;
}else{
var error = new Error(response.statusText);
throw error;
}
}
@geoffreydhuyvetters
geoffreydhuyvetters / mixins.scss
Last active August 29, 2015 14:25
postcss mixins
@define-mixin border-box-default{
html {
box-sizing: border-box;
}
*, *:before, *:after {
box-sizing: inherit;
}
}