Skip to content

Instantly share code, notes, and snippets.

View SamWSoftware's full-sized avatar

Sam Williams SamWSoftware

View GitHub Profile
export const handler = async (event) => {
// TODO implement
//#Source https://bit.ly/2neWfJ2
const hz = (fn, iterations = 100) => {
const before = performance.now();
for (let i = 0; i < iterations; i++) fn();
return (1000 * iterations) / (performance.now() - before);
};
// 10,000 element array
const numbers = Array(10000)
export const handler = async (event) => {
// TODO implement
//#Source https://bit.ly/2neWfJ2
const hz = (fn, iterations = 100) => {
const before = performance.now();
for (let i = 0; i < iterations; i++) fn();
return (1000 * iterations) / (performance.now() - before);
};
// 10,000 element array
const numbers = Array(10000)
@SamWSoftware
SamWSoftware / scrapeSocialBlade.js
Last active October 6, 2022 11:17
A way to gather view stats for a given channel
const stringToNumber = (string) => {
const scale = string.slice(-1);
if (scale === "K"){
return Number(string.slice(0,-1)) * 1000;
}
if (scale === "M") return Number(string.slice(0,-1)) * 1000000;
return Number(string)
}
const quantile = (arr, q) => {
const sorted = arr.sort((a, b) => a - b);
@SamWSoftware
SamWSoftware / Cognito.ts
Created August 15, 2022 09:34
Cognito Token Verification
// https://gist.github.com/SamWSoftware/b4375a7dcbbd57fc1931b798afc09423
import { promisify } from 'util';
import * as Axios from 'axios';
import * as jsonwebtoken from 'jsonwebtoken';
const jwkToPem = require('jwk-to-pem');
export interface ClaimVerifyRequest {
readonly token: string;
}
@SamWSoftware
SamWSoftware / testForOfAsync.js
Created May 9, 2022 07:50
forOf vs map with promise array
const testForOfAsync = async () => {
const start = Date.now();
const getFruits = [
new Promise((resolve) => {setTimeout(() => resolve('apple'), 10000)}),
new Promise((resolve) => {setTimeout(() => resolve('banana'), 100)}),
new Promise((resolve) => {setTimeout(() => resolve('orange'), 100)})
]
for await (const fruit of getFruits) {
console.log(fruit, Date.now() - start)
@SamWSoftware
SamWSoftware / handler.js
Created November 5, 2021 15:16
Incorrect Use of Global Variables
let config = {
minimumScore: 50,
};
exports.handler = async (event) => {
const { score, mode } = event;
let minimumScore = config.minimumScore
@SamWSoftware
SamWSoftware / handler.js
Created November 5, 2021 15:14
Correct Usage of Global Variables
let cachedData = {};
exports.handler = async (event) => {
if (cachedData && cachedData.expiresOn > Date.now() ) {
const response = {
statusCode: 200,
body: `The weather is ${cachedData.weather} and it is ${cachedData.temperature} decrees Celcius`,
};
return response;
@SamWSoftware
SamWSoftware / Amplify-Songs-UnAuth-S3-Access
Last active June 25, 2021 07:28
Amplify Guest User Iam Templates
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::{YOUR_S3_BUCKET}/public/*"
],
@SamWSoftware
SamWSoftware / handler.py
Created May 20, 2021 10:35
Python version of the Lambda Code
import json
def lambda_handler(event, context):
if event['httpMethod'] == "GET":
return getItem(event)
if event['httpMethod'] == "POST":
return createCart(event)
def getItem(event):
functions: {
UserLogin: {
handler: `src/handler.main`,
environment: {
USERS_TABLE: { Ref: 'UsersTable' },
},
iamRoleStatements: [
{
Effect: 'Allow',