Reorder package.json
npx sort-package-json
- Fill N
- Flatten
- Remove duplicates
- Convert an NodeList to Array
- Has Property
- Colors
- Emit beep
- Percent Preloader
- Ensure directory exists
- Delayed
- Capitalize
- Slugify
- Compose
- Quick Local IP
Reorder package.json
npx sort-package-json
// Arguments to Array | |
const args = [...arguments]; | |
// NodeList to Array (short) | |
const nodelistToArray = [...document.querySelectorAll('div')]; | |
// NodeList to Array | |
const nodelistToArray = elts => | |
[].slice.(elts).map(item => {}); | |
// Remove dulicate entries | |
const unique = entries => | |
entries.filter((elem, pos, arr) => arr.indexOf(elem) === pos); | |
// Remove dulicate entries | |
const unique = entries => [...new Set(entries)]; | |
// Returns key values in an array of object | |
const pluck = (arr, key) => arr.map(obj => obj[key]); | |
// Flatten array | |
const flatten = arr => | |
Array.prototype.concat.apply([], arr); | |
// Returns max values in an array | |
const max = arr => Math.max(...arr); | |
// Fill an array with `n` values | |
const filln = (n) => | |
Array.from(Array(n).keys()); |
// Emit a beep | |
function beepNow = () => | |
process.stdout.write('\x07'); | |
// Colors in console | |
// source: http://misc.flogisoft.com/bash/tip_colors_and_formatting | |
const colorize = (message, color) => { | |
const getcolor = (msg, code) => `\x1b[${code}m${msg}\x1b[39m`; | |
switch (color) { | |
case 'white': | |
return getcolor(message, 37); | |
case 'cyan': | |
return getcolor(message, 36); | |
case 'magenta': | |
return getcolor(message, 35); | |
case 'blue': | |
return getcolor(message, 34); | |
case 'yellow': | |
return getcolor(message, 33); | |
case 'green': | |
return getcolor(message, 32); | |
case 'red': | |
return getcolor(message, 31); | |
case 'black': | |
return getcolor(message, 30); | |
case 'grey': | |
case 'gray': | |
default: | |
return getcolor(message, 90); | |
} | |
}; | |
// Percent Preloader | |
const preloader = (count, total) => { | |
const percent = (total <= 0) ? 0 | |
: Math.round(((count * 100) / total) * 10) / 10; | |
process.stdout.write(`\r> loading... ${percent}%`); | |
} |
// Ensure directory exists | |
const ensureDirSync = (directory) => | |
fs.existsSync(directory) || fs.mkdirSync(directory); |
function floatRange(min, max, float) { | |
const floating = Math.pow(10, float); | |
let factors = []; | |
let floatmin = min * floating; | |
const floatmax = max * floating; | |
while (floatmin < floatmax) { | |
floatmin = floatmin + 1; | |
factors.push(floatmin); | |
} | |
return factors.map(ratio => ratio / floating); | |
} |
// FILO | |
const compose = (...fns) => fns.reverse() | |
.reduce((prev, next) => value => next(prev(value)), value => value); | |
// FIFO | |
const pipe = (...fns) => | |
compose.apply(compose, fns.reverse()); |
const log2 = n => Math.log(n) / Math.log(2); |
// get local ip | |
const os = require('os'); | |
const dns = require('dns'); | |
const hostname = os.hostname(); | |
dns.lookup(hostname, (err, add) => { | |
console.log('Local IP', add); | |
}); |
# Has Property | |
const has = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key); |
// delay a promise | |
return new Promise(resolve => setTimeout(resolve, 5000)); |
// Capitalize | |
const capitalize = (str) => | |
`${str.charAt(0).toUpperCase()}${str.slice(1)}`; | |
// Slugify | |
// Source: https://gist.github.com/mathewbyrne/1280286 | |
const slugify = (text) => { | |
const a = 'àáäâèéëêìíïîòóöôùúüûñçßÿœæŕśńṕẃǵǹḿǘẍźḧ·/_,:;'; | |
const b = 'aaaaeeeeiiiioooouuuuncsyoarsnpwgnmuxzh------'; | |
const p = new RegExp(a.split('').join('|'), 'g'); | |
return text.toString().toLowerCase() | |
.replace(/\s+/g, '-') | |
.replace(p, c => b.charAt(a.indexOf(c))) | |
.replace(/&/g, '-and-') | |
.replace(/[^\w-]+/g, '') | |
.replace(/--+/g, '-') | |
.replace(/^-+/, '') | |
.replace(/-+$/, ''); | |
}; |
Why not
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/fill#Examples
?