Skip to content

Instantly share code, notes, and snippets.

View maciejsikora's full-sized avatar

Maciej Sikora maciejsikora

View GitHub Profile
@maciejsikora
maciejsikora / universal-react-app-server-rendering.js
Created July 30, 2017 21:11
Universal Application in React - Server Rendering Part
const renderPage = (req, res, store) => {
const reactPart = renderToString(
<Provider store={store}>
<StaticRouter
location={req.url}
context={{}}>
<App/>
</StaticRouter>
</Provider>
@maciejsikora
maciejsikora / universal-react-app-browser-init.js
Created July 30, 2017 21:21
Universal react application browser initialization
const initState = window.__STATE__;
delete window.__STATE__; // not needed anymore
// Create Redux store with initial state
const store = createStore(reducer.main, initState);
// start the app
window.initApp = (url) => {
window.onload = () => {
ReactDOM.render(
<Provider store={store}>
@maciejsikora
maciejsikora / es6-module-test-user-module.js
Last active October 23, 2017 12:48
es6-module-test-user-module
function hasProp (obj, prop) {
return obj.hasOwnProperty(prop)
}
function hasProps (obj, props) {
return props.filter(prop => hasProp(obj, prop)).length === props.length
}
function isString (value) {
return typeof value === 'string'
@maciejsikora
maciejsikora / es6-module-test.js
Created October 23, 2017 12:49
Test file of encapsulated es6 module private resources
const assert = require('assert')
const rewire = require('rewire')
// standard using of exported functions
const { createUser } = require('./user')
// using rewire to get into private resources
const userRewire = rewire('./user')
const hasProp = userRewire.__get__('hasProp')
const hasProps = userRewire.__get__('hasProps')
@maciejsikora
maciejsikora / Spread.js
Last active December 27, 2017 21:46
Change by using spread operator
// object
const claraFrog = { color: 'green', name: 'Clara' };
const juliaFrog = { ...claraFrog, name: 'Julia' };
// array
const week = ['monday','tuesday','wednesday','thursday','friday','saturday', 'sunday'];
const betterWeek = [...week];
betterWeek.shift(); // week without monday :)
class Just<Data> {
value: Data;
constructor(value: Data) {
this.value = value;
}
fmap<NextData>(f: (x: Data) => NextData) {
return new Just<NextData>(f(this.value))
}
}
class Nothing {
@maciejsikora
maciejsikora / maybeMonad.ts
Last active May 16, 2019 10:23
Maybe Monad
class Just<Data> {
value: Data;
constructor(value: Data) {
this.value = value
}
fmap<NextData>(f: (x: Data) => NextData) {
return new Just<NextData>(f(this.value))
}
private flat() {
return this.value