Skip to content

Instantly share code, notes, and snippets.

View gregberge's full-sized avatar
😉
Building a better web

Greg Bergé gregberge

😉
Building a better web
View GitHub Profile
import React from 'react'
import { BrowserRouter, Route } from 'react-router-dom'
import Home from './Home'
import About from './About'
import Topics from './Topics'
const App = () =>
<BrowserRouter>
<div>
<ul>
// 'a' will be part of my main chunk
import a from 'a'
// 'b' will be loaded from another chunk
import('b').then(b => {
console.log(`hello ${a} ${b}`)
})
@gregberge
gregberge / Routes.js
Last active June 22, 2017 14:59
Loadable components API.
import { asyncComponent } from 'loadable-components'
export const Home = asyncComponent(() => import('client/Home'))
import { Component } from 'react'
import createEagerFactory from './createEagerFactory'
import createHelper from './createHelper'
const mapValues = (obj, func) => {
const result = []
let i = 0
/* eslint-disable no-restricted-syntax */
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
import React from 'react';
import identity from './identity';
import createHelper from 'recompose/createHelper';
import createEagerElement from 'recompose/createEagerElement';
export default createHelper((Wrapper, mapProps) => Component => props => {
mapProps = mapProps || identity;
return (
<Wrapper {...mapProps(props)}>
{createEagerElement(Component, props)}
/**
* publishReplay + refCount.
* Similar to share but using a ReplaySubject.
*
* @param {number} [count=1]
* @returns {Observable}
*/
export function shareReplay(count = 1) {
return this.publishReplay(count).refCount();
}
@gregberge
gregberge / gulpfile.js
Created March 4, 2015 12:42
Watchify, browserify gulp.
var gulp = require('gulp');
var gutil = require('gulp-util');
var watchify = require('watchify');
var uglify = require('gulp-uglify');
var buffer = require('vinyl-buffer');
var source = require('vinyl-source-stream');
var browserify = require('browserify');
var browserSync = require('browser-sync');
var sass = require('gulp-ruby-sass');
var filter = require('gulp-filter');
@gregberge
gregberge / .eslintrc
Last active August 29, 2015 14:11
ESLint configuration
{
"env": {
"browser": true,
"node": true,
"mocha": true
},
"globals": {
"angular": false,
"Promise": true
@gregberge
gregberge / config.js
Last active August 29, 2015 14:08
Simple YAML config loader for node.js.
var minimist = require('minimist');
var path = require('path');
var yaml = require('js-yaml');
var fs = require('fs');
var defaultsDeep = require('merge-defaults');
/**
* Define config path.
*/
@gregberge
gregberge / directive.test.js
Created September 1, 2014 12:55
Angular directive test using mocha.
describe('My directive', function () {
var scope, $compile;
beforeEach(module('app.directives'));
beforeEach(inject(function ($injector) {
$compile = $injector.get('$compile');
var $rootScope = $injector.get('$rootScope');
scope = $rootScope.$new();