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

mongo-schema

Package Overview
Dependencies
Maintainers
1
Versions
24
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mongo-schema - npm Package Compare versions

Comparing version 0.1.3 to 0.1.4

57

lib/mongo-schema.js

@@ -30,3 +30,5 @@ var MongoSchema = function () {

this.check = function (data, schema, update) {
var newData = {};
var errors = [];
var re;
for (var key in schema) {

@@ -38,9 +40,9 @@ if (!schema.hasOwnProperty(key)) continue;

if (isArray(properties)) {
if (!isArray(value)) {
data[key] = [];
continue;
} else {
newData[key] = [];
if (isArray(value)) {
for (var i in value) {
if (!value.hasOwnProperty(i)) continue;
errors = errors.concat(self.check(value[i], properties[0]));
re = self.check(value[i], properties[0]);
newData[key][i] = re.data;
errors = errors.concat(re.errors);
}

@@ -50,4 +52,5 @@ }

if(!isUndefined(value)){
var errs = self.check(value, properties);
errors = errors.concat(errs);
re = self.check(value, properties);
newData[key] = re.data;
errors = errors.concat(re.errors);
}

@@ -63,3 +66,3 @@ } else {

if (isNull(value) && update && !properties.required) {
data[key] = undefined;
newData[key] = undefined;
continue;

@@ -84,3 +87,2 @@ }

errors.push(key + " - minLength " + properties.minLength + " not fulfilled on '" + value + "'");
delete data[key];
continue;

@@ -96,3 +98,2 @@ }

errors.push(key + " - regex " + properties.regex + " not fulfilled '" + value + "'");
delete data[key];
continue;

@@ -102,6 +103,4 @@ }

if (value === undefined) {
delete data[key];
} else {
data[key] = value;
if (!isUndefined(value)) {
newData[key] = value;
}

@@ -121,3 +120,2 @@ continue;

errors.push(key + " - required not set on '" + value + "'");
delete data[key];
continue;

@@ -128,3 +126,2 @@ }

errors.push(key + " - min " + properties.min + " not fulfilled '" + value + "'");
delete data[key];
continue;

@@ -134,9 +131,6 @@ }

errors.push(key + " - max " + properties.max + " not fulfilled on '" + value + "'");
delete data[key];
continue;
}
if (value === undefined) {
delete data[key];
} else {
data[key] = value;
if (!isUndefined(value)) {
newData[key] = value;
}

@@ -147,9 +141,7 @@ continue;

errors.push(key + " - required not set '" + value + "'");
delete data[key];
continue;
} else if (isUndefined(value)) {
delete data[key];
continue;
}
data[key] = !!value;
newData[key] = !!value;
continue;

@@ -174,10 +166,7 @@ case 'date':

errors.push(key + " - required not set on '" + value + "'");
delete data[key];
continue;
}
if (value === undefined) {
delete data[key];
} else {
data[key] = value;
if (!isUndefined(value)) {
newData[key] = value;
}

@@ -187,3 +176,2 @@ continue;

if (typeof value !== "string" || (typeof value == "string" && value.length !== 24)) {
delete data[key];
value = undefined;

@@ -194,10 +182,7 @@ }

errors.push(key + " - required not set '" + value + "'");
delete data[key];
continue;
}
if (value === undefined) {
delete data[key];
} else {
data[key] = value;
if (!isUndefined(value)) {
newData[key] = value;
}

@@ -209,3 +194,3 @@ continue;

}
return errors;
return {errors: errors, data: newData};
};

@@ -212,0 +197,0 @@

{
"name": "mongo-schema",
"version": "0.1.3",
"version": "0.1.4",
"main": "lib/mongo-schema.js",

@@ -5,0 +5,0 @@ "description": "Basic schema for mongodb",

@@ -10,5 +10,7 @@ # mongo-schema [![Build Status](https://secure.travis-ci.org/paul-em/mongo-schema.png?branch=master)](http://travis-ci.org/paul-em/mongo-schema)

var mongoSchema = require('mongo-schema');
var errors = mongoSchema.check(yourDataToCheck, yourSchema);
if(errors.length === 0){
var re = mongoSchema.check(yourDataToCheck, yourSchema);
if(re.errors.length === 0){
// schema did not throw any errors! YEY!
console.log(re.data); // the new data that fits the schema
} else {

@@ -61,16 +63,17 @@ console.log(errors); // returns where there was an error

it("should leave only success and converted numbers and return no errors", function (done) {
var data = _.clone(numberSchemaTest);
var errs = schema.check(data, numberSchema);
assert.strictEqual(errs.length, 0);
assert.strictEqual(data.successTestNumber1, 123);
assert.strictEqual(data.successTestNumber2, 123);
assert.strictEqual(data.convertTestNumber, 456);
assert.strictEqual(data.hasOwnProperty("failTestNumber1"), false);
assert.strictEqual(data.hasOwnProperty("failTestNumber2"), false);
assert.strictEqual(data.hasOwnProperty("failTestNumber3"), false);
assert.strictEqual(data.hasOwnProperty("failTestNumber4"), false);
assert.strictEqual(data.hasOwnProperty("failTestNumber5"), false);
assert.strictEqual(data.hasOwnProperty("failTestNumber6"), false);
assert.strictEqual(data.hasOwnProperty("failTestNumber7"), false);
done();
var re = schema.check(numberSchemaTest, numberSchema);
var data = re.data;
var errs = re.errors;
assert.strictEqual(errs.length, 0);
assert.strictEqual(data.successTestNumber1, 123);
assert.strictEqual(data.successTestNumber2, 123);
assert.strictEqual(data.convertTestNumber, 456);
assert.strictEqual(data.hasOwnProperty("failTestNumber1"), false);
assert.strictEqual(data.hasOwnProperty("failTestNumber2"), false);
assert.strictEqual(data.hasOwnProperty("failTestNumber3"), false);
assert.strictEqual(data.hasOwnProperty("failTestNumber4"), false);
assert.strictEqual(data.hasOwnProperty("failTestNumber5"), false);
assert.strictEqual(data.hasOwnProperty("failTestNumber6"), false);
assert.strictEqual(data.hasOwnProperty("failTestNumber7"), false);
done();
});

@@ -77,0 +80,0 @@ ```

@@ -60,4 +60,5 @@ var schema = require("../lib/mongo-schema.js");

it("should leave only success and converted numbers and return no errors", function (done) {
var data = _.clone(numberSchemaTest);
var errs = schema.check(data, numberSchema);
var re = schema.check(numberSchemaTest, numberSchema);
var data = re.data;
var errs = re.errors;
assert.strictEqual(errs.length, 0);

@@ -78,4 +79,5 @@ assert.strictEqual(data.successTestNumber1, 123);

it("should return errors where and tell me required fields shoule be set", function (done) {
var data = _.clone(numberSchemaTest);
var errs = schema.check(data, numberSchemaReq);
var re = schema.check(numberSchemaTest, numberSchemaReq);
var data = re.data;
var errs = re.errors;
assert.strictEqual(errs.length, 7);

@@ -97,4 +99,5 @@ assert.equal(errs[0].toLowerCase().indexOf("required") !== -1, true);

it("should return min max errors", function (done) {
var data = _.clone(numberSchemaTest);
var errs = schema.check(data, numberSchemaMinMax);
var re = schema.check(numberSchemaTest, numberSchemaMinMax);
var data = re.data;
var errs = re.errors;
assert.strictEqual(errs.length, 2);

@@ -168,4 +171,5 @@ assert.equal(errs[0].toLowerCase().indexOf("min") !== -1, true);

it("should leave only success and converted strings and return no errors", function (done) {
var data = _.clone(stringSchemaTest);
var errs = schema.check(data, stringSchema);
var re = schema.check(stringSchemaTest, stringSchema);
var data = re.data;
var errs = re.errors;
assert.strictEqual(errs.length, 0);

@@ -185,4 +189,5 @@ assert.strictEqual(data.successTestString1, "Hellow");

it("should return errors where and tell me required fields shoule be set", function (done) {
var data = _.clone(stringSchemaTest);
var errs = schema.check(data, stringSchemaReq);
var re = schema.check(stringSchemaTest, stringSchemaReq);
var data = re.data;
var errs = re.errors;
assert.strictEqual(errs.length, 6);

@@ -203,4 +208,5 @@ assert.equal(errs[0].toLowerCase().indexOf("required") !== -1, true);

it("should return min max errors", function (done) {
var data = _.clone(stringSchemaTest);
var errs = schema.check(data, stringSchemaMinMax);
var re = schema.check(stringSchemaTest, stringSchemaMinMax);
var data = re.data;
var errs = re.errors;
assert.strictEqual(errs.length, 2);

@@ -216,4 +222,5 @@ assert.equal(errs[0].toLowerCase().indexOf("minlength") !== -1, true);

it("should correctly detect regexes", function (done) {
var data = _.clone(stringSchemaTest);
var errs = schema.check(data, stringSchemaRegex);
var re = schema.check(stringSchemaTest, stringSchemaRegex);
var data = re.data;
var errs = re.errors;
assert.strictEqual(errs.length, 1);

@@ -270,4 +277,5 @@ assert.equal(errs[0].toLowerCase().indexOf("regex") !== -1, true);

it("should leave only success and converted booleans and return no errors", function (done) {
var data = _.clone(boolSchemaTest);
var errs = schema.check(data, boolSchema);
var re = schema.check(boolSchemaTest, boolSchema);
var data = re.data;
var errs = re.errors;
assert.strictEqual(errs.length, 0);

@@ -289,4 +297,5 @@ assert.strictEqual(data.successTestBool1, true);

it("should leave only success and converted booleans and return no errors", function (done) {
var data = _.clone(boolSchemaTest);
var errs = schema.check(data, boolSchemaReq);
var re = schema.check(boolSchemaTest, boolSchemaReq);
var data = re.data;
var errs = re.errors;
assert.strictEqual(errs.length, 2);

@@ -344,4 +353,5 @@ assert.strictEqual(errs[0].toLowerCase().indexOf("required") !== -1, true);

it("should leave only success and converted objectId and return no errors", function (done) {
var data = _.clone(objectIdSchemaTest);
var errs = schema.check(data, objectIdSchema);
var re = schema.check(objectIdSchemaTest, objectIdSchema);
var data = re.data;
var errs = re.errors;
assert.strictEqual(errs.length, 0);

@@ -361,4 +371,5 @@ assert.strictEqual(data.successTestObjectId1, "529c3acb044bdcc93700006f");

it("should leave only success and converted objectIdeans and return no errors", function (done) {
var data = _.clone(objectIdSchemaTest);
var errs = schema.check(data, objectIdSchemaReq);
var re = schema.check(objectIdSchemaTest, objectIdSchemaReq);
var data = re.data;
var errs = re.errors;
assert.strictEqual(errs.length, 7);

@@ -426,4 +437,5 @@ assert.strictEqual(errs[0].toLowerCase().indexOf("required") !== -1, true);

it("should leave only success and converted date and return no errors", function (done) {
var data = _.clone(dateSchemaTest);
var errs = schema.check(data, dateSchema);
var re = schema.check(dateSchemaTest, dateSchema);
var data = re.data;
var errs = re.errors;
assert.strictEqual(errs.length, 0);

@@ -447,4 +459,5 @@ assert.strictEqual(data.successTestDate1, 1390528951);

it("should leave only success and converted date and return no errors", function (done) {
var data = _.clone(dateSchemaTest);
var errs = schema.check(data, dateSchemaReq);
var re = schema.check(dateSchemaTest, dateSchemaReq);
var data = re.data;
var errs = re.errors;
assert.strictEqual(errs.length, 7);

@@ -506,4 +519,5 @@ assert.strictEqual(errs[0].toLowerCase().indexOf("required") !== -1, true);

it("should leave only success and converted date and return no errors", function (done) {
var data = _.clone(collectionSchemaTest);
var errs = schema.check(data, collectionSchema);
var re = schema.check(collectionSchemaTest, collectionSchema);
var data = re.data;
var errs = re.errors;
assert.strictEqual(errs.length, 0);

@@ -520,4 +534,5 @@ assert.strictEqual(data.collection[0].test, 123);

it("should leave only success and converted date and return no errors", function (done) {
var data = _.clone(collectionSchemaTest);
var errs = schema.check(data, collectionSchemaReq);
var re = schema.check(collectionSchemaTest, collectionSchemaReq);
var data = re.data;
var errs = re.errors;
assert.strictEqual(errs.length, 2);

@@ -557,4 +572,5 @@ assert.strictEqual(errs[0].toLowerCase().indexOf("required") !== -1, true);

it("should ignore wrong formats and return no errors", function (done) {
var data = _.clone(updateSchemaTest);
var errs = schema.check(data, updateSchema, true);
var re = schema.check(updateSchemaTest, updateSchema, true);
var data = re.data;
var errs = re.errors;
assert.strictEqual(errs.length, 0);

@@ -569,4 +585,5 @@ assert.strictEqual(data.deleteTest, undefined);

it("should warn me of wrong formats for ", function (done) {
var data = _.clone(updateSchemaTest);
var errs = schema.check(data, updateSchemaReq, true);
var re = schema.check(updateSchemaTest, updateSchemaReq, true);
var data = re.data;
var errs = re.errors;
assert.strictEqual(errs.length, 3);

@@ -573,0 +590,0 @@ assert.strictEqual(errs[0].toLowerCase().indexOf("required") !== -1, true);

@@ -51,3 +51,3 @@ module.exports = exports = {

"seq": [],
"source": null,
"source": undefined,
"sys": 1,

@@ -54,0 +54,0 @@ "tOffset": -60,

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