Skip to content

Instantly share code, notes, and snippets.

@tjjfvi
tjjfvi / killByPort.sh
Created October 10, 2018 22:09
*nix Bash Kill By Port
#!/usr/bin/env bash
kill `netstat -tulpn | grep :$1 | sed -e "s/.*LISTEN *//" -e 's/\/.*//'`
@tjjfvi
tjjfvi / ObjectMap.js
Last active January 9, 2019 22:50
Object.mapEntries, Object.mapValues, Object.mapKeys
Object.mapEntries = (obj, fn) =>
Object.assign({}, ...Object.entries(obj).map(e => fn(e, obj)).map(([k, v]) => ({ [k]: v })));
Object.mapValues = (obj, fn) =>
Object.mapEntries(obj, ([k, v]) => [k, fn(v, obj)]);
Object.mapKeys = (obj, fn) =>
Object.mapEntries(obj, ([k, v]) => [fn(k, obj), v]);
@tjjfvi
tjjfvi / Promise.delay.js
Created October 11, 2018 22:52
Promise.delay(ms): Creates a promise that resolves in ms millisecons
Promise.delay = ms => new Promise(resolve => setTimeout(resolve, ms));
@tjjfvi
tjjfvi / Promise.sequential.js
Last active October 11, 2018 22:58
Promise.sequential(asyncFuncs): Sequentially executes the function and returns Array of results
Promise.sequential = funcs => funcs.reduce((p, fn) => p.then(rs => fn().then(r => [...rs, r])), Promise.resolve([]))
@tjjfvi
tjjfvi / Array.shuffle.js
Created October 12, 2018 23:33
Array.prototype.shuffle: Shuffles array using custom Array.createRandomSortFunction()
Array.createRandomSortFunction = () => {
let map = new Map([]);
let lookup = v => {
if(map.get(v)) return map.get(v);
let o = Math.random();
map.set(v, o);
return o;
}
@tjjfvi
tjjfvi / Promise.allObjectValues.js
Last active January 9, 2019 23:23
Promise.allObjectValues(obj): Creates a Promise that awaits & returns al values of obj
Promise.allObjectValues = async obj =>
Object.assign({}, ...(await Promise.all(Object.entries(obj).map(async ([k, v]) => ({ [k]: await v })))))
@tjjfvi
tjjfvi / Array.prototype.asyncMap.js
Created October 23, 2018 17:07
Array.prototype,asyncMap(fn)
Array.prototype.asyncMap = function(fn){
return Promise.all(this.map(fn))
}
@tjjfvi
tjjfvi / generateSetters.js
Last active November 2, 2018 19:52
Function to create a Proxy to gnerate setters on an object
generateSetters = (obj) =>
new Proxy({}, {
get: (_, name) => {
name =
name.startsWith("_") ?
name.slice(1) :
name.startsWith("set") ?
name[3].toLowerCase() + name.slice(4) :
name
; acceleration_enabled = {acceleration_enabled}
; acceleration_infill = {acceleration_infill}
; acceleration_ironing = {acceleration_ironing}
; acceleration_layer_0 = {acceleration_layer_0}
; acceleration_prime_tower = {acceleration_prime_tower}
; acceleration_print = {acceleration_print}
; acceleration_print_layer_0 = {acceleration_print_layer_0}
; acceleration_roofing = {acceleration_roofing}
; acceleration_skirt_brim = {acceleration_skirt_brim}
; acceleration_support = {acceleration_support}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<!-- Generated by: TmTheme-Editor -->
<!-- ============================================ -->
<!-- app: http://tmtheme-editor.herokuapp.com -->
<!-- code: https://github.com/aziz/tmTheme-Editor -->
<plist version="1.0">
<dict>
<key>name</key>
<string>T6</string>