Skip to content

Instantly share code, notes, and snippets.

Avatar
👌

Jalal Fathi JaySunSyn

👌
  • Planet Earth | Amsterdam | Vienna | Bali
View GitHub Profile
@JaySunSyn
JaySunSyn / index.js
Created Jan 21, 2018
Firebase functions Dynamic OG-Tags
View index.js
exports.host = functions.https.onRequest((req, res) => {
const userAgent = req.headers['user-agent'].toLowerCase();
let indexHTML = fs.readFileSync('./hosting/index.html').toString();
const path = req.path ? req.path.split('/') : req.path;
const ogPlaceholder = '<meta name="functions-insert-dynamic-og">';
const metaPlaceholder = '<meta name="functions-insert-dynamic-meta">';
const isBot = userAgent.includes('googlebot') ||
userAgent.includes('yahoou') ||
userAgent.includes('bingbot') ||
@JaySunSyn
JaySunSyn / medium-null-example-one.js
Last active Oct 15, 2019
Example defined checking
View medium-null-example-one.js
// DON'T do this
function when(expression, trueFn, falseFn) {
if (expression) {
return trueFn();
}
if (falseFn) {
return falseFn();
}
return undefined;
@JaySunSyn
JaySunSyn / medium-null-example-one-solution.js
Last active Oct 15, 2019
medium-null-example-one-solution
View medium-null-example-one-solution.js
function when(expression, trueFn, falseFn) {
if (expression != null) {
return trueFn();
}
if (falseFn != null) {
return falseFn();
}
return undefined;
}
@JaySunSyn
JaySunSyn / medium-null-example-two.js
Last active Oct 14, 2019
medium-null-example-two
View medium-null-example-two.js
_valueChanged(value) {
if (value) {
this.postUpdate(value);
return;
}
this._errorMessage = 'Please input an amount'
}
View keybase.md

Keybase proof

I hereby claim:

  • I am jaysunsyn on github.
  • I am jalalio (https://keybase.io/jalalio) on keybase.
  • I have a public key ASB0vIi6qhwg3Phy1DgDxiG4pyI0Shu47agbmiD2WZxjowo

To claim this, I am signing this object:

View redux-middleware.html
<script src="../../node_modules/redux-thunk/dist/redux-thunk.min.js"></script>
<script>
(() => {
const callAPIMiddleware = ({dispatch, getState}) => {
return next => action => {
const {
types,
callAPI,
shouldCallAPI = () => true,
View todo-list.html
<link rel="import" href="../bower_components/polymer/polymer-element.html">
<link rel="import" href="../bower_components/polymer/lib/elements/dom-repeat.html">
<link rel="import" href="redux/redux-mixin.html">
<dom-module id="todo-list">
<template>
<ul>
<template is="dom-repeat" items="[[todos]]" as="todo">
<li on-click="_remove">[[todo.text]] <span style="color: white">Remove</span></li>
View redux-mixin.html
<link rel="import" href="../../bower_components/polymer/polymer-element.html">
<link rel="import" href="../../bower_components/polymer-redux/polymer-redux.html">
<link rel="import" href="redux-reducers.html">
<link rel="import" href="redux-selectors.html">
<link rel="import" href="redux-actions.html">
<script>
(() => {
App = window.App || {};
View redux-reducers.html
<script src="../../node_modules/redux/dist/redux.min.js"></script>
<script>
(() => {
const initialState = {
todos: [
{text: 'Buy Veggies'},
{text: 'Buy Fruits'},
{text: 'Buy Pizza'},
],
View redux-actions.html
<script>
(() => {
const add = (todo) => {
return {
type: 'ADD_TODO',
todo: {text: todo},
};
};
const remove = (todo) => {