Skip to content

Instantly share code, notes, and snippets.

View kulakowka's full-sized avatar

Anton Kulakov kulakowka

  • Tbilisi, Georgia
View GitHub Profile
@kulakowka
kulakowka / gulpfile.js
Created October 15, 2015 19:04 — forked from danharper/gulpfile.js
New ES6 project with Babel, Browserify & Gulp
var gulp = require('gulp');
var sourcemaps = require('gulp-sourcemaps');
var source = require('vinyl-source-stream');
var buffer = require('vinyl-buffer');
var browserify = require('browserify');
var watchify = require('watchify');
var babel = require('babelify');
function compile(watch) {
var bundler = watchify(browserify('./src/index.js', { debug: true }).transform(babel));
@kulakowka
kulakowka / router.js
Last active November 9, 2015 22:51
ES 2015 express-router
import {Router} 'express'
export default const router = Router()
router.get('/items',
(req, res, next) => {
Item
.find()
.exec()
.catch(next)
import {Router} 'express'
import {auth, logged} from 'actions/auth'
import {list, show} from 'actions/users'
import {render} from 'actions/common'
export default const router = Router()
router.use(auth)
router.get('/api/users', loadUsers, json)
router.get('/users', loadUsers, render('users/list'))

Usage

  • npm run production - Build task that generates minified scripts for production
  • npm run precommit - Run the unit tests,, and generate a minified script
  • npm run clean - Remove the dist folder
  • npm run eslint:source - Lint the source
  • npm run eslint:common - Lint the unit tests shared by Karma and Mocha
  • npm run eslint:server - Lint the unit tests for server
  • npm run eslint:browser - Lint the unit tests for browser
  • npm run clean - Remove the coverage report and the dist folder
@kulakowka
kulakowka / mithril.layout.js
Created March 3, 2016 13:09
How to create different layouts for Mithril.js
import m from 'mithril'
// Function for compose header and footer into layout
function mixinLayout (layout, header, footer, body) {
return layout(header, footer, body)
}
// Layout component
function layout (header, footer, body) {
import React, { Component } from 'react'
import Firebase from 'firebase'
import ReactFireMixin from 'reactfire'
import reactMixin from 'react-mixin'
const ref = new Firebase('https://<APPNAME>.firebaseio.com/users')
class UsersList extends Component {
constructor (props, context) {
super(props, context)
@kulakowka
kulakowka / Reactfire-messages-example.js
Last active March 6, 2016 19:33
How to create messages list with new message form
import React, { Component } from 'react'
import Firebase from 'firebase'
import ReactFireMixin from 'reactfire'
import reactMixin from 'react-mixin'
import LinkedStateMixin from 'react-addons-linked-state-mixin'
const ref = new Firebase('https://<APP NAME>.firebaseio.com/')
class Messages extends Component {
constructor (props, context) {
var prop = (prop) => (obj) => obj[prop]
var html = (selector) => (data) => $(selector).html(data)
var render = (template) => (json) => Template.render(template, json)
var comments = (params) => fetch('/comments', params).then(JSON.parse).then(prop('data')).then(render('commentsList'))
var renderComments = (params) => comments(params).then(html('.comments'))
renderComments({ user: 1 }).catch(err => console.error(err))
@kulakowka
kulakowka / runSerial.js
Created September 29, 2016 20:08
promise serial
function runSerial (tasks) {
var result = Promise.resolve()
tasks.forEach(task => {
result = result.then(() => task())
})
return result
}