nullobject/fkit
{ "createdAt": "2014-08-19T06:52:00Z", "defaultBranch": "master", "description": "A functional programming toolkit for JavaScript.", "fullName": "nullobject/fkit", "homepage": "https://fkit.joshbassett.info", "language": "JavaScript", "name": "fkit", "pushedAt": "2021-08-31T01:39:39Z", "stargazersCount": 585, "topics": [ "fp", "functional", "functional-programming", "javascript", "library" ], "updatedAt": "2025-08-27T12:06:17Z", "url": "https://github.com/nullobject/fkit"}FKit (pronounced eff-kit) is a functional programming toolkit for JavaScript. It provides many functions for solving common problems with functions, objects, arrays, and strings. It aims to provide reusable building blocks while maintaining a laser focus on everyday utility.
Features:
-
Why reinvent the wheel? FKit provides many functions for solving everyday problems to do with functions, arrays, objects, and strings.
-
FKit treats both strings and arrays as lists, which means you can apply the same list functions to both strings and arrays (e.g.
head,tail,map,filter,fold, etc). -
Most FKit functions are already curried by default, so you can partially apply them wherever you need to.
-
The ordering of arguments to FKit functions is carefully designed to be more natural, this makes them highly composable.
-
It’s very compact, roughly 3 KB when minified and gzipped!
Table of Contents
Section titled “Table of Contents”Getting Started
Section titled “Getting Started”Install the npm package:
> npm install fkitImport just the functions you need:
import { add } from 'fkit'console.log(add(1, 2))Or import the whole library:
import * as F from 'fkit'console.log(F.add(1, 2))Browser
Section titled “Browser”The easiest way to start using FKit in your browser is to include it with a
<script> tag in your HTML file:
<script src="https://unpkg.com/fkit/dist/fkit.min.js"></script>Documentation
Section titled “Documentation”-
Presentation by Josh Bassett: Everyday Functional Programming in JavaScript
-
Article by Josh Bassett: Take Your Code to the Next Level with FKit
Examples
Section titled “Examples”Sum the numbers in a list:
import { sum } from 'fkit'sum([1, 2, 3]) // 6Stash a string:
import { map, surround } from 'fkit'map(surround('{', '}'), 'hello') // '{h}{e}{l}{l}{o}'Intersperse the numbers in a list with another number:
import { intersperse } from 'fkit'intersperse(4, [1, 2, 3]) // [1, 4, 2, 4, 3]Filter the numbers in a list where 1 <= n <= 5:
import { between } from 'fkit'[1, 2, 3, 4, 5].filter(between(2, 4)) // [2, 3, 4]Calculate the Cartesian product of two lists:
import { cartesian } from 'fkit'cartesian([1, 2], [3, 4]) // [[1, 3], [1, 4], [2, 3], [2, 4]]Calculate the permutations of a list:
import { permutations } from 'fkit'permutations('abc') // ['abc', 'bac', 'cba', 'bca', 'cab', 'acb']Check out some more examples:
Licence
Section titled “Licence”FKit is licensed under the MIT licence. See the LICENCE file for more details.
