Socket
Socket
Sign inDemoInstall

io-ts

Package Overview
Dependencies
Maintainers
1
Versions
120
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

io-ts - npm Package Compare versions

Comparing version 2.2.8 to 2.2.9

12

CHANGELOG.md

@@ -17,2 +17,14 @@ # Changelog

# 2.2.9
- **Polish**
- remove `Object.freeze` calls, closes #497 (@gcanti)
- **Experimental**
- `DecodeError`
- add `Wrap` member (@gcanti)
- `Decoder`
- add `withMessage` combinator (@gcanti)
- `TaskDecoder`
- add `withMessage` combinator (@gcanti)
# 2.2.8

@@ -19,0 +31,0 @@

17

es6/DecodeError.d.ts

@@ -77,5 +77,14 @@ /**

* @category model
* @since 2.2.9
*/
export interface Wrap<E> {
readonly _tag: 'Wrap';
readonly error: E;
readonly errors: FS.FreeSemigroup<DecodeError<E>>;
}
/**
* @category model
* @since 2.2.7
*/
export declare type DecodeError<E> = Leaf<E> | Key<E> | Index<E> | Member<E> | Lazy<E>;
export declare type DecodeError<E> = Leaf<E> | Key<E> | Index<E> | Member<E> | Lazy<E> | Wrap<E>;
/**

@@ -107,2 +116,7 @@ * @category constructors

/**
* @category constructors
* @since 2.2.9
*/
export declare const wrap: <E>(error: E, errors: FS.FreeSemigroup<DecodeError<E>>) => DecodeError<E>;
/**
* @category destructors

@@ -117,2 +131,3 @@ * @since 2.2.7

Lazy: (id: string, errors: FS.FreeSemigroup<DecodeError<E>>) => R;
Wrap: (error: E, errors: FS.FreeSemigroup<DecodeError<E>>) => R;
}) => (e: DecodeError<E>) => R;

@@ -119,0 +134,0 @@ /**

@@ -56,2 +56,11 @@ import * as FS from './FreeSemigroup';

/**
* @category constructors
* @since 2.2.9
*/
export var wrap = function (error, errors) { return ({
_tag: 'Wrap',
error: error,
errors: errors
}); };
/**
* @category destructors

@@ -73,2 +82,4 @@ * @since 2.2.7

return patterns.Lazy(e.id, e.errors);
case 'Wrap':
return patterns.Wrap(e.error, e.errors);
}

@@ -75,0 +86,0 @@ };

@@ -94,2 +94,7 @@ /**

* @category combinators
* @since 2.2.9
*/
export declare const withMessage: <I>(message: (input: I, e: DecodeError) => string) => <A>(decoder: Decoder<I, A>) => Decoder<I, A>;
/**
* @category combinators
* @since 2.2.7

@@ -96,0 +101,0 @@ */

@@ -137,2 +137,9 @@ import * as E from 'fp-ts/es6/Either';

* @category combinators
* @since 2.2.9
*/
export var withMessage = function (message) {
return mapLeftWithInput(function (input, e) { return FS.of(DE.wrap(message(input, e), e)); });
};
/**
* @category combinators
* @since 2.2.7

@@ -403,3 +410,4 @@ */

Member: function (index, errors) { return make("member " + index, toForest(errors)); },
Lazy: function (id, errors) { return make("lazy type " + id, toForest(errors)); }
Lazy: function (id, errors) { return make("lazy type " + id, toForest(errors)); },
Wrap: function (error, errors) { return make(error, toForest(errors)); }
});

@@ -406,0 +414,0 @@ var toForest = FS.fold(function (value) { return [toTree(value)]; }, function (left, right) { return toForest(left).concat(toForest(right)); });

4

es6/index.d.ts

@@ -545,3 +545,3 @@ /**

*/
export declare const array: <C extends Mixed>(codec: C, name?: string) => ArrayC<C>;
export declare const array: <C extends Mixed>(item: C, name?: string) => ArrayC<C>;
/**

@@ -818,3 +818,3 @@ * @since 1.0.0

*/
export declare const readonlyArray: <C extends Mixed>(codec: C, name?: string) => ReadonlyArrayC<C>;
export declare const readonlyArray: <C extends Mixed>(item: C, name?: string) => ReadonlyArrayC<C>;
/**

@@ -821,0 +821,0 @@ * Strips additional properties

@@ -531,5 +531,5 @@ var __extends = (this && this.__extends) || (function () {

*/
export var array = function (codec, name) {
if (name === void 0) { name = "Array<" + codec.name + ">"; }
return new ArrayType(name, function (u) { return UnknownArray.is(u) && u.every(codec.is); }, function (u, c) {
export var array = function (item, name) {
if (name === void 0) { name = "Array<" + item.name + ">"; }
return new ArrayType(name, function (u) { return UnknownArray.is(u) && u.every(item.is); }, function (u, c) {
var e = UnknownArray.validate(u, c);

@@ -545,3 +545,3 @@ if (isLeft(e)) {

var ui = us[i];
var result = codec.validate(ui, appendContext(c, String(i), codec, ui));
var result = item.validate(ui, appendContext(c, String(i), item, ui));
if (isLeft(result)) {

@@ -561,3 +561,3 @@ pushAll(errors, result.left);

return errors.length > 0 ? failures(errors) : success(as);
}, codec.encode === identity ? identity : function (a) { return a.map(codec.encode); }, codec);
}, item.encode === identity ? identity : function (a) { return a.map(item.encode); }, item);
};

@@ -1126,13 +1126,3 @@ /**

if (name === void 0) { name = "Readonly<" + codec.name + ">"; }
return new ReadonlyType(name, codec.is, function (u, c) {
var e = codec.validate(u, c);
if (isLeft(e)) {
return e;
}
var x = e.right;
if (process.env.NODE_ENV !== 'production') {
return right(Object.freeze(x));
}
return right(x);
}, codec.encode === identity ? identity : codec.encode, codec);
return new ReadonlyType(name, codec.is, codec.validate, codec.encode, codec);
};

@@ -1160,16 +1150,6 @@ /**

*/
export var readonlyArray = function (codec, name) {
if (name === void 0) { name = "ReadonlyArray<" + codec.name + ">"; }
var arrayType = array(codec);
return new ReadonlyArrayType(name, arrayType.is, function (u, c) {
var e = arrayType.validate(u, c);
if (isLeft(e)) {
return e;
}
var x = e.right;
if (process.env.NODE_ENV !== 'production') {
return right(Object.freeze(x));
}
return right(x);
}, arrayType.encode, codec);
export var readonlyArray = function (item, name) {
if (name === void 0) { name = "ReadonlyArray<" + item.name + ">"; }
var codec = array(item);
return new ReadonlyArrayType(name, codec.is, codec.validate, codec.encode, item);
};

@@ -1176,0 +1156,0 @@ /**

@@ -100,2 +100,7 @@ /**

* @category combinators
* @since 2.2.9
*/
export declare const withMessage: <I>(message: (input: I, e: DecodeError) => string) => <A>(decoder: TaskDecoder<I, A>) => TaskDecoder<I, A>;
/**
* @category combinators
* @since 2.2.7

@@ -102,0 +107,0 @@ */

@@ -130,2 +130,9 @@ import * as E from 'fp-ts/es6/Either';

* @category combinators
* @since 2.2.9
*/
export var withMessage = function (message) {
return mapLeftWithInput(function (input, e) { return FS.of(DE.wrap(message(input, e), e)); });
};
/**
* @category combinators
* @since 2.2.7

@@ -132,0 +139,0 @@ */

@@ -77,5 +77,14 @@ /**

* @category model
* @since 2.2.9
*/
export interface Wrap<E> {
readonly _tag: 'Wrap';
readonly error: E;
readonly errors: FS.FreeSemigroup<DecodeError<E>>;
}
/**
* @category model
* @since 2.2.7
*/
export declare type DecodeError<E> = Leaf<E> | Key<E> | Index<E> | Member<E> | Lazy<E>;
export declare type DecodeError<E> = Leaf<E> | Key<E> | Index<E> | Member<E> | Lazy<E> | Wrap<E>;
/**

@@ -107,2 +116,7 @@ * @category constructors

/**
* @category constructors
* @since 2.2.9
*/
export declare const wrap: <E>(error: E, errors: FS.FreeSemigroup<DecodeError<E>>) => DecodeError<E>;
/**
* @category destructors

@@ -117,2 +131,3 @@ * @since 2.2.7

Lazy: (id: string, errors: FS.FreeSemigroup<DecodeError<E>>) => R;
Wrap: (error: E, errors: FS.FreeSemigroup<DecodeError<E>>) => R;
}) => (e: DecodeError<E>) => R;

@@ -119,0 +134,0 @@ /**

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSemigroup = exports.fold = exports.lazy = exports.member = exports.index = exports.key = exports.leaf = exports.optional = exports.required = void 0;
exports.getSemigroup = exports.fold = exports.wrap = exports.lazy = exports.member = exports.index = exports.key = exports.leaf = exports.optional = exports.required = void 0;
var FS = require("./FreeSemigroup");

@@ -59,2 +59,11 @@ /**

/**
* @category constructors
* @since 2.2.9
*/
exports.wrap = function (error, errors) { return ({
_tag: 'Wrap',
error: error,
errors: errors
}); };
/**
* @category destructors

@@ -76,2 +85,4 @@ * @since 2.2.7

return patterns.Lazy(e.id, e.errors);
case 'Wrap':
return patterns.Wrap(e.error, e.errors);
}

@@ -78,0 +89,0 @@ };

@@ -94,2 +94,7 @@ /**

* @category combinators
* @since 2.2.9
*/
export declare const withMessage: <I>(message: (input: I, e: DecodeError) => string) => <A>(decoder: Decoder<I, A>) => Decoder<I, A>;
/**
* @category combinators
* @since 2.2.7

@@ -96,0 +101,0 @@ */

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.stringify = exports.draw = exports.WithRefine = exports.WithUnion = exports.WithUnknownContainers = exports.Schemable = exports.Category = exports.Alt = exports.Functor = exports.URI = exports.id = exports.compose = exports.alt = exports.map = exports.lazy = exports.sum = exports.fromSum = exports.intersect = exports.union = exports.tuple = exports.fromTuple = exports.record = exports.fromRecord = exports.array = exports.fromArray = exports.partial = exports.fromPartial = exports.type = exports.fromType = exports.nullable = exports.parse = exports.refine = exports.mapLeftWithInput = exports.UnknownRecord = exports.UnknownArray = exports.boolean = exports.number = exports.string = exports.literal = exports.fromGuard = exports.fromRefinement = exports.failure = exports.success = exports.error = exports.ap = exports.SE = void 0;
exports.stringify = exports.draw = exports.WithRefine = exports.WithUnion = exports.WithUnknownContainers = exports.Schemable = exports.Category = exports.Alt = exports.Functor = exports.URI = exports.id = exports.compose = exports.alt = exports.map = exports.lazy = exports.sum = exports.fromSum = exports.intersect = exports.union = exports.tuple = exports.fromTuple = exports.record = exports.fromRecord = exports.array = exports.fromArray = exports.partial = exports.fromPartial = exports.type = exports.fromType = exports.nullable = exports.parse = exports.refine = exports.withMessage = exports.mapLeftWithInput = exports.UnknownRecord = exports.UnknownArray = exports.boolean = exports.number = exports.string = exports.literal = exports.fromGuard = exports.fromRefinement = exports.failure = exports.success = exports.error = exports.ap = exports.SE = void 0;
var E = require("fp-ts/lib/Either");

@@ -140,2 +140,9 @@ var pipeable_1 = require("fp-ts/lib/pipeable");

* @category combinators
* @since 2.2.9
*/
exports.withMessage = function (message) {
return exports.mapLeftWithInput(function (input, e) { return FS.of(DE.wrap(message(input, e), e)); });
};
/**
* @category combinators
* @since 2.2.7

@@ -406,3 +413,4 @@ */

Member: function (index, errors) { return make("member " + index, toForest(errors)); },
Lazy: function (id, errors) { return make("lazy type " + id, toForest(errors)); }
Lazy: function (id, errors) { return make("lazy type " + id, toForest(errors)); },
Wrap: function (error, errors) { return make(error, toForest(errors)); }
});

@@ -409,0 +417,0 @@ var toForest = FS.fold(function (value) { return [toTree(value)]; }, function (left, right) { return toForest(left).concat(toForest(right)); });

@@ -545,3 +545,3 @@ /**

*/
export declare const array: <C extends Mixed>(codec: C, name?: string) => ArrayC<C>;
export declare const array: <C extends Mixed>(item: C, name?: string) => ArrayC<C>;
/**

@@ -818,3 +818,3 @@ * @since 1.0.0

*/
export declare const readonlyArray: <C extends Mixed>(codec: C, name?: string) => ReadonlyArrayC<C>;
export declare const readonlyArray: <C extends Mixed>(item: C, name?: string) => ReadonlyArrayC<C>;
/**

@@ -821,0 +821,0 @@ * Strips additional properties

@@ -538,5 +538,5 @@ "use strict";

*/
exports.array = function (codec, name) {
if (name === void 0) { name = "Array<" + codec.name + ">"; }
return new ArrayType(name, function (u) { return exports.UnknownArray.is(u) && u.every(codec.is); }, function (u, c) {
exports.array = function (item, name) {
if (name === void 0) { name = "Array<" + item.name + ">"; }
return new ArrayType(name, function (u) { return exports.UnknownArray.is(u) && u.every(item.is); }, function (u, c) {
var e = exports.UnknownArray.validate(u, c);

@@ -552,3 +552,3 @@ if (Either_1.isLeft(e)) {

var ui = us[i];
var result = codec.validate(ui, exports.appendContext(c, String(i), codec, ui));
var result = item.validate(ui, exports.appendContext(c, String(i), item, ui));
if (Either_1.isLeft(result)) {

@@ -568,3 +568,3 @@ pushAll(errors, result.left);

return errors.length > 0 ? exports.failures(errors) : exports.success(as);
}, codec.encode === exports.identity ? exports.identity : function (a) { return a.map(codec.encode); }, codec);
}, item.encode === exports.identity ? exports.identity : function (a) { return a.map(item.encode); }, item);
};

@@ -1138,13 +1138,3 @@ /**

if (name === void 0) { name = "Readonly<" + codec.name + ">"; }
return new ReadonlyType(name, codec.is, function (u, c) {
var e = codec.validate(u, c);
if (Either_1.isLeft(e)) {
return e;
}
var x = e.right;
if (process.env.NODE_ENV !== 'production') {
return Either_1.right(Object.freeze(x));
}
return Either_1.right(x);
}, codec.encode === exports.identity ? exports.identity : codec.encode, codec);
return new ReadonlyType(name, codec.is, codec.validate, codec.encode, codec);
};

@@ -1172,16 +1162,6 @@ /**

*/
exports.readonlyArray = function (codec, name) {
if (name === void 0) { name = "ReadonlyArray<" + codec.name + ">"; }
var arrayType = exports.array(codec);
return new ReadonlyArrayType(name, arrayType.is, function (u, c) {
var e = arrayType.validate(u, c);
if (Either_1.isLeft(e)) {
return e;
}
var x = e.right;
if (process.env.NODE_ENV !== 'production') {
return Either_1.right(Object.freeze(x));
}
return Either_1.right(x);
}, arrayType.encode, codec);
exports.readonlyArray = function (item, name) {
if (name === void 0) { name = "ReadonlyArray<" + item.name + ">"; }
var codec = exports.array(item);
return new ReadonlyArrayType(name, codec.is, codec.validate, codec.encode, item);
};

@@ -1188,0 +1168,0 @@ /**

@@ -100,2 +100,7 @@ /**

* @category combinators
* @since 2.2.9
*/
export declare const withMessage: <I>(message: (input: I, e: DecodeError) => string) => <A>(decoder: TaskDecoder<I, A>) => TaskDecoder<I, A>;
/**
* @category combinators
* @since 2.2.7

@@ -102,0 +107,0 @@ */

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.stringify = exports.draw = exports.WithRefine = exports.WithUnion = exports.WithUnknownContainers = exports.Schemable = exports.Category = exports.Alt = exports.Functor = exports.URI = exports.id = exports.compose = exports.alt = exports.map = exports.lazy = exports.sum = exports.fromSum = exports.intersect = exports.union = exports.tuple = exports.fromTuple = exports.record = exports.fromRecord = exports.array = exports.fromArray = exports.partial = exports.fromPartial = exports.type = exports.fromType = exports.nullable = exports.parse = exports.refine = exports.mapLeftWithInput = exports.UnknownRecord = exports.UnknownArray = exports.boolean = exports.number = exports.string = exports.literal = exports.fromGuard = exports.fromRefinement = exports.fromDecoder = exports.failure = exports.success = exports.error = void 0;
exports.stringify = exports.draw = exports.WithRefine = exports.WithUnion = exports.WithUnknownContainers = exports.Schemable = exports.Category = exports.Alt = exports.Functor = exports.URI = exports.id = exports.compose = exports.alt = exports.map = exports.lazy = exports.sum = exports.fromSum = exports.intersect = exports.union = exports.tuple = exports.fromTuple = exports.record = exports.fromRecord = exports.array = exports.fromArray = exports.partial = exports.fromPartial = exports.type = exports.fromType = exports.nullable = exports.parse = exports.refine = exports.withMessage = exports.mapLeftWithInput = exports.UnknownRecord = exports.UnknownArray = exports.boolean = exports.number = exports.string = exports.literal = exports.fromGuard = exports.fromRefinement = exports.fromDecoder = exports.failure = exports.success = exports.error = void 0;
var E = require("fp-ts/lib/Either");

@@ -133,2 +133,9 @@ var pipeable_1 = require("fp-ts/lib/pipeable");

* @category combinators
* @since 2.2.9
*/
exports.withMessage = function (message) {
return exports.mapLeftWithInput(function (input, e) { return FS.of(DE.wrap(message(input, e), e)); });
};
/**
* @category combinators
* @since 2.2.7

@@ -135,0 +142,0 @@ */

{
"name": "io-ts",
"version": "2.2.8",
"version": "2.2.9",
"description": "TypeScript runtime type system for IO decoding/encoding",

@@ -5,0 +5,0 @@ "files": [

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc