This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env node | |
/* eslint-disable import/no-commonjs */ | |
;(async () => { | |
const util = require('util') | |
const child_process = require('child_process') | |
const { tap } = require('ramda') | |
const execP = util.promisify(child_process.exec) | |
const exec = command => execP(command).then(({ stdout, stderr }) => {}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
console.clear() | |
const upperAsync = (x) => Promise.resolve(toUpper(x)) | |
const splitChars = split('') | |
const handleResponse = curry((tag, promise) => | |
pipe( | |
then((data) => { | |
console.log(`${tag}-SUCCESS: ${data}`) | |
return data |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const { log, clear } = console; | |
clear(); | |
log('================================================='); | |
const add2 = (x, y) => x + y; | |
const add2P = (x, y) => Promise.resolve(x + y); | |
const logFn = | |
const logAdd2 = logFn(add2); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const { log, clear } = console | |
clear() | |
class Foo { | |
constructor() { | |
this.state = {} | |
this.util = { | |
nested: { | |
mergeRight, | |
identity, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const maybeHof = compose(when, complement)(isNil) | |
const maybeToUpper = maybeHof(toUpper) | |
maybeToUpper(null) // null | |
maybeToUpper(undefined) // undefined | |
maybeToUpper('foo') // 'FOO' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const evolveAll = spec => compose( | |
evolve(spec), | |
compose(pickAll, keys)(spec), | |
) | |
const maybeHof = compose(when, complement)(isNil) | |
const maybeToUpper = maybeHof(toUpper) | |
evolveAll({ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
console.clear() | |
// util.js | |
///////////////////////////////////////////////////////////////// | |
const PromiseResolve = x => Promise.resolve(x) | |
// pipeAny.js | |
///////////////////////////////////////////////////////////////// | |
const pipeAny = compose( | |
apply(pipeP), |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// `tryCatch` is useful when you want to do assignment and have a sane default | |
// The value provided is not parseable, so we get `{}` because there was an error | |
tryCatch(JSON.parse, always({}))('{{50') | |
// {} | |
// Here, the value is parseable, so we get the parsed object literal | |
tryCatch(JSON.parse, always({}))('{ "foo": "HI" }') | |
// {"foo": "HI"} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const R = require('ramda') | |
const { Logger } = require('../logger') | |
// higher order "plugin" factories; these functions accept | |
// a factory, add functionality to it, and then return it | |
const locksHof = require('./locksHof') | |
const loggerHof = require('./methodLoggerHof') | |
const speakHof = require('./speakHof') | |
// create a "base" higher-order factory that has adds the methods |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Enable tab completion of flags | |
source $(dirname $(gem which colorls))/tab_complete.sh | |
# Move standard ls | |
alias ols="ls" | |
# Base formats | |
alias ls="colorls -A" # short, multi-line | |
alias ll="colorls -1A" # list, 1 per line | |
alias ld="ll" # ^^^, NOTE: Trying to move to this for alternate hand commands | |
alias la="colorls -lA" # list w/ info |