Skip to content

Commit

Permalink
More funk (#6)
Browse files Browse the repository at this point in the history
* filter, head, init, join, keys, last, not, omit, reduceObj, slice, sort, tail, values

* sortBy, useWith

* pick

* Remove that hasOwnProperty nonsense

* objOf

* defaultTo

* Backfill tests and fix sortBy

* composeP, pipeP, then

* New build

* Update readme
  • Loading branch information
flintinatux committed Oct 23, 2017
1 parent 609b771 commit 5869a2d
Show file tree
Hide file tree
Showing 26 changed files with 615 additions and 36 deletions.
47 changes: 34 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<p align="center">
<a href="https://www.npmjs.com/package/tinyfunk"><img src="https://img.shields.io/npm/v/tinyfunk.svg" alt="npm version" style="max-width:100%;"></a>
<a href="https://www.npmjs.com/package/tinyfunk"><img src="https://img.shields.io/npm/dm/tinyfunk.svg" alt="npm downloads" style="max-width:100%;"></a>
<a href="#"><img src="https://img.shields.io/badge/size-822%20B-blue.svg" alt="gzip-size" style="max-width:100%;"></a>
<a href="#"><img src="https://img.shields.io/badge/gzip--size-1.19%20kB-blue.svg" alt="gzip-size" style="max-width:100%;"></a>
<br />
<a href="https://travis-ci.org/flintinatux/tinyfunk"><img src="https://travis-ci.org/flintinatux/tinyfunk.svg?branch=master" alt="Build Status" style="max-width:100%;"></a>
<a href="https://coveralls.io/github/flintinatux/tinyfunk?branch=master"><img src="https://coveralls.io/repos/github/flintinatux/tinyfunk/badge.svg?branch=master" alt="Coverage Status" style="max-width:100%;"></a>
Expand Down Expand Up @@ -65,40 +65,61 @@ If you've lived with FP long enough, you are likely familiar with most of the fu
| -------- | --------- |
| `add` | `Number -> Number -> Number` |
| `append` | `a -> [a] -> [a]` |
| `apply` | `(* -> a) -> [*] -> a` |
| `assoc` | `String -> v -> { k: v } -> { k: v }` |
| `assocPath` | `[String] -> v -> { k: v } -> { k: v }` |
| `call` | `(* -> a) -> * -> a` |
| `apply` | `(a... -> b) -> [a] -> b` |
| `assoc` | `k -> v -> { k: v } -> { k: v }` |
| `assocPath` | `[k] -> v -> { k: v } -> { k: v }` |
| `call` | `(a... -> b) -> a... -> b` |
| `compose` | `((y -> z), ..., (a -> b)) -> a -> z` |
| `composeP` | `((y -> Promise z), ..., (a -> Promise b)) -> a -> Promise z` |
| `concat` | `Semigroup a => a -> a -> a` |
| `constant` | `a -> () -> a` |
| `converge` | `(b... -> c) -> [(a -> b)] -> a -> c` |
| `curry` | `(* -> a) -> (* -> a)` |
| `curryN` | `Number -> (* -> a) -> (* -> a)` |
| `dissoc` | `String -> { k: v } -> { k: v }` |
| `dissocPath` | `[String] -> { k: v } -> { k: v }` |
| `curry` | `((a, b, ...) -> z) -> a -> b -> ... -> z` |
| `curryN` | `Number -> ((a, b, ...) -> z) -> a -> b -> ... -> z` |
| `defaultTo` | `a -> a -> a` |
| `dissoc` | `k -> { k: v } -> { k: v }` |
| `dissocPath` | `[k] -> { k: v } -> { k: v }` |
| `evolve` | `{ k: (v -> v) } -> { k: v } -> { k: v }` |
| `filter` | `(a -> Boolean) -> [a] -> [a]` |
| `flip` | `(a -> b -> c) -> (b -> a -> c)` |
| `head` | `[a] -> a` |
| `identity` | `a -> a` |
| `init` | `[a] -> [a]` |
| `join` | `String -> [a] -> String` |
| `juxt` | `[(a -> b)] -> a -> [b]` |
| `keys` | `{ k: v } -> [k]` |
| `last` | `[a] -> a` |
| `length` | `[a] -> Number` |
| `map` | `Functor f => (a -> b) -> f a -> f b` |
| `mapObj` | `(v -> k -> v) -> { k: v } -> { k: v }` |
| `match` | `RegExp -> String -> [String]` |
| `merge` | `{ k: v } -> { k: v } -> { k: v }` |
| `multiply` | `Number -> Number -> Number` |
| `partial` | `(* -> a) -> [*] -> * -> a` |
| `path` | `[String] -> { k: v } -> v` |
| `not` | `a -> a` |
| `objOf` | `k -> v -> { k: v }` |
| `omit` | `[k] -> { k: v } -> { k: v }` |
| `partial` | `(a... -> b) -> [a] -> a... -> b` |
| `path` | `[k] -> { k: v } -> v` |
| `pick` | `[k] -> { k: v } -> { k: v }` |
| `pipe` | `((a -> b), ..., (y -> z)) -> a -> z` |
| `pipeP` | `((a -> Promise b), ..., (y -> Promise z)) -> a -> Promise z` |
| `prepend` | `a -> [a] -> [a]` |
| `prop` | `String -> { k: v } -> v` |
| `prop` | `k -> { k: v } -> v` |
| `props` | `[k] -> { k: v } -> [v]` |
| `reduce` | `Foldable f => (b -> a -> b) -> b -> f a -> b` |
| `reduceObj` | `(a -> v -> k -> a) -> a -> { k: v } -> a` |
| `reduceRight` | `Foldable f => (b -> a -> b) -> b -> f a -> b` |
| `replace` | `RegExp -> String -> String -> String` |
| `slice` | `Number -> Number -> [a] -> [a]` |
| `sort` | `((a, a) -> Number) -> [a] -> [a]` |
| `sortBy` | `Ord b => (a -> b) -> [a] -> [a]` |
| `tail` | `[a] -> [a]` |
| `tap` | `(a -> b) -> a -> a` |
| `then` | `(a -> Promise b) -> a -> Promise b` |
| `thrush` | `a -> (a -> b) -> b` |
| `unapply` | `([a] -> b) -> * -> b` |
| `unapply` | `([a] -> b) -> a... -> b` |
| `unless` | `(a -> Boolean) -> (a -> a) -> a -> a` |
| `useWith` | `(b... -> c) -> [(a -> b)] -> a... -> c` |
| `values` | `{ k: v } -> [v]` |
| `when` | `(a -> Boolean) -> (a -> a) -> a -> a` |
| `zipObj` | `[k] -> [v] -> { k: v }` |
3 changes: 3 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
"clean": "rm -f tinyfunk.js",
"coverage": "nyc report --reporter=text-lcov | coveralls",
"lint": "eslint src.js test",
"postbuild": "gzip-size tinyfunk.js",
"prewatch": "yarn run build",
"test": "mocha --reporter=dot",
"test:ci": "yarn run lint && yarn run test:coverage && yarn run coverage",
Expand All @@ -39,8 +40,10 @@
"coveralls": "^2.13.1",
"eslint": "^4.7.2",
"eye": "^0.0.3",
"gzip-size-cli": "^2.1.0",
"mocha": "^3.5.3",
"nyc": "^11.2.1",
"prop-factory": "^1.0.0",
"uglify-es": "^3.1.1"
}
}
Loading

0 comments on commit 5869a2d

Please sign in to comment.