Skip to content

Instantly share code, notes, and snippets.

🔥
#BLM

Dan Levy justsml

🔥
#BLM
View GitHub Profile
View passport-auth-knex.js
require('dotenv').config()
const http = require('http')
const express = require('express')
const session = require('express-session')
const FileStore = require('session-file-store')(session)
const bodyParser = require('body-parser')
const morgan = require('morgan')
const cors = require('cors')
const passport = require('passport')
@justsml
justsml / fetch-api-examples.md
Last active Jul 6, 2020
JavaScript Fetch API Examples
View fetch-api-examples.md
View bgschiller-example.js
"use strict";
const fs = require("fs");
const fsPromises = fs.promises;
const { spawnSync } = require("child_process");
const workflows = "test";
const out = "test";
// See docs: https://fpromises.io
const FP = require('functional-promises');
View tatiana-mac-speaker-rider.md

Speaker Rider

by Tatiana Mac

Before I'll agree to a speaking event, I try to do as much research I can around the event to ensure it aligns with my ethos. I want to share this in case it's helpful to any other speakers.

👐 Speaking comes with immense privilege. I am grateful to all the conference organisers who have brilliantly hosted me. I would love to continue to exercise this privilege to speak at conferences, and use this privilege to make the landscape more accessible and beneficial to tech's most marginalised and suppressed communities.

😫 I wish I didn't have to, but this is long because I provide a lot of explanations for those of you who never had to consider these things. And I will be honest, most thoughtful conferences I've attended check most of these boxes intrinsically, particularly when conference runners are experienced speakers. They get it.

1️⃣ All of these are based on my own ethos. I don't wish to or attempt to speak on behalf of all conference speake

View posting-json.js
postRequest('http://example.com/api/v1/users', {user: 'Dan'})
.then(data => console.log(data)) // Result from the `response.json()` call
function postRequest(url, data) {
return fetch(url, {
credentials: 'same-origin', // 'include', default: 'omit'
method: 'POST', // 'GET', 'PUT', 'DELETE', etc.
body: JSON.stringify(data), // Use correct payload (matching 'Content-Type')
headers: { 'Content-Type': 'application/json' },
})
@justsml
justsml / setup-docker.md
Last active May 4, 2020
Docker Setup for Server Host, DB Instances, and NodeJS App
View setup-docker.md

Docker Host Server Setup, w/ Basic Monitoring Tools

# Updates
apt-get update && apt-get install -y vim-nox git-core ufw curl atop htop build-essential libssl-dev linux-image-amd64 linux-headers-amd64

# Updates Profile init scripts
cd ~/
curl -sSL https://gist.githubusercontent.com/justsml/b667f158731fd054cd38/raw/5778dbb5d3d138ccf99ae1bf973457ce89661362/.bash_aliases > .bash_aliases_new
cat .bash_aliases_new >> .bash_aliases
View unicode-helpers.js
const combiningMarks = /([\0-\u02FF\u0370-\u1AAF\u1B00-\u1DBF\u1E00-\u20CF\u2100-\uD7FF\uE000-\uFE1F\uFE30-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])([\u0300-\u036F\u1AB0-\u1AFF\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]+)/gmi;
/**
Remove unicode combining symbols.
Will convert the following string: Z͑ͫ̓ͪ̂ͫ̽͏̴̙̤̞͉͚̯̞̠͍A̴̵̜̰͔ͫ͗͢L̠ͨͧͩ͘G̴̻͈͍͔̹̑͗̎̅͛́Ǫ̵̹̻̝̳͂̌̌͘!͖̬̰̙̗̿̋ͥͥ̂ͣ̐́́͜͞
Into: ZALGǪ!
*/
export const removeCombiningMarks = (input) => {
return input.replace(combiningMarks, (substr, ...args) => {
@justsml
justsml / auth-with-admin.js
Last active Apr 9, 2020
Functional River pattern
View auth-with-admin.js
// Functional River Pattern
// Original: https://github.com/justsml/escape-from-callback-mountain/blob/master/src/auth.fp.js
const {hashString} = require('./lib/crypto')
const users = require('./lib/users')
function auth({username = '', password = ''}) {
return Promise.resolve({username, password})
.then(_checkArgs)
.then(_loginUser)
@justsml
justsml / cloudflare-workers-signup-endpoint.js
Created Feb 23, 2020
Uses Cloudflare KV data store & Google ReCaptcha!
View cloudflare-workers-signup-endpoint.js
// Note to self: Currently running here: https://dash.cloudflare.com/eb29900091c43bef22edfb71df934698/workers/edit/fanclub
/*
## Utility Functions
*/
const isEmailShaped = email => email && email.length > 5 && email.indexOf('@') > -1
const sendJSON = (data, status = 200) => new Response(
typeof data !== 'string' ? JSON.stringify(data) : data, {
headers: { 'Content-Type': 'application/json; charset=UTF-8' },
You can’t perform that action at this time.