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

typed-function

Package Overview
Dependencies
Maintainers
1
Versions
37
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

typed-function - npm Package Compare versions

Comparing version 0.8.1 to 0.8.2

6

HISTORY.md
# History
## 2015-05-09, version 0.8.2
- Fixed function `typed.convert` not handling the case where the value already
has the requested type. Thanks @rjbaucells.
## 2015-05-09, version 0.8.1

@@ -5,0 +11,0 @@

2

package.json
{
"name": "typed-function",
"version": "0.8.1",
"version": "0.8.2",
"description": "Type checking for JavaScript functions",

@@ -5,0 +5,0 @@ "author": "Jos de Jong <wjosdejong@gmail.com> (https://github.com/josdejong)",

@@ -33,2 +33,7 @@ var assert = require('assert');

});
it('should return same value when conversion is not needed', function () {
assert.strictEqual(typed.convert(2, 'number'), 2);
assert.strictEqual(typed.convert(true, 'boolean'), true);
});

@@ -35,0 +40,0 @@ it('should throw an error when no conversion function is found', function() {

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

var from = getTypeOf(value);
// check conversion is needed
if (type === from) {
return value;
}

@@ -1219,0 +1224,0 @@ for (var i = 0; i < typed.conversions.length; i++) {

@@ -1,1 +0,1 @@

"use strict";!function(r){"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?module.exports=r():window.typed=r()}(function(){function r(){function n(r){var n=x.types[r];if(!n){var t;for(var e in x.types)if(x.types.hasOwnProperty(e)&&e.toLowerCase()==r.toLowerCase()){t=e;break}throw new Error('Unknown type "'+r+'"'+(t?'. Did you mean "'+t+'"?':""))}return n}function t(r,n,t,e,s){var i,o=g(e),a=s?s.split(","):null,u=r||"unnamed",p=a&&v(a,"any"),h={fn:r,index:t,actual:e,expected:a};i=a?n>t&&!p?"Unexpected type of argument in function "+u+" (expected: "+a.join(" or ")+", actual: "+o+", index: "+t+")":"Too few arguments in function "+u+" (expected: "+a.join(" or ")+", index: "+t+")":"Too many arguments in function "+u+" (expected: "+t+", actual: "+n+")";var f=new TypeError(i);return f.data=h,f}function e(r){this.name=r||"refs",this.categories={}}function s(r,n){if("string"==typeof r){var t=r.trim(),e="..."===t.substr(0,3);if(e&&(t=t.substr(3)),""===t)this.types=["any"];else{this.types=t.split("|");for(var i=0;i<this.types.length;i++)this.types[i]=this.types[i].trim()}}else{if(!Array.isArray(r)){if(r instanceof s)return r.clone();throw new Error("String or Array expected")}this.types=r}this.conversions=[],this.varArgs=e||n||!1,this.anyType=-1!==this.types.indexOf("any")}function i(r,n){var t;if("string"==typeof r)t=""!==r?r.split(","):[];else{if(!Array.isArray(r))throw new Error("string or Array expected");t=r}this.params=new Array(t.length);for(var e=0;e<t.length;e++){var i=new s(t[e]);if(this.params[e]=i,e===t.length-1)this.varArgs=i.varArgs;else if(i.varArgs)throw new SyntaxError('Unexpected variable arguments operator "..."')}this.fn=n}function o(r,n,t){this.path=r||[],this.param=r[r.length-1]||null,this.signature=n||null,this.childs=t||[]}function a(r){var n,t,e={},s=[];for(var o in r)if(r.hasOwnProperty(o)){var a=r[o];if(n=new i(o,a),n.ignore())continue;var u=n.expand();for(t=0;t<u.length;t++){var p=u[t],h=p.toString(),f=e[h];if(f){var c=i.compare(p,f);if(0>c)e[h]=p;else if(0===c)throw new Error('Signature "'+h+'" is defined twice')}else e[h]=p}}for(h in e)e.hasOwnProperty(h)&&s.push(e[h]);for(t=0;t<s.length;t++)if(n=s[t],n.varArgs)for(var g=n.params.length-1,l=n.params[g],y=0;y<l.types.length;){if(l.conversions[y])for(var m=l.types[y],d=0;d<s.length;d++){var w=s[d],A=w.params[g];if(w!==n&&A&&v(A.types,m)&&!A.conversions[g]){l.types.splice(y,1),l.conversions.splice(y,1),y--;break}}y++}return s}function u(r){for(var n={},t=0;t<r.length;t++){var e=r[t];if(e.fn){var s=e.params.join(",");n[s]=e.fn}}return n}function p(r,n){var t,e,i,a=n.length,u=[];for(t=0;t<r.length;t++)e=r[t],e.params.length!==a||i||(i=e),void 0!=e.params[a]&&u.push(e);u.sort(function(r,n){return s.compare(r.params[a],n.params[a])});var h=[];for(t=0;t<u.length;t++){e=u[t];var f=e.params[a],c=h.filter(function(r){return r.param.overlapping(f)})[0];if(c){if(c.param.varArgs)throw new Error('Conflicting types "'+c.param+'" and "'+f+'"');c.signatures.push(e)}else h.push({param:f,signatures:[e]})}var g=new Array(h.length);for(t=0;t<h.length;t++){var v=h[t];g[t]=p(v.signatures,n.concat(v.param))}return new o(n,i,g)}function h(r){for(var n=[],t=0;r>t;t++)n[t]="arg"+t;return n}function f(r,n){var s=new e,i=a(n);if(0==i.length)throw new Error("No signatures provided");var o=p(i,[]),f=[],g=r||"",v=h(c(i));f.push("function "+g+"("+v.join(", ")+") {"),f.push(' "use strict";'),f.push(" var name = '"+g+"';"),f.push(o.toCode(s," ")),f.push("}");var l=[s.toCode(),"return "+f.join("\n")].join("\n"),y=new Function(s.name,"createError",l),m=y(s,t);return m.signatures=u(i),m}function c(r){for(var n=0,t=0;t<r.length;t++){var e=r[t].params.length;e>n&&(n=e)}return n}function g(r){for(var n in m)if(m.hasOwnProperty(n)&&"Object"!==n&&m[n](r))return n;return m.Object(r)?n:"unknown"}function v(r,n){return-1!==r.indexOf(n)}function l(r,n){if(!r.signatures)throw new TypeError("Function is no typed-function");var t;if("string"==typeof n){t=n.split(",");for(var e=0;e<t.length;e++)t[e]=t[e].trim()}else{if(!Array.isArray(n))throw new TypeError("String array or a comma separated string expected");t=n}var s=t.join(","),i=r.signatures[s];return i?i:null}function y(r,n){for(var t=g(r),e=0;e<x.conversions.length;e++){var s=x.conversions[e];if(s.from===t&&s.to===n)return s.convert(r)}throw new Error("Cannot convert from "+t+" to "+n)}e.prototype.add=function(r,n){var t=n||"fn";this.categories[t]||(this.categories[t]=[]);var e=this.categories[t].indexOf(r);return-1==e&&(e=this.categories[t].length,this.categories[t].push(r)),t+e},e.prototype.toCode=function(){var r=[],n=this.name+".categories",t=this.categories;for(var e in t)if(t.hasOwnProperty(e))for(var s=t[e],i=0;i<s.length;i++)r.push("var "+e+i+" = "+n+"['"+e+"']["+i+"];");return r.join("\n")},s.compare=function(r,n){if(r.anyType)return 1;if(n.anyType)return-1;if(v(r.types,"Object"))return 1;if(v(n.types,"Object"))return-1;if(r.hasConversions()){if(n.hasConversions()){var t,e,s;for(t=0;t<r.conversions.length;t++)if(void 0!==r.conversions[t]){e=r.conversions[t];break}for(t=0;t<n.conversions.length;t++)if(void 0!==n.conversions[t]){s=n.conversions[t];break}return x.conversions.indexOf(e)-x.conversions.indexOf(s)}return 1}return n.hasConversions()?-1:0},s.prototype.overlapping=function(r){for(var n=0;n<this.types.length;n++)if(v(r.types,this.types[n]))return!0;return!1},s.prototype.clone=function(){var r=new s(this.types.slice(),this.varArgs);return r.conversions=this.conversions.slice(),r},s.prototype.hasConversions=function(){return this.conversions.length>0},s.prototype.contains=function(r){for(var n=0;n<this.types.length;n++)if(r[this.types[n]])return!0;return!1},s.prototype.toString=function(r){for(var n=[],t={},e=0;e<this.types.length;e++){var s=this.conversions[e],i=r&&s?s.to:this.types[e];i in t||(t[i]=!0,n.push(i))}return(this.varArgs?"...":"")+n.join("|")},i.prototype.clone=function(){return new i(this.params.slice(),this.fn)},i.prototype.expand=function(){function r(t,e){if(e.length<t.params.length){var o,a,u,p=t.params[e.length];if(p.varArgs){for(a=p.clone(),o=0;o<x.conversions.length;o++)if(u=x.conversions[o],!v(p.types,u.from)&&v(p.types,u.to)){var h=a.types.length;a.types[h]=u.from,a.conversions[h]=u}r(t,e.concat(a))}else{for(o=0;o<p.types.length;o++)r(t,e.concat(new s(p.types[o])));for(o=0;o<x.conversions.length;o++)u=x.conversions[o],!v(p.types,u.from)&&v(p.types,u.to)&&(a=new s(u.from),a.conversions[0]=u,r(t,e.concat(a)))}}else n.push(new i(e,t.fn))}var n=[];return r(this,[]),n},i.compare=function(r,n){if(r.params.length>n.params.length)return 1;if(r.params.length<n.params.length)return-1;var t,e=r.params.length,i=0,o=0;for(t=0;e>t;t++)r.params[t].hasConversions()&&i++,n.params[t].hasConversions()&&o++;if(i>o)return 1;if(o>i)return-1;for(t=0;t<r.params.length;t++){var a=s.compare(r.params[t],n.params[t]);if(0!==a)return a}return 0},i.prototype.hasConversions=function(){for(var r=0;r<this.params.length;r++)if(this.params[r].hasConversions())return!0;return!1},i.prototype.ignore=function(){for(var r={},n=0;n<x.ignore.length;n++)r[x.ignore[n]]=!0;for(n=0;n<this.params.length;n++)if(this.params[n].contains(r))return!0;return!1},i.prototype.toCode=function(r,n){for(var t=[],e=new Array(this.params.length),s=0;s<this.params.length;s++){var i=this.params[s],o=i.conversions[0];e[s]=i.varArgs?"varArgs":o?r.add(o.convert,"convert")+"(arg"+s+")":"arg"+s}var a=this.fn?r.add(this.fn,"signature"):void 0;return a?n+"return "+a+"("+e.join(", ")+"); // signature: "+this.params.join(", "):t.join("\n")},i.prototype.toString=function(){return this.params.join(", ")},o.prototype.toCode=function(r,t,e){var s=[];if(this.param){var i=this.path.length-1,o=this.param.conversions[0],a="// type: "+(o?o.from+" (convert to "+o.to+")":this.param);if(this.param.varArgs)if(this.param.anyType)s.push(t+"if (arguments.length > "+i+") {"),s.push(t+" var varArgs = [];"),s.push(t+" for (var i = "+i+"; i < arguments.length; i++) {"),s.push(t+" varArgs.push(arguments[i]);"),s.push(t+" }"),s.push(this.signature.toCode(r,t+" ")),s.push(t+"}");else{for(var u=function(t,e){for(var s=new Array(t.length),i=0;i<t.length;i++)s[i]=r.add(n(t[i]),"test")+"("+e+")";return s.join(" || ")}.bind(this),p=this.param.types,h=[],f=0;f<p.length;f++)void 0===this.param.conversions[f]&&h.push(p[f]);s.push(t+"if ("+u(p,"arg"+i)+") { "+a),s.push(t+" var varArgs = [arg"+i+"];"),s.push(t+" for (var i = "+(i+1)+"; i < arguments.length; i++) {"),s.push(t+" if ("+u(h,"arguments[i]")+") {"),s.push(t+" varArgs.push(arguments[i]);");for(var f=0;f<p.length;f++){var c=this.param.conversions[f];if(c){var g=r.add(n(p[f]),"test"),v=r.add(c.convert,"convert");s.push(t+" }"),s.push(t+" else if ("+g+"(arguments[i])) {"),s.push(t+" varArgs.push("+v+"(arguments[i]));")}}s.push(t+" } else {"),s.push(t+" throw createError(name, arguments.length, i, arguments[i], '"+p.join(",")+"');"),s.push(t+" }"),s.push(t+" }"),s.push(this.signature.toCode(r,t+" ")),s.push(t+"}")}else if(this.param.anyType)s.push(t+"// type: any"),s.push(this._innerCode(r,t,e));else{var l=this.param.types[0],g="any"!==l?r.add(n(l),"test"):null;s.push(t+"if ("+g+"(arg"+i+")) { "+a),s.push(this._innerCode(r,t+" ",e)),s.push(t+"}")}}else s.push(this._innerCode(r,t,e));return s.join("\n")},o.prototype._innerCode=function(r,n,t){var e,s=[];this.signature&&(s.push(n+"if (arguments.length === "+this.path.length+") {"),s.push(this.signature.toCode(r,n+" ")),s.push(n+"}"));var i;for(e=0;e<this.childs.length;e++)if(this.childs[e].param.anyType){i=this.childs[e];break}for(e=0;e<this.childs.length;e++)s.push(this.childs[e].toCode(r,n,i));t&&!this.param.anyType&&s.push(t.toCode(r,n,i));var o=this._exceptions(r,n);return o&&s.push(o),s.join("\n")},o.prototype._exceptions=function(r,n){var t=this.path.length;if(0===this.childs.length)return[n+"if (arguments.length > "+t+") {",n+" throw createError(name, arguments.length, "+t+", arguments["+t+"]);",n+"}"].join("\n");for(var e={},s=[],i=0;i<this.childs.length;i++){var o=this.childs[i];if(o.param)for(var a=0;a<o.param.types.length;a++){var u=o.param.types[a];u in e||(e[u]=!0,s.push(u))}}return n+"throw createError(name, arguments.length, "+t+", arguments["+t+"], '"+s.join(",")+"');"};var m={"null":function(r){return null===r},undefined:function(r){return void 0===r},"boolean":function(r){return"boolean"==typeof r},number:function(r){return"number"==typeof r},string:function(r){return"string"==typeof r},"function":function(r){return"function"==typeof r},Array:function(r){return Array.isArray(r)},Date:function(r){return r instanceof Date},RegExp:function(r){return r instanceof RegExp},Object:function(r){return"object"==typeof r}},d={},w=[],A=[],x={config:d,types:m,conversions:w,ignore:A};return x=f("typed",{Object:function(r){return f(null,r)},"string, Object":f,"string, function":function(r,n){var t={};return t[r]=n,f(n.name||null,t)},"string, string, function":function(r,n,t){var e={};return e[n]=t,f(r,e)},"...function":function(r){for(var n,t="",e={},s=0;s<r.length;s++){var i=r[s];if("object"!=typeof i.signatures)throw n=new TypeError("Function is no typed-function (index: "+s+")"),n.data={index:s},n;for(var o in i.signatures)if(i.signatures.hasOwnProperty(o)){if(e.hasOwnProperty(o))throw n=new Error('Signature "'+o+'" is defined twice'),n.data={signature:o},n;e[o]=i.signatures[o]}if(""!=i.name)if(""==t)t=i.name;else if(t!=i.name)throw n=new Error("Function names do not match (expected: "+t+", actual: "+i.name+")"),n.data={actual:i.name,expected:t},n}return f(t,e)}}),x.config=d,x.types=m,x.conversions=w,x.ignore=A,x.create=r,x.find=l,x.convert=y,x}return r()});
"use strict";!function(r){"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?module.exports=r():window.typed=r()}(function(){function r(){function n(r){var n=x.types[r];if(!n){var t;for(var e in x.types)if(x.types.hasOwnProperty(e)&&e.toLowerCase()==r.toLowerCase()){t=e;break}throw new Error('Unknown type "'+r+'"'+(t?'. Did you mean "'+t+'"?':""))}return n}function t(r,n,t,e,s){var i,o=g(e),a=s?s.split(","):null,u=r||"unnamed",p=a&&v(a,"any"),h={fn:r,index:t,actual:e,expected:a};i=a?n>t&&!p?"Unexpected type of argument in function "+u+" (expected: "+a.join(" or ")+", actual: "+o+", index: "+t+")":"Too few arguments in function "+u+" (expected: "+a.join(" or ")+", index: "+t+")":"Too many arguments in function "+u+" (expected: "+t+", actual: "+n+")";var f=new TypeError(i);return f.data=h,f}function e(r){this.name=r||"refs",this.categories={}}function s(r,n){if("string"==typeof r){var t=r.trim(),e="..."===t.substr(0,3);if(e&&(t=t.substr(3)),""===t)this.types=["any"];else{this.types=t.split("|");for(var i=0;i<this.types.length;i++)this.types[i]=this.types[i].trim()}}else{if(!Array.isArray(r)){if(r instanceof s)return r.clone();throw new Error("String or Array expected")}this.types=r}this.conversions=[],this.varArgs=e||n||!1,this.anyType=-1!==this.types.indexOf("any")}function i(r,n){var t;if("string"==typeof r)t=""!==r?r.split(","):[];else{if(!Array.isArray(r))throw new Error("string or Array expected");t=r}this.params=new Array(t.length);for(var e=0;e<t.length;e++){var i=new s(t[e]);if(this.params[e]=i,e===t.length-1)this.varArgs=i.varArgs;else if(i.varArgs)throw new SyntaxError('Unexpected variable arguments operator "..."')}this.fn=n}function o(r,n,t){this.path=r||[],this.param=r[r.length-1]||null,this.signature=n||null,this.childs=t||[]}function a(r){var n,t,e={},s=[];for(var o in r)if(r.hasOwnProperty(o)){var a=r[o];if(n=new i(o,a),n.ignore())continue;var u=n.expand();for(t=0;t<u.length;t++){var p=u[t],h=p.toString(),f=e[h];if(f){var c=i.compare(p,f);if(0>c)e[h]=p;else if(0===c)throw new Error('Signature "'+h+'" is defined twice')}else e[h]=p}}for(h in e)e.hasOwnProperty(h)&&s.push(e[h]);for(t=0;t<s.length;t++)if(n=s[t],n.varArgs)for(var g=n.params.length-1,l=n.params[g],y=0;y<l.types.length;){if(l.conversions[y])for(var m=l.types[y],d=0;d<s.length;d++){var w=s[d],A=w.params[g];if(w!==n&&A&&v(A.types,m)&&!A.conversions[g]){l.types.splice(y,1),l.conversions.splice(y,1),y--;break}}y++}return s}function u(r){for(var n={},t=0;t<r.length;t++){var e=r[t];if(e.fn){var s=e.params.join(",");n[s]=e.fn}}return n}function p(r,n){var t,e,i,a=n.length,u=[];for(t=0;t<r.length;t++)e=r[t],e.params.length!==a||i||(i=e),void 0!=e.params[a]&&u.push(e);u.sort(function(r,n){return s.compare(r.params[a],n.params[a])});var h=[];for(t=0;t<u.length;t++){e=u[t];var f=e.params[a],c=h.filter(function(r){return r.param.overlapping(f)})[0];if(c){if(c.param.varArgs)throw new Error('Conflicting types "'+c.param+'" and "'+f+'"');c.signatures.push(e)}else h.push({param:f,signatures:[e]})}var g=new Array(h.length);for(t=0;t<h.length;t++){var v=h[t];g[t]=p(v.signatures,n.concat(v.param))}return new o(n,i,g)}function h(r){for(var n=[],t=0;r>t;t++)n[t]="arg"+t;return n}function f(r,n){var s=new e,i=a(n);if(0==i.length)throw new Error("No signatures provided");var o=p(i,[]),f=[],g=r||"",v=h(c(i));f.push("function "+g+"("+v.join(", ")+") {"),f.push(' "use strict";'),f.push(" var name = '"+g+"';"),f.push(o.toCode(s," ")),f.push("}");var l=[s.toCode(),"return "+f.join("\n")].join("\n"),y=new Function(s.name,"createError",l),m=y(s,t);return m.signatures=u(i),m}function c(r){for(var n=0,t=0;t<r.length;t++){var e=r[t].params.length;e>n&&(n=e)}return n}function g(r){for(var n in m)if(m.hasOwnProperty(n)&&"Object"!==n&&m[n](r))return n;return m.Object(r)?n:"unknown"}function v(r,n){return-1!==r.indexOf(n)}function l(r,n){if(!r.signatures)throw new TypeError("Function is no typed-function");var t;if("string"==typeof n){t=n.split(",");for(var e=0;e<t.length;e++)t[e]=t[e].trim()}else{if(!Array.isArray(n))throw new TypeError("String array or a comma separated string expected");t=n}var s=t.join(","),i=r.signatures[s];return i?i:null}function y(r,n){var t=g(r);if(n===t)return r;for(var e=0;e<x.conversions.length;e++){var s=x.conversions[e];if(s.from===t&&s.to===n)return s.convert(r)}throw new Error("Cannot convert from "+t+" to "+n)}e.prototype.add=function(r,n){var t=n||"fn";this.categories[t]||(this.categories[t]=[]);var e=this.categories[t].indexOf(r);return-1==e&&(e=this.categories[t].length,this.categories[t].push(r)),t+e},e.prototype.toCode=function(){var r=[],n=this.name+".categories",t=this.categories;for(var e in t)if(t.hasOwnProperty(e))for(var s=t[e],i=0;i<s.length;i++)r.push("var "+e+i+" = "+n+"['"+e+"']["+i+"];");return r.join("\n")},s.compare=function(r,n){if(r.anyType)return 1;if(n.anyType)return-1;if(v(r.types,"Object"))return 1;if(v(n.types,"Object"))return-1;if(r.hasConversions()){if(n.hasConversions()){var t,e,s;for(t=0;t<r.conversions.length;t++)if(void 0!==r.conversions[t]){e=r.conversions[t];break}for(t=0;t<n.conversions.length;t++)if(void 0!==n.conversions[t]){s=n.conversions[t];break}return x.conversions.indexOf(e)-x.conversions.indexOf(s)}return 1}return n.hasConversions()?-1:0},s.prototype.overlapping=function(r){for(var n=0;n<this.types.length;n++)if(v(r.types,this.types[n]))return!0;return!1},s.prototype.clone=function(){var r=new s(this.types.slice(),this.varArgs);return r.conversions=this.conversions.slice(),r},s.prototype.hasConversions=function(){return this.conversions.length>0},s.prototype.contains=function(r){for(var n=0;n<this.types.length;n++)if(r[this.types[n]])return!0;return!1},s.prototype.toString=function(r){for(var n=[],t={},e=0;e<this.types.length;e++){var s=this.conversions[e],i=r&&s?s.to:this.types[e];i in t||(t[i]=!0,n.push(i))}return(this.varArgs?"...":"")+n.join("|")},i.prototype.clone=function(){return new i(this.params.slice(),this.fn)},i.prototype.expand=function(){function r(t,e){if(e.length<t.params.length){var o,a,u,p=t.params[e.length];if(p.varArgs){for(a=p.clone(),o=0;o<x.conversions.length;o++)if(u=x.conversions[o],!v(p.types,u.from)&&v(p.types,u.to)){var h=a.types.length;a.types[h]=u.from,a.conversions[h]=u}r(t,e.concat(a))}else{for(o=0;o<p.types.length;o++)r(t,e.concat(new s(p.types[o])));for(o=0;o<x.conversions.length;o++)u=x.conversions[o],!v(p.types,u.from)&&v(p.types,u.to)&&(a=new s(u.from),a.conversions[0]=u,r(t,e.concat(a)))}}else n.push(new i(e,t.fn))}var n=[];return r(this,[]),n},i.compare=function(r,n){if(r.params.length>n.params.length)return 1;if(r.params.length<n.params.length)return-1;var t,e=r.params.length,i=0,o=0;for(t=0;e>t;t++)r.params[t].hasConversions()&&i++,n.params[t].hasConversions()&&o++;if(i>o)return 1;if(o>i)return-1;for(t=0;t<r.params.length;t++){var a=s.compare(r.params[t],n.params[t]);if(0!==a)return a}return 0},i.prototype.hasConversions=function(){for(var r=0;r<this.params.length;r++)if(this.params[r].hasConversions())return!0;return!1},i.prototype.ignore=function(){for(var r={},n=0;n<x.ignore.length;n++)r[x.ignore[n]]=!0;for(n=0;n<this.params.length;n++)if(this.params[n].contains(r))return!0;return!1},i.prototype.toCode=function(r,n){for(var t=[],e=new Array(this.params.length),s=0;s<this.params.length;s++){var i=this.params[s],o=i.conversions[0];i.varArgs?e[s]="varArgs":o?e[s]=r.add(o.convert,"convert")+"(arg"+s+")":e[s]="arg"+s}var a=this.fn?r.add(this.fn,"signature"):void 0;return a?n+"return "+a+"("+e.join(", ")+"); // signature: "+this.params.join(", "):t.join("\n")},i.prototype.toString=function(){return this.params.join(", ")},o.prototype.toCode=function(r,t,e){var s=[];if(this.param){var i=this.path.length-1,o=this.param.conversions[0],a="// type: "+(o?o.from+" (convert to "+o.to+")":this.param);if(this.param.varArgs)if(this.param.anyType)s.push(t+"if (arguments.length > "+i+") {"),s.push(t+" var varArgs = [];"),s.push(t+" for (var i = "+i+"; i < arguments.length; i++) {"),s.push(t+" varArgs.push(arguments[i]);"),s.push(t+" }"),s.push(this.signature.toCode(r,t+" ")),s.push(t+"}");else{for(var u=function(t,e){for(var s=new Array(t.length),i=0;i<t.length;i++)s[i]=r.add(n(t[i]),"test")+"("+e+")";return s.join(" || ")}.bind(this),p=this.param.types,h=[],f=0;f<p.length;f++)void 0===this.param.conversions[f]&&h.push(p[f]);s.push(t+"if ("+u(p,"arg"+i)+") { "+a),s.push(t+" var varArgs = [arg"+i+"];"),s.push(t+" for (var i = "+(i+1)+"; i < arguments.length; i++) {"),s.push(t+" if ("+u(h,"arguments[i]")+") {"),s.push(t+" varArgs.push(arguments[i]);");for(var f=0;f<p.length;f++){var c=this.param.conversions[f];if(c){var g=r.add(n(p[f]),"test"),v=r.add(c.convert,"convert");s.push(t+" }"),s.push(t+" else if ("+g+"(arguments[i])) {"),s.push(t+" varArgs.push("+v+"(arguments[i]));")}}s.push(t+" } else {"),s.push(t+" throw createError(name, arguments.length, i, arguments[i], '"+p.join(",")+"');"),s.push(t+" }"),s.push(t+" }"),s.push(this.signature.toCode(r,t+" ")),s.push(t+"}")}else if(this.param.anyType)s.push(t+"// type: any"),s.push(this._innerCode(r,t,e));else{var l=this.param.types[0],g="any"!==l?r.add(n(l),"test"):null;s.push(t+"if ("+g+"(arg"+i+")) { "+a),s.push(this._innerCode(r,t+" ",e)),s.push(t+"}")}}else s.push(this._innerCode(r,t,e));return s.join("\n")},o.prototype._innerCode=function(r,n,t){var e,s=[];this.signature&&(s.push(n+"if (arguments.length === "+this.path.length+") {"),s.push(this.signature.toCode(r,n+" ")),s.push(n+"}"));var i;for(e=0;e<this.childs.length;e++)if(this.childs[e].param.anyType){i=this.childs[e];break}for(e=0;e<this.childs.length;e++)s.push(this.childs[e].toCode(r,n,i));t&&!this.param.anyType&&s.push(t.toCode(r,n,i));var o=this._exceptions(r,n);return o&&s.push(o),s.join("\n")},o.prototype._exceptions=function(r,n){var t=this.path.length;if(0===this.childs.length)return[n+"if (arguments.length > "+t+") {",n+" throw createError(name, arguments.length, "+t+", arguments["+t+"]);",n+"}"].join("\n");for(var e={},s=[],i=0;i<this.childs.length;i++){var o=this.childs[i];if(o.param)for(var a=0;a<o.param.types.length;a++){var u=o.param.types[a];u in e||(e[u]=!0,s.push(u))}}return n+"throw createError(name, arguments.length, "+t+", arguments["+t+"], '"+s.join(",")+"');"};var m={"null":function(r){return null===r},undefined:function(r){return void 0===r},"boolean":function(r){return"boolean"==typeof r},number:function(r){return"number"==typeof r},string:function(r){return"string"==typeof r},"function":function(r){return"function"==typeof r},Array:function(r){return Array.isArray(r)},Date:function(r){return r instanceof Date},RegExp:function(r){return r instanceof RegExp},Object:function(r){return"object"==typeof r}},d={},w=[],A=[],x={config:d,types:m,conversions:w,ignore:A};return x=f("typed",{Object:function(r){return f(null,r)},"string, Object":f,"string, function":function(r,n){var t={};return t[r]=n,f(n.name||null,t)},"string, string, function":function(r,n,t){var e={};return e[n]=t,f(r,e)},"...function":function(r){for(var n,t="",e={},s=0;s<r.length;s++){var i=r[s];if("object"!=typeof i.signatures)throw n=new TypeError("Function is no typed-function (index: "+s+")"),n.data={index:s},n;for(var o in i.signatures)if(i.signatures.hasOwnProperty(o)){if(e.hasOwnProperty(o))throw n=new Error('Signature "'+o+'" is defined twice'),n.data={signature:o},n;e[o]=i.signatures[o]}if(""!=i.name)if(""==t)t=i.name;else if(t!=i.name)throw n=new Error("Function names do not match (expected: "+t+", actual: "+i.name+")"),n.data={actual:i.name,expected:t},n}return f(t,e)}}),x.config=d,x.types=m,x.conversions=w,x.ignore=A,x.create=r,x.find=l,x.convert=y,x}return r()});
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