New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

generic-type-guard

Package Overview
Dependencies
Maintainers
1
Versions
45
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

generic-type-guard - npm Package Compare versions

Comparing version 3.2.0 to 3.3.0

api-extractor.json

58

.eslintrc.js

@@ -5,2 +5,60 @@ module.exports = {

],
overrides: [
{
files: ["*.ts"],
rules: {
"@typescript-eslint/ban-types": [
"error",
{
extendDefaults: false,
// This will probably change over time. This should only remove the object type.
// @see: https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/ban-types.md
types: {
String: {
message: 'Use string instead',
fixWith: 'string',
},
Boolean: {
message: 'Use boolean instead',
fixWith: 'boolean',
},
Number: {
message: 'Use number instead',
fixWith: 'number',
},
Symbol: {
message: 'Use symbol instead',
fixWith: 'symbol',
},
Function: {
message: [
'The `Function` type accepts any function-like value.',
'It provides no type safety when calling the function, which can be a common source of bugs.',
'It also accepts things like class declarations, which will throw at runtime as they will not be called with `new`.',
'If you are expecting the function to accept certain arguments, you should explicitly define the function shape.',
].join('\n'),
},
// object typing
Object: {
message: [
'The `Object` type actually means "any non-nullish value", so it is marginally better than `unknown`.',
'- If you want a type meaning "any object", you probably want `Record<string, unknown>` instead.',
'- If you want a type meaning "any value", you probably want `unknown` instead.',
].join('\n'),
},
'{}': {
message: [
'`{}` actually means "any non-nullish value".',
'- If you want a type meaning "any object", you probably want `Record<string, unknown>` instead.',
'- If you want a type meaning "any value", you probably want `unknown` instead.',
].join('\n'),
},
},
},
],
},
},
],
};

7

dist/combinators/functions.js
"use strict";
exports.__esModule = true;
exports.isIntersection = exports.isUnion = void 0;
/**
* Check if a value is a union of two types.
*
* @public
*/

@@ -11,2 +14,4 @@ exports.isUnion = function (ptt, ptu) {

* Check if a value is an intersection of two types.
*
* @public
*/

@@ -16,2 +21,2 @@ exports.isIntersection = function (ptt, ptu) {

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbWJpbmF0b3JzL2Z1bmN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBOztHQUVHO0FBQ1UsUUFBQSxPQUFPLEdBQ2xCLFVBQThCLEdBQTJCLEVBQUUsR0FBMkI7SUFDdEYsT0FBQSxVQUFDLENBQUMsSUFBaUIsT0FBQSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFoQixDQUFnQjtBQUFuQyxDQUFtQyxDQUFDO0FBRXRDOztHQUVHO0FBQ1UsUUFBQSxjQUFjLEdBQ3pCLFVBQThCLEdBQTJCLEVBQUUsR0FBMkI7SUFDdEYsT0FBQSxVQUFDLENBQUMsSUFBaUIsT0FBQSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFoQixDQUFnQjtBQUFuQyxDQUFtQyxDQUFDIn0=
//# sourceMappingURL=functions.js.map

23

dist/combinators/index.js
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
};
exports.__esModule = true;
__export(require("./functions"));
__export(require("./unionof"));
__export(require("./intersectionof"));
__export(require("./interface"));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tYmluYXRvcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpQ0FBNEI7QUFDNUIsK0JBQTBCO0FBQzFCLHNDQUFpQztBQUNqQyxpQ0FBNEIifQ==
__exportStar(require("./functions"), exports);
__exportStar(require("./unionof"), exports);
__exportStar(require("./intersectionof"), exports);
__exportStar(require("./interface"), exports);
//# sourceMappingURL=index.js.map
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
exports.__esModule = true;
exports.IsInterface = void 0;
var o = __importStar(require("../objects"));

@@ -30,2 +43,5 @@ var functions_1 = require("./functions");

};
InterfaceStep.prototype.withOptionalProperty = function (key, ptv) {
return new InterfaceStep(functions_1.isIntersection(this.ptt, o.hasOptionalProperty(key, ptv)));
};
InterfaceStep.prototype.withStringIndexSignature = function (value, enforce) {

@@ -42,2 +58,5 @@ if (enforce === void 0) { enforce = true; }

};
InterfaceStep.prototype.withOptionalProperties = function (props) {
return new InterfaceStep(functions_1.isIntersection(this.ptt, o.hasOptionalProperties(props)));
};
return InterfaceStep;

@@ -47,2 +66,4 @@ }());

* A small class to help with constructing interface guards.
*
* @public
*/

@@ -61,2 +82,5 @@ var IsInterface = /** @class */ (function () {

};
IsInterface.prototype.withOptionalProperty = function (key, ptv) {
return new InterfaceStep(o.hasOptionalProperty(key, ptv));
};
IsInterface.prototype.withStringIndexSignature = function (value, enforce) {

@@ -73,5 +97,8 @@ if (enforce === void 0) { enforce = true; }

};
IsInterface.prototype.withOptionalProperties = function (props) {
return new InterfaceStep(o.hasOptionalProperties(props));
};
return IsInterface;
}());
exports.IsInterface = IsInterface;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbWJpbmF0b3JzL2ludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSw0Q0FBZ0M7QUFFaEMseUNBQTZDO0FBQzdDLDRDQUE2QztBQXNEN0M7O0dBRUc7QUFDSDtJQUdFLHVCQUFtQixHQUE0QjtRQUM3QyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNqQixDQUFDO0lBRU0sMkJBQUcsR0FBVjtRQUFBLGlCQUVDO1FBREMsT0FBTyxVQUFDLEdBQUcsSUFBZSxPQUFBLHlCQUFZLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBbEMsQ0FBa0MsQ0FBQztJQUMvRCxDQUFDO0lBRU0sd0JBQUEsTUFBSSxDQUFBLEdBQVgsVUFBZSxHQUE0QjtRQUN6QyxPQUFPLElBQUksYUFBYSxDQUFRLDBCQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTSxvQ0FBWSxHQUFuQixVQUF5QyxHQUFNLEVBQUUsR0FBaUI7UUFDaEUsT0FBTyxJQUFJLGFBQWEsQ0FBQywwQkFBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFTSxnREFBd0IsR0FBL0IsVUFBbUMsS0FBbUIsRUFBRSxPQUFjO1FBQWQsd0JBQUEsRUFBQSxjQUFjO1FBQ3BFLE9BQU8sSUFBSSxhQUFhLENBQUMsMEJBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFTSxpREFBeUIsR0FBaEMsVUFBb0MsS0FBbUIsRUFBRSxPQUFjO1FBQWQsd0JBQUEsRUFBQSxjQUFjO1FBQ3JFLE9BQU8sSUFBSSxhQUFhLENBQUMsMEJBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFTSxzQ0FBYyxHQUFyQixVQUF5QixLQUF5QjtRQUNoRCxPQUFPLElBQUksYUFBYSxDQUFDLDBCQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBQ0gsb0JBQUM7QUFBRCxDQUFDLEFBOUJELElBOEJDO0FBRUQ7O0dBRUc7QUFDSDtJQUFBO0lBd0JBLENBQUM7SUF2QlEseUJBQUcsR0FBVjtRQUNFLE9BQU8seUJBQVksQ0FBQztJQUN0QixDQUFDO0lBRU0sc0JBQUEsTUFBSSxDQUFBLEdBQVgsVUFBZSxHQUE0QjtRQUN6QyxPQUFPLElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFTSxrQ0FBWSxHQUFuQixVQUF5QyxHQUFNLEVBQUUsR0FBaUI7UUFDaEUsT0FBTyxJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTSw4Q0FBd0IsR0FBL0IsVUFBbUMsS0FBbUIsRUFBRSxPQUFjO1FBQWQsd0JBQUEsRUFBQSxjQUFjO1FBQ3BFLE9BQU8sSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTSwrQ0FBeUIsR0FBaEMsVUFBb0MsS0FBbUIsRUFBRSxPQUFjO1FBQWQsd0JBQUEsRUFBQSxjQUFjO1FBQ3JFLE9BQU8sSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFTSxvQ0FBYyxHQUFyQixVQUF5QixLQUF5QjtRQUNoRCxPQUFPLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBQ0gsa0JBQUM7QUFBRCxDQUFDLEFBeEJELElBd0JDO0FBeEJZLGtDQUFXIn0=
//# sourceMappingURL=interface.js.map
"use strict";
exports.__esModule = true;
exports.IntersectionOf = void 0;
var functions_1 = require("./functions");
/**
* A small class to help with constructing larger intersection checkers.
*
* @public
*/

@@ -26,2 +29,2 @@ var IntersectionOf = /** @class */ (function () {

exports.IntersectionOf = IntersectionOf;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJzZWN0aW9ub2YuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tYmluYXRvcnMvaW50ZXJzZWN0aW9ub2YudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FBNkM7QUFHN0M7O0dBRUc7QUFDSDtJQUdFLHdCQUFZLEdBQTJCO1FBQ3JDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNJLDRCQUFHLEdBQVY7UUFDRSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUVEOztPQUVHO0lBQ0kseUJBQUEsTUFBSSxDQUFBLEdBQVgsVUFBeUIsR0FBMkI7UUFDbEQsT0FBTyxJQUFJLGNBQWMsQ0FBQywwQkFBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ0gscUJBQUM7QUFBRCxDQUFDLEFBcEJELElBb0JDO0FBcEJZLHdDQUFjIn0=
//# sourceMappingURL=intersectionof.js.map
"use strict";
exports.__esModule = true;
exports.UnionOf = void 0;
var functions_1 = require("./functions");
/**
* A small class to help with constructing larger union checkers.
*
* @public
*/

@@ -26,2 +29,2 @@ var UnionOf = /** @class */ (function () {

exports.UnionOf = UnionOf;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pb25vZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21iaW5hdG9ycy91bmlvbm9mLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEseUNBQXNDO0FBR3RDOztHQUVHO0FBQ0g7SUFHRSxpQkFBWSxHQUEyQjtRQUNyQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNqQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxxQkFBRyxHQUFWO1FBQ0UsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7T0FFRztJQUNJLGtCQUFBLE1BQUksQ0FBQSxHQUFYLFVBQXlCLEdBQTJCO1FBQ2xELE9BQU8sSUFBSSxPQUFPLENBQUMsbUJBQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNILGNBQUM7QUFBRCxDQUFDLEFBcEJELElBb0JDO0FBcEJZLDBCQUFPIn0=
//# sourceMappingURL=unionof.js.map
"use strict";
/* eslint-disable @typescript-eslint/no-explicit-any */
exports.__esModule = true;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VhcmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2d1YXJkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsdURBQXVEIn0=
//# sourceMappingURL=guards.js.map
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
};
exports.__esModule = true;
__export(require("./primitives"));
__export(require("./objects"));
__export(require("./combinators"));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxrQ0FBNkI7QUFDN0IsK0JBQTBCO0FBQzFCLG1DQUE4QiJ9
__exportStar(require("./guards"), exports);
__exportStar(require("./primitives"), exports);
__exportStar(require("./objects"), exports);
__exportStar(require("./combinators"), exports);
__exportStar(require("./utils"), exports);
//# sourceMappingURL=index.js.map
"use strict";
exports.__esModule = true;
exports.hasOptionalProperties = exports.hasProperties = exports.isInstance = exports.hasNumericIndexSignature = exports.hasStringIndexSignature = exports.isRecord = exports.hasOptionalProperty = exports.hasProperty = void 0;
var primitives_1 = require("./primitives");
/**
* Validates that a given object has a property of a given type.
*
* @public
*/

@@ -14,5 +17,19 @@ exports.hasProperty = function (property, value) {

/**
* Validates that a given object has an optional property of a given type.
*
* @public
*/
exports.hasOptionalProperty = function (property, value) {
return function (o) {
return !(property in o) ||
// If the property exists and conforms to the value type guard.
value(o[property]);
};
};
/**
* Validate that a variable is an object with a single field.
*
* If you need multiple fields then use IsInterface.
* If you need multiple fields then use hasProperties.
*
* @public
*/

@@ -25,5 +42,6 @@ exports.isRecord = function (property, value) {

*
* @param enforce
* Whether to enforce that there is at least one property already set. Be careful setting this to false, you will
* get some unexpected outputs, for instance arrays will have a string index signature.
* @param enforce - Whether to enforce that there is at least one property already set. Be careful setting this to
* false, you will get some unexpected outputs, for instance arrays will have a string index signature.
*
* @public
*/

@@ -51,5 +69,6 @@ exports.hasStringIndexSignature = function (value, enforce) {

*
* @param enforce
* Whether to enforce that there is at least one property already set. Be careful setting this to false, you will
* get some unexpected outputs, for instance objects will have a numeric index signature.
* @param enforce - Whether to enforce that there is at least one property already set. Be careful setting this to
* false, you will get some unexpected outputs, for instance objects will have a numeric index signature.
*
* @public
*/

@@ -77,2 +96,4 @@ exports.hasNumericIndexSignature = function (value, enforce) {

* Validates that a given object is an instance of a class.
*
* @public
*/

@@ -84,4 +105,7 @@ exports.isInstance = function (klass) {

* Validate that a given object has all the given properties
* @param props a MappedGuard of the object to be validated, i.e. an object that has the same properties as the
*
* @param props - a MappedGuard of the object to be validated, i.e. an object that has the same properties as the
* object being validated whose types are TypeGuards for the matching type on the original property.
*
* @public
*/

@@ -98,2 +122,20 @@ exports.hasProperties = function (props) {

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9vYmplY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsMkNBQXdDO0FBRXhDOztHQUVHO0FBQ1UsUUFBQSxXQUFXLEdBQ3RCLFVBQXNCLFFBQVcsRUFBRSxLQUFtQjtJQUNwRCxPQUFBLFVBQUMsQ0FBQztRQUNBLCtEQUErRDtRQUMvRCxPQUFBLEtBQUssQ0FBRSxDQUFpQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQW5ELENBQW1EO0FBRnJELENBRXFELENBQUM7QUFFMUQ7Ozs7R0FJRztBQUNVLFFBQUEsUUFBUSxHQUNuQixVQUFzQixRQUFXLEVBQUUsS0FBbUI7SUFDcEQsT0FBQSxVQUFDLENBQUMsSUFBOEIsT0FBQSxxQkFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLG1CQUFXLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUE5QyxDQUE4QztBQUE5RSxDQUE4RSxDQUFDO0FBRW5GOzs7Ozs7R0FNRztBQUNVLFFBQUEsdUJBQXVCLEdBQ2xDLFVBQUksS0FBbUIsRUFBRSxPQUFjO0lBQWQsd0JBQUEsRUFBQSxjQUFjO0lBQ3JDLE9BQUEsVUFBQyxDQUFDO1FBQ0EsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsS0FBSyxJQUFNLElBQUksSUFBSSxDQUFDLEVBQUU7WUFDcEIsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFO2dCQUM3QixJQUFJLEtBQUssQ0FBRSxDQUFpQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7b0JBQ25ELENBQUMsRUFBRSxDQUFDO2lCQUNMO3FCQUNJO29CQUNILE9BQU8sS0FBSyxDQUFDO2lCQUNkO2FBQ0Y7U0FDRjtRQUVELCtDQUErQztRQUMvQyxPQUFPLENBQUMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQztBQWZELENBZUMsQ0FBQztBQUVOOzs7Ozs7R0FNRztBQUNVLFFBQUEsd0JBQXdCLEdBQ25DLFVBQUksS0FBbUIsRUFBRSxPQUFjO0lBQWQsd0JBQUEsRUFBQSxjQUFjO0lBQ3JDLE9BQUEsVUFBQyxDQUFDO1FBQ0EsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsS0FBSyxJQUFNLElBQUksSUFBSSxDQUFDLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQzlCLDREQUE0RDtnQkFDNUQsSUFBSSxLQUFLLENBQUUsQ0FBaUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO29CQUNuRCxDQUFDLEVBQUUsQ0FBQztpQkFDTDtxQkFDSTtvQkFDSCxPQUFPLEtBQUssQ0FBQztpQkFDZDthQUNGO1NBQ0Y7UUFFRCwrQ0FBK0M7UUFDL0MsT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7QUFoQkQsQ0FnQkMsQ0FBQztBQUVOOztHQUVHO0FBQ1UsUUFBQSxVQUFVLEdBQUcsVUFBZSxLQUFvQztJQUMzRSxPQUFBLFVBQUMsQ0FBQyxJQUFhLE9BQUEsQ0FBQyxZQUFZLEtBQUssRUFBbEIsQ0FBa0I7QUFBakMsQ0FBaUMsQ0FBQztBQUVwQzs7OztHQUlHO0FBQ1UsUUFBQSxhQUFhLEdBQ3hCLFVBQUksS0FBeUI7SUFDM0IsT0FBQSxVQUFDLENBQUM7UUFDQSxLQUFLLElBQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtZQUN4QixJQUFJLENBQUMsbUJBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3RDLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7U0FDRjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztBQVJELENBUUMsQ0FBQyJ9
/**
* Validate that a given object has all the given optional properties
*
* @param props - a MappedGuard of the object to be validated, i.e. an object that has the same properties as the
* object being validated whose types are TypeGuards for the matching type on the original property.
*
* @public
*/
exports.hasOptionalProperties = function (props) {
return function (o) {
for (var prop in props) {
if (!exports.hasOptionalProperty(prop, props[prop])(o)) {
return false;
}
}
return true;
};
};
//# sourceMappingURL=objects.js.map
"use strict";
exports.__esModule = true;
exports.isNever = exports.isUnknown = exports.isAny = exports.isSet = exports.isObject = exports.isObjectLike = exports.narrowArray = exports.narrowValue = exports.isArray = exports.isMissing = exports.isNullable = exports.isOptional = exports.isUndefined = exports.isNull = exports.isBoolean = exports.isSingletonStringUnion = exports.isSingletonString = exports.isString = exports.isSingletonNumberUnion = exports.isSingletonNumber = exports.isElementOf = exports.isNaN = exports.isInfinity = exports.isDouble = exports.isFloat = exports.isFiniteNumber = exports.isNumber = void 0;
var MINIMUM_ARRAY_INDEX = 0;
/**
* Validate if a value is a javascript number.
*
* @public
*/

@@ -12,2 +15,4 @@ exports.isNumber = function (n) {

* Validate the value is a finite number.
*
* @public
*/

@@ -22,2 +27,4 @@ exports.isFiniteNumber = function (n) {

* the edge cases that entails.
*
* @public
*/

@@ -31,2 +38,3 @@ exports.isFloat = function (n) {

* @see isFloat()
* @public
*/

@@ -36,2 +44,4 @@ exports.isDouble = exports.isFloat;

* Validate the value is infinite.
*
* @public
*/

@@ -43,2 +53,4 @@ exports.isInfinity = function (n) {

* Validates a value is exactly the NaN constant value.
*
* @public
*/

@@ -50,2 +62,4 @@ exports.isNaN = function (n) {

* Validates that a value is one of a set of values.
*
* @public
*/

@@ -61,2 +75,4 @@ exports.isElementOf = (function () {

* Validate if a value is a specific javascript number.
*
* @public
*/

@@ -68,2 +84,4 @@ exports.isSingletonNumber = function (v) { return function (n) {

* Validate if a value is one of a set of specific numbers.
*
* @public
*/

@@ -79,2 +97,4 @@ exports.isSingletonNumberUnion = (function () {

* Validate if a value is a string.
*
* @public
*/

@@ -86,2 +106,4 @@ exports.isString = function (s) {

* Validate if a value is a specific string.
*
* @public
*/

@@ -93,2 +115,4 @@ exports.isSingletonString = function (v) { return function (s) {

* Validate if a value is one of a set of specific strings.
*
* @public
*/

@@ -104,2 +128,4 @@ exports.isSingletonStringUnion = (function () {

* Validate if a value is a boolean.
*
* @public
*/

@@ -111,2 +137,4 @@ exports.isBoolean = function (b) {

* Validate if a value is the constant null.
*
* @public
*/

@@ -118,2 +146,4 @@ exports.isNull = function (o) {

* Validate if a value is the constant undefined.
*
* @public
*/

@@ -125,2 +155,4 @@ exports.isUndefined = function (u) {

* Validate if a value is optionally a given type.
*
* @public
*/

@@ -132,2 +164,4 @@ exports.isOptional = function (tgt) {

* Validate if a value is a given type or null.
*
* @public
*/

@@ -139,2 +173,4 @@ exports.isNullable = function (tgt) {

* Validates if a value is a given type or null or undefined.
*
* @public
*/

@@ -146,2 +182,4 @@ exports.isMissing = function (tgt) {

* Validate if a value is an array of a specific type of value.
*
* @public
*/

@@ -152,3 +190,13 @@ exports.isArray = function (valueCheck) { return function (arr) {

/**
* Narrow the type of a value.
*
* @public
*/
exports.narrowValue = function (ptt, ptu) {
return function (t) { return ptt(t) && ptu(t); };
};
/**
* Narrow the type of elements inside an array.
*
* @public
*/

@@ -163,2 +211,4 @@ exports.narrowArray = function (pt) {

* things that typescript has other primitives for like arrays.
*
* @public
*/

@@ -170,2 +220,4 @@ exports.isObjectLike = function (obj) {

* Validate if a value is an object.
*
* @public
*/

@@ -177,2 +229,4 @@ exports.isObject = function (obj) {

* Validates if a value is not null and not undefined.
*
* @public
*/

@@ -189,2 +243,4 @@ exports.isSet = function (obj) { return obj != null; };

* widen it back to any in your interface.
*
* @public
*/

@@ -196,2 +252,3 @@ exports.isAny = function (_a) { return true; }; /* eslint-disable-line @typescript-eslint/no-unused-vars */

* @see isAny
* @public
*/

@@ -201,2 +258,4 @@ exports.isUnknown = exports.isAny;

* Helper for exhaustiveness checking.
*
* @public
*/

@@ -206,2 +265,2 @@ exports.isNever = function (n) {

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcmltaXRpdmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBSUEsSUFBTSxtQkFBbUIsR0FBRyxDQUFDLENBQUM7QUFFOUI7O0dBRUc7QUFDVSxRQUFBLFFBQVEsR0FBc0IsVUFBQyxDQUFDO0lBQzNDLE9BQUEsT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFBekMsQ0FBeUMsQ0FBQztBQUU1Qzs7R0FFRztBQUNVLFFBQUEsY0FBYyxHQUFzQixVQUFDLENBQUM7SUFDakQsT0FBQSxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBQS9ELENBQStELENBQUM7QUFFbEU7Ozs7O0dBS0c7QUFDVSxRQUFBLE9BQU8sR0FBc0IsVUFBQyxDQUFDO0lBQzFDLE9BQUEsT0FBTyxDQUFDLEtBQUssUUFBUTtBQUFyQixDQUFxQixDQUFDO0FBRXhCOzs7O0dBSUc7QUFDVSxRQUFBLFFBQVEsR0FBRyxlQUFPLENBQUM7QUFFaEM7O0dBRUc7QUFDVSxRQUFBLFVBQVUsR0FBc0IsVUFBQyxDQUFDO0lBQzdDLE9BQUEsT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBQWhFLENBQWdFLENBQUM7QUFFbkU7O0dBRUc7QUFDVSxRQUFBLEtBQUssR0FBc0IsVUFBQyxDQUFDO0lBQ3hDLE9BQUEsT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQXhDLENBQXdDLENBQUM7QUFFM0M7O0dBRUc7QUFDVSxRQUFBLFdB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
//# sourceMappingURL=primitives.js.map
{
"name": "generic-type-guard",
"version": "3.2.0",
"version": "3.3.0",
"description": "Generic type guards for TypeScript",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"types": "dist/generic-type-guard.d.ts",
"scripts": {
"build": "rimraf dist && tsc --target es3",
"prepack": "rimraf dist && tsc --target es3",
"build": "rimraf dist && tsc --target es3 && api-extractor run --local --verbose",
"prepack": "rimraf dist && tsc --target es3 && api-extractor run --local",
"test": "yarn lint && yarn mocha",

@@ -65,24 +65,25 @@ "test-watch": "nodemon -e ts,json --exec yarn test",

"devDependencies": {
"@mscharley/eslint-config": "1.2.2",
"@stryker-mutator/core": "3.1.0",
"@stryker-mutator/mocha-framework": "3.1.0",
"@stryker-mutator/mocha-runner": "3.1.0",
"@stryker-mutator/typescript": "3.1.0",
"@types/chai": "4.2.11",
"@microsoft/api-extractor": "7.9.22",
"@mscharley/eslint-config": "1.2.4",
"@stryker-mutator/core": "3.3.1",
"@stryker-mutator/mocha-framework": "3.3.1",
"@stryker-mutator/mocha-runner": "3.3.1",
"@stryker-mutator/typescript": "3.3.1",
"@types/chai": "4.2.12",
"@types/mocha": "7.0.2",
"@types/node": "12.12.36",
"@typescript-eslint/eslint-plugin": "2.29.0",
"@typescript-eslint/parser": "2.29.0",
"@types/node": "12.12.62",
"@typescript-eslint/eslint-plugin": "3.10.1",
"@typescript-eslint/parser": "3.10.1",
"chai": "4.2.0",
"codecov": "3.6.5",
"eslint": "6.8.0",
"mocha": "7.1.1",
"nodemon": "2.0.3",
"nyc": "15.0.1",
"codecov": "3.7.2",
"eslint": "7.9.0",
"mocha": "7.2.0",
"nodemon": "2.0.4",
"nyc": "15.1.0",
"rimraf": "3.0.2",
"source-map-support": "0.5.17",
"ts-node": "8.8.2",
"typescript": "3.8.3"
"source-map-support": "0.5.19",
"ts-node": "9.0.0",
"typescript": "4.0.3"
},
"gitHead": "bde99cf5ed138de8ecff928caf271065246835bf"
"gitHead": "8a26bd88bbc8918e68d1df058977c0b404d25061"
}
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