init component
This commit is contained in:
97
node_modules/fp-ts/es6/Separated.js
generated
vendored
Normal file
97
node_modules/fp-ts/es6/Separated.js
generated
vendored
Normal file
@@ -0,0 +1,97 @@
|
||||
/**
|
||||
* ```ts
|
||||
* interface Separated<E, A> {
|
||||
* readonly left: E
|
||||
* readonly right: A
|
||||
* }
|
||||
* ```
|
||||
*
|
||||
* Represents a result of separating a whole into two parts.
|
||||
*
|
||||
* @since 2.10.0
|
||||
*/
|
||||
import { pipe } from './function';
|
||||
import { flap as flap_ } from './Functor';
|
||||
// -------------------------------------------------------------------------------------
|
||||
// constructors
|
||||
// -------------------------------------------------------------------------------------
|
||||
/**
|
||||
* @category constructors
|
||||
* @since 2.10.0
|
||||
*/
|
||||
export var separated = function (left, right) { return ({ left: left, right: right }); };
|
||||
var _map = function (fa, f) { return pipe(fa, map(f)); };
|
||||
var _mapLeft = function (fa, f) { return pipe(fa, mapLeft(f)); };
|
||||
var _bimap = function (fa, g, f) { return pipe(fa, bimap(g, f)); };
|
||||
/**
|
||||
* `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types
|
||||
* use the type constructor `F` to represent some computational context.
|
||||
*
|
||||
* @category mapping
|
||||
* @since 2.10.0
|
||||
*/
|
||||
export var map = function (f) {
|
||||
return function (fa) {
|
||||
return separated(left(fa), f(right(fa)));
|
||||
};
|
||||
};
|
||||
/**
|
||||
* Map a function over the first type argument of a bifunctor.
|
||||
*
|
||||
* @category error handling
|
||||
* @since 2.10.0
|
||||
*/
|
||||
export var mapLeft = function (f) {
|
||||
return function (fa) {
|
||||
return separated(f(left(fa)), right(fa));
|
||||
};
|
||||
};
|
||||
/**
|
||||
* Map a pair of functions over the two type arguments of the bifunctor.
|
||||
*
|
||||
* @category mapping
|
||||
* @since 2.10.0
|
||||
*/
|
||||
export var bimap = function (f, g) {
|
||||
return function (fa) {
|
||||
return separated(f(left(fa)), g(right(fa)));
|
||||
};
|
||||
};
|
||||
/**
|
||||
* @category type lambdas
|
||||
* @since 2.10.0
|
||||
*/
|
||||
export var URI = 'Separated';
|
||||
/**
|
||||
* @category instances
|
||||
* @since 2.10.0
|
||||
*/
|
||||
export var Bifunctor = {
|
||||
URI: URI,
|
||||
mapLeft: _mapLeft,
|
||||
bimap: _bimap
|
||||
};
|
||||
/**
|
||||
* @category instances
|
||||
* @since 2.10.0
|
||||
*/
|
||||
export var Functor = {
|
||||
URI: URI,
|
||||
map: _map
|
||||
};
|
||||
/**
|
||||
* @category mapping
|
||||
* @since 2.10.0
|
||||
*/
|
||||
export var flap = /*#__PURE__*/ flap_(Functor);
|
||||
// -------------------------------------------------------------------------------------
|
||||
// utils
|
||||
// -------------------------------------------------------------------------------------
|
||||
/**
|
||||
* @since 2.10.0
|
||||
*/
|
||||
export var left = function (s) { return s.left; };
|
||||
/**
|
||||
* @since 2.10.0
|
||||
*/
|
||||
export var right = function (s) { return s.right; };
|
||||
Reference in New Issue
Block a user