Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
Sven Slootweg a8cad015a7 Remove accidental package.json copy il y a 4 ans
.eslintrc Initial commit il y a 4 ans
.gitignore Initial commit il y a 4 ans
README.md Initial commit il y a 4 ans
example.js Initial commit il y a 4 ans
index.js Initial commit il y a 4 ans
package.json Initial commit il y a 4 ans
yarn.lock Initial commit il y a 4 ans

README.md

syncpipe

A userland implementation of pipelines. Handles synchronous operations only. Also sometimes known as 'waterfall'.

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.

License, donations, and other boilerplate

Licensed under either the WTFPL or CC0, at your choice. In practice, that means it's more or less public domain, and you can do whatever you want with it. Giving credit is not required, but still very much appreciated! I'd love to hear from you if this module was useful to you.

Creating and maintaining open-source modules is a lot of work. A donation is also not required, but much appreciated! You can donate here.

Example

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

const dateFns = require("date-fns");
const syncpipe = require("syncpipe");

function msUntilNextMinute() {
	return syncpipe(getTime(), [
		(_) => dateFns.addMinutes(_, 1),
		(_) => dateFns.setSeconds(_, 0),
		(_) => dateFns.setMilliseconds(_, 0),
		(_) => dateFns.differenceInMilliseconds(_, getTime())
	]);
}

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(value, functions)

Given a value and a series of functions that transform that value into a new value, runs those functions in sequence and returns the return value of the final function.

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