Skip to content

Instantly share code, notes, and snippets.

@webpapaya
webpapaya / required_arguments.js
Created March 17, 2016 16:03
Required Arguments in JS
const required = () => {throw Error('Parameter missing')};
const myFn = (myArgument = required()) => {};
it('throws error when argument is not present', () => {
assert.throws(() => {
myFn();
});
});
message = %w(
Lorem ipsum dolor sit amet, consetetur
sadipscing elitr, sed diam nonumy eirmod
tempor invidunt ut labore et dolore magna
).join(' ')
@webpapaya
webpapaya / day-spec.js
Created May 20, 2016 08:37
How would you improve this code?
import {
assertThat,
equalTo,
} from 'hamjest';
import { getDaysInMonth } from './day';
describe('getDaysInMonth()', () => {
it('April has 30 days', () =>
assertThat(getDaysInMonth(4, 2016), equalTo(30)));
@webpapaya
webpapaya / deploy-changelog.sh
Last active July 17, 2020 03:59
Travis CHANGELOG.md generator
#!/bin/bash
if [ "$TRAVIS_PULL_REQUEST" != "false" -o "$TRAVIS_BRANCH" != "$CHANGELOG_BRANCH" ]; then
echo "This commit was made against the $TRAVIS_BRANCH and not $CHANGELOG_BRANCH! Changelog not updated!"
exit 0
fi
gem install rack -v 1.6.4
gem install github_changelog_generator
export const executeAndReturn = (fn) => {
return (argument) => {
fn();
return argument;
}
};
/^[+-]?\d+\b$|^[+-]?\d+\b-[+-]?\d{2}$|^[+-]?\d+\b-[+-]?\d{2}-[+-]?\d{2}$|^[+-]?\d+\b-[+-]?\d{2}-[+-]?\d{2}[\sT][+-]?\d{2}$|^[+-]?\d+\b-[+-]?\d{2}-[+-]?\d{2}[\sT][+-]?\d{2}:[+-]?\d{2}$|^[+-]?\d+\b-[+-]?\d{2}-[+-]?\d{2}[\sT][+-]?\d{2}:[+-]?\d{2}:[+-]?\d{2}(\.\d+)?$|^[+-]?\d+\b-[+-]?\d{2}-[+-]?\d{2}[\sT][+-]?\d{2}:[+-]?\d{2}[+-]\d{2}(:\d{2})?|Z$|^[+-]?\d+\b-[+-]?\d{2}-[+-]?\d{2}[\sT][+-]?\d{2}[+-]\d{2}(:\d{2})?|Z$|^[+-]?\d+\b-[+-]?\d{2}-[+-]?\d{2}[\sT][+-]?\d{2}:[+-]?\d{2}:[+-]?\d{2}(\.\d+)?[+-]\d{2}(:\d{2})?|Z/
import React from 'react';
import ReactDOM from 'react-dom';
const createActions = () => {
const signIn = () => new Promise((resolve) => {
setTimeout(resolve, 1000)
});
return { signIn };
};
import React from 'react';
import ReactDOM from 'react-dom';
import { waitAtLeast } from 'promise-frites';
//...
class SignInScreen extends React.Component {
state = {
isLoading: false
}
render() {
import React from 'react';
import ReactDOM from 'react-dom';
import { waitAtLeast } from 'promise-frites';
//...
class SignInScreen extends React.Component {
state = {
isLoading: false,
loadingText: "Please wait",
}
const waitAtLeast1Second = waitAtLeast(1);
const apiCall = Promise.resolve('my api data');
Promise.resolve()
.then(waitAtLeast1Second(apiCall))
.then((data) => data === 'my api data');