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

parameter

Package Overview
Dependencies
Maintainers
1
Versions
29
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

parameter - npm Package Compare versions

Comparing version 0.0.1 to 0.0.2

benchmark.js

5

History.md
0.0.2 / 2013-06-26
==================
* improve performance
0.0.1 / 2013-06-26

@@ -3,0 +8,0 @@ ==================

96

lib/parameter.js

@@ -35,3 +35,3 @@ /*!

function checkType(valueType, expectType) {
function checkType(value, valueType, expectType) {
if (valueType !== expectType) {

@@ -42,2 +42,4 @@ return 'expect ' + expectType + ', but got ' + valueType;

function noop() {}
var TYPES = {

@@ -99,52 +101,62 @@

var valueType = typeof value;
var ruleType = typeof rule;
var checkFunction = null;
// cache for performance
var expectType = rule.__expectType;
var checkFunction = rule.__checkFunction;
var errorMsg = null;
if (ruleType === 'string') {
// key: 'number'
value = valueType;
valueType = rule;
checkFunction = checkType;
} else if (ruleType === 'function') {
// key: function () {}
checkFunction = rule;
} else {
if (rule.type) {
ruleType = typeof rule.type;
if (ruleType === 'string') {
// key: { type: 'string' }
value = valueType;
valueType = rule.type;
checkFunction = checkType;
} else if (ruleType === 'function') {
// key: { type: function () {} }
checkFunction = rule.type;
if (!checkFunction) {
var ruleType = typeof rule;
if (ruleType === 'string') {
// key: 'number'
expectType = rule;
checkFunction = checkType;
} else if (ruleType === 'function') {
// key: function () {}
checkFunction = rule;
} else {
if (rule.type) {
ruleType = typeof rule.type;
if (ruleType === 'string') {
// key: { type: 'string' }
expectType = rule.type;
checkFunction = checkType;
} else if (ruleType === 'function') {
// key: { type: function () {} }
checkFunction = rule.type;
}
} else if (rule.isDate) {
// key: { isDate: true }
checkFunction = exports.Date;
} else if (rule.isId ) {
// key: { isId: true }
checkFunction = exports.Id;
} else if (rule.isDateTime ) {
// key: { isDateTime: true }
checkFunction = exports.DateTime;
}
} else if (rule.isDate) {
// key: { isDate: true }
checkFunction = exports.Date;
} else if (rule.isId ) {
// key: { isId: true }
checkFunction = exports.Id;
} else if (rule.isDateTime ) {
// key: { isDateTime: true }
checkFunction = exports.DateTime;
}
}
if (checkFunction) {
errorMsg = checkFunction(value, valueType);
if (errorMsg) {
errors.push({
resource: resourceName,
field: key,
message: errorMsg,
code: 'invalid'
});
if (!checkFunction) {
checkFunction = noop;
}
rules[key] = {
__checkFunction: checkFunction,
__expectType: expectType,
};
}
errorMsg = checkFunction(value, valueType, expectType);
if (errorMsg) {
errors.push({
resource: resourceName,
field: key,
message: errorMsg,
code: 'invalid'
});
}
}

@@ -151,0 +163,0 @@

{
"name": "parameter",
"version": "0.0.1",
"version": "0.0.2",
"description": "A parameter verify tools.",

@@ -22,2 +22,3 @@ "main": "index.js",

"devDependencies": {
"benchmark": "*",
"should": "*",

@@ -24,0 +25,0 @@ "blanket": "*",

@@ -100,2 +100,25 @@ parameter [![Build Status](https://secure.travis-ci.org/fengmk2/parameter.png)](http://travis-ci.org/fengmk2/parameter) [![Coverage Status](https://coveralls.io/repos/fengmk2/parameter/badge.png)](https://coveralls.io/r/fengmk2/parameter)

## Performance
```bash
$ node benchmark.js
rules pass: {id: p.Id} x 6,023,826 ops/sec ±0.87% (99 runs sampled)
rules pass: {id: {type: p.Id}} x 4,207,059 ops/sec ±0.92% (98 runs sampled)
rules pass: {id: {idId: true}} x 4,101,462 ops/sec ±5.28% (92 runs sampled)
rules pass: {date: p.Date} x 3,421,468 ops/sec ±1.19% (92 runs sampled)
rules pass: {date: {type: p.Date}} x 3,577,401 ops/sec ±1.71% (92 runs sampled)
rules pass: {date: {isDate: true}} x 3,893,278 ops/sec ±0.84% (100 runs sampled)
rules pass: {time: p.DateTime} x 3,705,611 ops/sec ±2.07% (93 runs sampled)
rules pass: {time: {type: p.DateTime}} x 3,734,069 ops/sec ±1.96% (93 runs sampled)
rules pass: {time: {isDateTime: true}} x 3,739,484 ops/sec ±1.68% (92 runs sampled)
rules pass: {age: "number"} x 6,098,496 ops/sec ±0.74% (95 runs sampled)
rules pass: {age: {type: "number"}} x 6,391,140 ops/sec ±0.93% (92 runs sampled)
rules pass: {nick: "string"} x 5,995,432 ops/sec ±0.70% (98 runs sampled)
rules pass: {nick: {type: "string"}} x 6,215,072 ops/sec ±1.04% (96 runs sampled)
rules pass: {not_exists: "string", required: false} x 1,175,066 ops/sec ±1.39% (98 runs sampled)
Fastest is rules pass: {age: {type: "number"}}
```
## License

@@ -102,0 +125,0 @@

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