Skip to content

Instantly share code, notes, and snippets.

View anubhavsrivastava's full-sized avatar

Anubhav Srivastava anubhavsrivastava

View GitHub Profile
@anubhavsrivastava
anubhavsrivastava / add(2)(3)
Last active February 3, 2019 11:47
Currying Add(2)(3) in JS
function add(x){
return function (y){
return x+y;
}
}
//ES6 version using arrow functions
const add = x=> y=>x+y;
function add(x){
let sum = x;
function resultFn(y){
sum +=y;
return resultFn;
}
resultFn.valueOf = function(){ return sum };
return resultFn;
}
function add(x){
let sum = x;
return function resultFn(y){
if(arguments.length){ //not relying on falsy value
sum += y;
return resultFn;
}
return sum;
}
}
function add(){
let args = [].slice.apply(arguments);
function resultFn(){
args = args.concat([].slice.apply(arguments));
if(args.length>=3){
return args.slice(0,3).reduce(function(acc,next){ return acc+next},0)
}
return resultFn
@anubhavsrivastava
anubhavsrivastava / update_changelogs
Created December 27, 2019 14:27
Script to generate changelogs from Git Repo
#!/usr/bin/env bash
set -e
usage() {
echo "$0 <tag> <repo>" >&2;
}
if [ "$1" = "-h" -o "$1" = "--help" ]; then
usage
@anubhavsrivastava
anubhavsrivastava / generate_releasenotes
Created December 27, 2019 14:28
bash script to generate release notes from github repo
#!/usr/bin/env bash
set -e
usage() {
echo "$0 <repo> <tag> [<release name>]" >&2;
}
if [ "$1" = "-h" -o "$1" = "--help" ]; then
usage
@anubhavsrivastava
anubhavsrivastava / getterDescriptor.js
Last active February 6, 2020 04:12
Can (a===1 && a===2 && a===3) ever evaluate to true?
var value = 0; //window.value
Object.defineProperty(window, 'a', {
get: function() {
return this.value += 1;
}
});
console.log(a===1 && a===2 && a===3) //true
@anubhavsrivastava
anubhavsrivastava / looseEquality.js
Created November 7, 2018 18:54
Can (a==1 && a==2 && a==3) ever evaluate to true?
const a = { value : 0 };
a.valueOf = function() {
return this.value += 1;
};
console.log(a==1 && a==2 && a==3); //true
@anubhavsrivastava
anubhavsrivastava / Chrome
Created March 12, 2020 13:15
Disable web security to make CORS request
open -a Google\ Chrome\ Canary --args --disable-web-security
on its own does not work anymore. You need to use it with --user-data-dir:
open -a Google\ Chrome\ Canary --args --disable-web-security --user-data-dir=$HOME/profile-folder-name
http://stackoverflow.com/a/34680023/368691
function add(x){
let sum = x;
return function resultFn(y){
sum +=y;
resultFn.result = sum;
return resultFn;
}
}