Skip to content

Instantly share code, notes, and snippets.

View alexeyraspopov's full-sized avatar
✍️
Working on something exciting

Oleksii alexeyraspopov

✍️
Working on something exciting
View GitHub Profile
/* global DEBUG */
import Flux from 'flux';
export var Dispatcher = new Flux.Dispatcher();
export function dispatch(type, payload) {
if (typeof type !== 'string') {
return Promise.reject(new TypeError('Action type should be a string. Received ' + type));
}

Work in isolation

┌─ Route ──────────────────┐
│                          │
│ ┌─ Container ──────────┐ │
│ │                      │ │
│ │ ┌─ List ───────────┐ │ │
│ │ │                  │ │ │
│ │ │ ┌─ Item ───────┐ │ │ │

Steps to reproduce

  1. Open this gist git clone git@gist.github.com:9e7dcd7dcb061ec49417.git && cd 9e7dcd7dcb061ec49417
  2. Install dependencies npm install
  3. Run build script npm start

Expected: created bundle.js.

Actual: UglifyJS raises an exception Name expected.

PHONY: build
export PATH:=$(shell pwd)/node_modules/.bin:$(PATH)
build: export NODE_ENV=production
build:
exec browserify index.js -t babelify -t envify > bundle.js
const UsersListContainer = Container({
request: UsersListPending,
success: UsersList,
failure: UsersListError
}, {
fragments: {
users: () => fetch('/users').then(r => r.json()),
sort: () => UserStore.map(({sortingKeys}) => makeSortFn(sortingKeys)),
onSelect: () => UserActions.selectUser,
}
var {Observable} = require('rx');
var Iterated = Observable.create(observer => {
var timer = setInterval(() => observer.onNext(13), 1000);
return {dispose(){ clearInterval(timer); }};
});
var Failed = Observable.create(observer => {
var timer = setTimeout(() => observer.onNext('failed'), 3000);
return {dispose(){ clearTimeout(timer); }};
import newsletter from 'newsletter';
export default function Store(reducer) {
const signal = newsletter();
let state = reducer(void 0, {});
return {
getState: () => state,
dispatch: action => {
state = reducer(state, action);
function ObserveDispatcher() {
return Observable.create(observer => {
const token = Dispatcher.register(observer.onNext);
return {dispose() { Dispatcher.unregister(token); }};
});
}
// .publish() can be used for creating hot observable
class ModelInfoContainer extends Transmitter.Container {
static observe({project, model}) {
return {
data: DataRobotAPI.model(project, model),
onSelect: UserActions.selectModel,
};
}
render({data, onSelect}) {
return <ModelInfo data={data} onSelect={onSelect} />;
type Degree = Number;
type Radian = Number;
const x: Degree = 13;
const y: Radian = Math.PI;
function radians(a: Degree): Radian {
return a * Math.PI / 180;
}