Socket
Socket
Sign inDemoInstall

@f0x52/chain

Package Overview
Dependencies
0
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @f0x52/chain

A userland implementation of [pipelines](https://github.com/valtech-nyc/proposal-fsharp-pipelines/blob/master/README.md). Handles synchronous operations only.


Version published
Weekly downloads
2
Maintainers
1
Install size
38.3 kB
Created
Weekly downloads
 

Readme

Source

@f0x52/chain

A userland implementation of pipelines. Handles synchronous operations only.

Useful to make otherwise(deeply, nested(functionCalls(42)) a lot more readable. Also lets you combine object methods and stand-alone functions in a single chain of calls, instead of having to switch between wrapped calls and method calls, which gets messy very quickly with complex sequences of operations that you might want to split over multiple lines.

Adapted from syncpipe with slightly different API (spread instead of array of functions) and TypeScript types.

Example

A runnable version of this example can be found in example.js in the repository.

import chain from "@f0x52/chain";

const input = {
	a: "b",
	c: "d"
};

// reverse key/value pairs from object
const output = chain(
	input,
	// (_) => Object.entries(_),
	Object.entries,
	(_) => _.map(([k, v]) => [v, k]),
	// (_) => Object.fromEntries(_)
	Object.fromEntries
);

The _ is just a variable name here, you could call it anything you want - but giving it a consistent name will help with readability, as all of the arrow function bodies will be visually aligned.

API

syncpipe(input, ...functions)

Given an input and a series of functions that transform that value into a new value, passing it as input to the next function, returning the return value of the final function.

  • input: The initial value.
  • ...functions: Transformation functions, or a single transformation function (though that is somewhat pointless).

License, donations

GPL-3.0. If you want to support my work, you can: Donate using Liberapay

Changelog

v0.0.1 (February 12th, 2024)

FAQs

Last updated on 12 Feb 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc