Skip to content

Instantly share code, notes, and snippets.

View juan-rod's full-sized avatar

Juan Rodriguez juan-rod

View GitHub Profile
@mikaello
mikaello / group-objects-by-property.md
Last active October 26, 2025 18:51 — forked from JamieMason/group-objects-by-property.md
Group Array of JavaScript Objects by Key or Property Value

Group array of JavaScript objects by keys

This fork of JamieMason's implementation changes the key parameter to be an array of keys instead of just a single key. This makes it possible to group by multiple properties instead of just one.

Implementation

const groupBy = keys => array =>
  array.reduce((objectsByKeyValue, obj) => {
    const value = keys.map(key => obj[key]).join('-');
/* Helper buddy for removing async/await try/catch litter 🗑 */
function O_o(promise) {
return promise.then(data => {
if (data instanceof Error) return [data]
return [null, data]
}).catch(err => [err])
}
/* Look ma, no try/catch */
async function usageExample(params) {
@vkarpov15
vkarpov15 / promise1.js
Created April 5, 2018 12:38
Write Your Own Node.js Promise Library from Scratch, Part 1
class MyPromise {
constructor(executor) {
if (typeof executor !== 'function') {
throw new Error('Executor must be a function');
}
// Internal state. `$state` is the state of the promise, and `$chained` is
// an array of the functions we need to call once this promise is settled.
this.$state = 'PENDING';
this.$chained = [];
{
"window.zoomLevel": -1,
"editor.fontFamily": "Operator Mono, Menlo, Monaco, 'Courier New', monospace",
"editor.fontSize": 29,
"editor.lineHeight": 40,
"editor.letterSpacing": 0.5,
"workbench.editor.tabSizing": "shrink",
"eslint.autoFixOnSave": true,
"eslint.alwaysShowStatus": true,
"html.format.enable": true,
@laurenfazah
laurenfazah / authentication_with_express_postgres.md
Last active July 13, 2024 16:51
Authentication with an Express API and Postgres

Authentication with an Express API and Postgres

Setting Up

Let's make sure our Express app has the required base modules:

# within root of API
npm install --save express pg knex bcrypt
npm install --save-dev nodemon
@matteocrippa
matteocrippa / mac-setup.sh
Last active January 13, 2026 09:34
A script to automate the setup of a development oriented Macbook machine
#!/usr/bin/env bash
# Brew
echo "Installing 🍺 Brew!"
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo "eval $(/opt/homebrew/bin/brew shellenv)" >> ~/.zshrc
# Disable brew analytics
brew analytics off
@RadValentin
RadValentin / yarn.unlock.md
Last active December 5, 2024 07:42
Solve `yarn.lock` or `package.json` conflicts without losing your mind

NOTE: This guide is ONLY for devs who don't want to edit their yarn.lock file by hand. If you don't care about that please carry on.


So you've pulled the latest master

git checkout master
git pull
@wesbos
wesbos / async-await.js
Created February 22, 2017 14:02
Simple Async/Await Example
// 🔥 Node 7.6 has async/await! Here is a quick run down on how async/await works
const axios = require('axios'); // promised based requests - like fetch()
function getCoffee() {
return new Promise(resolve => {
setTimeout(() => resolve('☕'), 2000); // it takes 2 seconds to make coffee
});
}
@kuon
kuon / stepped-gradient.scss
Created January 29, 2017 11:50
Stepped gradient
$g: transparent;
$steps: 10;
@for $i from 1 to $steps {
$g: append($g, fade-out($bg-color, 1 / $i) percentage($i / $steps), comma);
$g: append($g, fade-out($bg-color, 1 / $i) percentage(($i + 0.6) / $steps), comma);
}
$g: append($g, $bg-color);
background: linear-gradient(to bottom, $g);