Skip to content

Instantly share code, notes, and snippets.

@jthegedus
jthegedus / CF4F-ES6-2|function01.js
Last active November 29, 2017 11:46
ES6+ in Cloud Functions for Firebase - preset-2015
// input - using CommonJS module syntax
const functions = require('firebase-functions')
module.exports.helloWorld = functions.https.onRequest((req, res) => {
let world = `from Babelified Cloud Functions!`;
res.status(200).send(`Hello ${world}`);
})
// Babel output - with Babel REPL settings:
// * preset-es2015
@jthegedus
jthegedus / CF4F-ES6-2|function02.js
Last active November 29, 2017 11:46
ES6+ in Cloud Functions for Firebase - preset-2015 with ES module syntax
// input - using ES module syntax
import * as functions from 'firebase-functions';
export let helloWorld = functions.https.onRequest((req, res) => {
let world = `from Babelified Cloud Functions!`;
res.status(200).send(`Hello ${world}`);
})
// Babel output - with Babel REPL settings:
// * prettify
@jthegedus
jthegedus / CF4F-ES6-2|function03.js
Last active November 29, 2017 13:24
ES6+ in Cloud Functions for Firebase - preset-2015 with async/await (not getting compiled)
// Babel output - with Babel REPL settings:
// * preset-es2015
"use strict";
var functions = require("firebase-functions");
var message = function message() {
return new Promise(function(resolve) {
setTimeout(function() {
resolve("from Babelified Cloud Functions!");
@jthegedus
jthegedus / CF4F-ES6-2|function04.js
Last active November 29, 2017 13:24
ES6+ in Cloud Functions for Firebase - preset-2015,2016,2017 to compile async/await
// Babel output - with Babel REPL settings:
// * prettify
// * preset-es2015 (es6->es5)
// * preset-es2016 (es7->es6)
// * preset-es2017 (es8->es7)
"use strict";
function _asyncToGenerator(fn) {
return function() {
@jthegedus
jthegedus / CF4F-ES6-2|function05.js
Last active November 29, 2017 13:24
ES6+ in Cloud Functions for Firebase - preset-env to minimally compile async-await
// Babel output - with Babel REPL settings:
// * prettify
// * preset-env Node v6.9
"use strict";
function _asyncToGenerator(fn) {
return function() {
var gen = fn.apply(this, arguments);
return new Promise(function(resolve, reject) {
@jthegedus
jthegedus / CF4F-ES6-2|input.js
Created November 29, 2017 13:23
ES6+ in Cloud Functions for Firebase - input for the last 3 examples
// input - async/awaiy with CommonJS module syntax
const functions = require('firebase-functions');
// returns a string after 5 seconds
const message = () => {
return new Promise(resolve => {
setTimeout(() => {
resolve(`from Babelified Cloud Functions!`)
}, 5000)
})
@jthegedus
jthegedus / .eslintrc.yml
Last active December 16, 2017 07:57
My ESLint Config
---
root: true
# Use create-react-app eslint config as it does not apply styling rules (use prettier for styling) - https://github.com/facebookincubator/create-react-app/tree/master/packages/eslint-config-react-app
#
# yarn add eslint-config-react-app babel-eslint@^7.2.3 eslint@^4.1.1 eslint-plugin-flowtype@^2.34.1 eslint-plugin-import@^2.6.0 eslint-plugin-jsx-a11y@^5.1.1 eslint-plugin-react@^7.1.0
# yarn add eslint-plugin-import
extends:
- react-app
@jthegedus
jthegedus / gist1.js
Last active June 13, 2020 04:46
Embed.ly GitHub provider cannot discern files within Gists. https://codeburst.io/github-medium-with-embedly-30d9115af585
export default () => <div>File one</div>;
@jthegedus
jthegedus / firebase-import-sizes.md
Last active January 29, 2018 01:17
Firebase JS SDK import sizes
tool package size(K) gzipped(K)
Firebase firebase 412 116
Firebase client core @firebase/app 19.4 6.27
Authentication @firebase/auth 134.81 43.42
Realtime DB @firebase/database 193.34 47.15
Cloud Messaging @firebase/messaging 19.66 5.63
Cloud Storage @firebase/storage 35.89 10.5
Total 403.1 112.97
@jthegedus
jthegedus / function-next.config.js
Last active April 3, 2018 12:41
next.js plugin
const nextEnv = require('next-env');
const nextEnvOpts = { ... };
module.exports = (phase, {defaultConfig}) => {
return nextEnv(nextEnvOpts, defaultConfig, phase); // explicitly pass phase
}
/// with other plugins
const withTypescript = require('@zeit/next-typescript')