npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@alexeisavca/ftools

v0.0.1

Published

A collection of functional functions

Downloads

5

Readme

#Ftools This is a collection of functions I use a lot. I got tired of copypasting them and/or reinventing the wheel over and over so I gathered them all here.

##Usage npm install @alexeisavca/ftools

This package is modular, there is no entry point, you import only the functions you need, this way it prevents dead code in your project.

import add from "@alexeisavca/ftools/math/add";
[1,2,3].reduce(add);//6

##Docs

dstructs

Contains functions related to transformations and parsing of data structures

obj2tuples::object => [(any, any)]

Converts an object to an array of [key, value] arrays aka tuples

obj2tuples({a: 1, b:2, c: 3})//[['a', 1], ['b', 2], ['c', 3']]

tuples2obj::[(any, any)] => object

Reverse of the above. Converts and array of (key, value) tuples to an object

tuples2obj([['a', 1], ['b', 2], ['c', 3]])//{a: 1, b:2, c: 3}

withTuples::(object, [(any, any)] => [(any, any)]) => object

Combination of the above. Converts an object to tuples and passes it to the callback, then converts the returned tuple array to an object

withTuples({a: 1, b: 2}, tuples => tuples.map(([key, value]) => [key + "prime", value + 1]))//{aprime: 2, bprime: 3}

mapObjTuples::(object, (any, any) => (any, any)) => object

Shorthand for the above

mapObjTuples({a: 1, b: 2}, ([key, value]) => [key + "prime", value + 1])//{aprime: 2, bprime: 3}

mapObjValues::(object, any => any) => object

Maps only the values of an object

mapObjValues({a: 1, b: 2}, inc)//{a: 2, b: 3}

func

Contains higher order functions

pipe::(...args) => (...functions) => any

Function composition and application

pipe(1, 2, 3)(a, b, c)

is the same as

c(b(a(1, 2, 3)))

compose::(...functions) => (...args) => any

Function composition and application

pipe(a, b, c)(1, 2, 3)

is the same as

a(b(c(1, 2, 3);

math

Contains math related functions

add::(any, any) => any

Adds its arguments using '+', doesn't typecheck, can add numbers as well as concat strings

inc::any => any

Incrementation

dec::any => any

Decrementation

strings

String related functions

capitalize::string => string

Capitalizes the first character of a string