Skip to content

Instantly share code, notes, and snippets.

function insertionSort(arr) {
  for(let i = 1; i < arr.length; i++) {
    let key = arr[i];
    let j = i - 1;
    while (j >= 0 && arr[j] > key) {
      arr[j + 1] = arr[j];
      j = j - 1;
    }
 arr[j + 1] = key;
const fetch = require('node-fetch');
const cheerio = require('cheerio');
async function get() {
const data = await fetch('https://httpstatuses.com/200').then(res => res.text())
console.log('\n =========================>: get -> data', data);
const $ = cheerio.load(data);
const fullTitle = $('title').text();
console.log('\n =========================>: get -> title', fullTitle);
const title = fullTitle.split('—')[0];
@nkhil
nkhil / group-objects-by-property-name.md
Last active November 8, 2019 18:41
Group Array of JavaScript Objects by Key or Property Value

How to group an array of JavaScript objects by key or property value

I first came across this code on JamieMason's gist. Here I've tried to re-create it from scratch as I found their solution slightly hard to follow.

Implementation

function groupBy(key) {
  return function group(array) {
    return array.reduce((acc, obj) => {
// file: controller.js
const databaseUpdater = require('../model/databaseUpdater');
// ^ This is out model function that goes and updates the database.
function updateTotal(total) {
databaseUpdater({ body: total });
}
function calculateTotal(data) {
const total = data.reduce((accumulator, number) => accumulator + number, 0);
updateTotal(total);
// file: controller.spec.js
const proxyquire = require('proxyquire');
const sinon = require('sinon');
const chai = require('chai');
const { expect } = chai;
describe('calculateTotal', function(done) {
it('calculates the total and updates the database', function() {

Work in progress to scrap https://httpstatuses.com/ for snippets about status codes.

const fetch = require('node-fetch');
const cheerio = require('cheerio');

const STATUS_CODES = [200, 201, 400, 500];

const URL = 'https://httpstatuses.com';

Fixture Maker

Working draft of fixture creator. This is a functional implementation.

const uuid = require('uuid');

const ID = uuid();
@nkhil
nkhil / github.js
Created November 25, 2018 00:29
How to close a repo, work on it and upload it to Github as a different repo
// GitHub: git clone someone else's repository & git push to your own repository
// Create a new repository at github.com. (this is your repository)
// Give it the same name as the other repository.
// Don't initialize it with a README, .gitignore, or license.
// Clone the other repository to your local machine. (if you haven't done so already)
// git clone https://github.com/other-account/other-repository.git
// Rename the local repository's current 'origin' to 'upstream'.
@nkhil
nkhil / raspberry-pi-zero-w.md
Last active February 4, 2020 22:32
Raspberry pi zero w used with an inkyphat e-ink display

Using the raspberry pi zero w with an inkyphat e-ink display

raspberry-pi-inky-phat

Hey,

My name's Nikhil. I'm a JavaScript developer who doesn't know any python - I hacked this script together till I got something I liked due to just wanting something that worked, and haven't touched this code since due to having a thing that worked. If you end up improving it, I'd really appreciate a shout.

I've written a post about it here https://nikhilvijayan.com/raspberry-pi-zero-weather-display.

Example of functional piping

  const pipeAsync = (...fns) => async (value) => {
    console.log('fns', fns)
    return await fns.reduce((sum, fn) => {
      if (typeof fn !== 'function') {
        throw new TypeError('fn is not a function');
      }
 return Promise.resolve(sum).then(fn);