monocle-ts
Advanced tools
Comparing version 2.3.9 to 2.3.10
@@ -16,2 +16,7 @@ # Changelog | ||
# 2.3.10 | ||
- **Internal** | ||
- optimize `fromTraversable`, closes #119 (@gcanti) | ||
# 2.3.9 | ||
@@ -18,0 +23,0 @@ |
/** | ||
* @since 1.0.0 | ||
*/ | ||
import { getMonoid } from 'fp-ts/es6/Array'; | ||
import * as A from 'fp-ts/es6/Array'; | ||
import { getApplicative, make } from 'fp-ts/es6/Const'; | ||
@@ -920,3 +920,5 @@ import { constant, identity } from 'fp-ts/es6/function'; | ||
var _this = this; | ||
return new Fold(function (M) { return function (f) { return _this.modifyF(getApplicative(M))(function (a) { return make(f(a)); }); }; }); | ||
return new Fold(function (M) { return function (f) { | ||
return _this.modifyF(getApplicative(M))(function (a) { return make(f(a)); }); | ||
}; }); | ||
}; | ||
@@ -1159,3 +1161,3 @@ /** | ||
this._tag = 'Fold'; | ||
this.getAll = foldMap(getMonoid())(function (a) { return [a]; }); | ||
this.getAll = foldMap(A.getMonoid())(A.of); | ||
this.exist = foldMap(monoidAny); | ||
@@ -1162,0 +1164,0 @@ this.all = foldMap(monoidAll); |
@@ -238,6 +238,19 @@ var __spreadArrays = (this && this.__spreadArrays) || function () { | ||
} | ||
/** @internal */ | ||
export var ApplicativeIdentity = { | ||
URI: 'Identity', | ||
map: function (fa, f) { return f(fa); }, | ||
of: identity, | ||
ap: | ||
/* istanbul ignore next */ | ||
function (fab, fa) { return fab(fa); } | ||
}; | ||
var isIdentity = function (F) { return F.URI === 'Identity'; }; | ||
export function fromTraversable(T) { | ||
return function () { | ||
return traversal(function (F) { | ||
var traverseF = T.traverse(F); | ||
// if `F` is `Identity` then `traverseF = map` | ||
var traverseF = isIdentity(F) | ||
? T.map | ||
: T.traverse(F); | ||
return function (f) { return function (s) { return traverseF(s, f); }; }; | ||
@@ -244,0 +257,0 @@ }); |
import * as C from 'fp-ts/es6/Const'; | ||
import { flow, identity } from 'fp-ts/es6/function'; | ||
import * as I from 'fp-ts/es6/Identity'; | ||
import { pipe } from 'fp-ts/es6/pipeable'; | ||
import * as A from 'fp-ts/es6/ReadonlyArray'; | ||
import * as RA from 'fp-ts/es6/ReadonlyArray'; | ||
import * as _ from './internal'; | ||
@@ -88,3 +87,3 @@ // ------------------------------------------------------------------------------------- | ||
export var modify = function (f) { return function (sa) { | ||
return sa.modifyF(I.identity)(f); | ||
return sa.modifyF(_.ApplicativeIdentity)(f); | ||
}; }; | ||
@@ -95,5 +94,3 @@ /** | ||
*/ | ||
export var set = function (a) { | ||
return modify(function () { return a; }); | ||
}; | ||
export var set = function (a) { return modify(function () { return a; }); }; | ||
/** | ||
@@ -239,3 +236,3 @@ * Return a `Traversal` from a `Traversal` focused on a nullable value. | ||
export var getAll = function (s) { return function (sa) { | ||
return foldMap(A.getMonoid())(function (a) { return [a]; })(sa)(s); | ||
return foldMap(RA.getMonoid())(RA.of)(sa)(s); | ||
}; }; | ||
@@ -242,0 +239,0 @@ // ------------------------------------------------------------------------------------- |
@@ -7,3 +7,3 @@ "use strict"; | ||
*/ | ||
var Array_1 = require("fp-ts/lib/Array"); | ||
var A = require("fp-ts/lib/Array"); | ||
var Const_1 = require("fp-ts/lib/Const"); | ||
@@ -902,3 +902,5 @@ var function_1 = require("fp-ts/lib/function"); | ||
var _this = this; | ||
return new Fold(function (M) { return function (f) { return _this.modifyF(Const_1.getApplicative(M))(function (a) { return Const_1.make(f(a)); }); }; }); | ||
return new Fold(function (M) { return function (f) { | ||
return _this.modifyF(Const_1.getApplicative(M))(function (a) { return Const_1.make(f(a)); }); | ||
}; }); | ||
}; | ||
@@ -1141,3 +1143,3 @@ /** | ||
this._tag = 'Fold'; | ||
this.getAll = foldMap(Array_1.getMonoid())(function (a) { return [a]; }); | ||
this.getAll = foldMap(A.getMonoid())(A.of); | ||
this.exist = foldMap(Monoid_1.monoidAny); | ||
@@ -1144,0 +1146,0 @@ this.all = foldMap(Monoid_1.monoidAll); |
@@ -10,3 +10,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.atReadonlyRecord = exports.at = exports.indexReadonlyRecord = exports.indexReadonlyNonEmptyArray = exports.indexReadonlyArray = exports.index = exports.traversalTraverse = exports.fromTraversable = exports.traversalComposeTraversal = exports.traversal = exports.optionalFindFirstNonEmpty = exports.optionalFindFirst = exports.optionalKey = exports.optionalIndexNonEmpty = exports.optionalIndex = exports.optionalComposeOptional = exports.optionalModify = exports.optionalModifyOption = exports.optionalAsTraversal = exports.optional = exports.prismLeft = exports.prismRight = exports.prismSome = exports.prismFromPredicate = exports.prismFromNullable = exports.prismComposeLens = exports.prismSet = exports.prismModify = exports.prismModifyOption = exports.prismAsTraversal = exports.prismAsOptional = exports.prism = exports.lensAtKey = exports.lensComponent = exports.lensProps = exports.lensProp = exports.lensId = exports.lensComposePrism = exports.prismComposePrism = exports.lensComposeLens = exports.lensAsTraversal = exports.lensAsOptional = exports.lens = exports.isoAsTraversal = exports.isoAsOptional = exports.isoAsPrism = exports.isoAsLens = exports.iso = void 0; | ||
exports.atReadonlyRecord = exports.at = exports.indexReadonlyRecord = exports.indexReadonlyNonEmptyArray = exports.indexReadonlyArray = exports.index = exports.traversalTraverse = exports.fromTraversable = exports.ApplicativeIdentity = exports.traversalComposeTraversal = exports.traversal = exports.optionalFindFirstNonEmpty = exports.optionalFindFirst = exports.optionalKey = exports.optionalIndexNonEmpty = exports.optionalIndex = exports.optionalComposeOptional = exports.optionalModify = exports.optionalModifyOption = exports.optionalAsTraversal = exports.optional = exports.prismLeft = exports.prismRight = exports.prismSome = exports.prismFromPredicate = exports.prismFromNullable = exports.prismComposeLens = exports.prismSet = exports.prismModify = exports.prismModifyOption = exports.prismAsTraversal = exports.prismAsOptional = exports.prism = exports.lensAtKey = exports.lensComponent = exports.lensProps = exports.lensProp = exports.lensId = exports.lensComposePrism = exports.prismComposePrism = exports.lensComposeLens = exports.lensAsTraversal = exports.lensAsOptional = exports.lens = exports.isoAsTraversal = exports.isoAsOptional = exports.isoAsPrism = exports.isoAsLens = exports.iso = void 0; | ||
var RA = require("fp-ts/lib/ReadonlyArray"); | ||
@@ -282,6 +282,19 @@ var RR = require("fp-ts/lib/ReadonlyRecord"); | ||
exports.traversalComposeTraversal = traversalComposeTraversal; | ||
/** @internal */ | ||
exports.ApplicativeIdentity = { | ||
URI: 'Identity', | ||
map: function (fa, f) { return f(fa); }, | ||
of: function_1.identity, | ||
ap: | ||
/* istanbul ignore next */ | ||
function (fab, fa) { return fab(fa); } | ||
}; | ||
var isIdentity = function (F) { return F.URI === 'Identity'; }; | ||
function fromTraversable(T) { | ||
return function () { | ||
return exports.traversal(function (F) { | ||
var traverseF = T.traverse(F); | ||
// if `F` is `Identity` then `traverseF = map` | ||
var traverseF = isIdentity(F) | ||
? T.map | ||
: T.traverse(F); | ||
return function (f) { return function (s) { return traverseF(s, f); }; }; | ||
@@ -288,0 +301,0 @@ }); |
@@ -6,5 +6,4 @@ "use strict"; | ||
var function_1 = require("fp-ts/lib/function"); | ||
var I = require("fp-ts/lib/Identity"); | ||
var pipeable_1 = require("fp-ts/lib/pipeable"); | ||
var A = require("fp-ts/lib/ReadonlyArray"); | ||
var RA = require("fp-ts/lib/ReadonlyArray"); | ||
var _ = require("./internal"); | ||
@@ -93,3 +92,3 @@ // ------------------------------------------------------------------------------------- | ||
var modify = function (f) { return function (sa) { | ||
return sa.modifyF(I.identity)(f); | ||
return sa.modifyF(_.ApplicativeIdentity)(f); | ||
}; }; | ||
@@ -101,5 +100,3 @@ exports.modify = modify; | ||
*/ | ||
var set = function (a) { | ||
return exports.modify(function () { return a; }); | ||
}; | ||
var set = function (a) { return exports.modify(function () { return a; }); }; | ||
exports.set = set; | ||
@@ -258,3 +255,3 @@ /** | ||
var getAll = function (s) { return function (sa) { | ||
return exports.foldMap(A.getMonoid())(function (a) { return [a]; })(sa)(s); | ||
return exports.foldMap(RA.getMonoid())(RA.of)(sa)(s); | ||
}; }; | ||
@@ -261,0 +258,0 @@ exports.getAll = getAll; |
{ | ||
"name": "monocle-ts", | ||
"version": "2.3.9", | ||
"version": "2.3.10", | ||
"description": "A porting of scala monocle library to TypeScript", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
@@ -110,3 +110,3 @@ [![build status](https://img.shields.io/travis/gcanti/monocle-ts/master.svg?style=flat-square)](https://travis-ci.org/gcanti/monocle-ts) | ||
import { Optional } from 'monocle-ts' | ||
import { some, none } from 'fp-ts/lib/Option' | ||
import { some, none } from 'fp-ts/Option' | ||
@@ -209,4 +209,4 @@ const firstLetterOptional = new Optional<string, string>( | ||
import * as assert from 'assert' | ||
import * as L from 'monocle-ts/lib/Lens' | ||
import { pipe } from 'fp-ts/lib/function' | ||
import * as L from 'monocle-ts/Lens' | ||
import { pipe } from 'fp-ts/function' | ||
@@ -224,4 +224,4 @@ const capitalizeName = pipe( | ||
import * as O from 'monocle-ts/lib/Optional' | ||
import { some, none } from 'fp-ts/lib/Option' | ||
import * as O from 'monocle-ts/Optional' | ||
import { some, none } from 'fp-ts/Option' | ||
@@ -228,0 +228,0 @@ const firstLetterOptional: O.Optional<string, string> = { |
365090
12496