+1
-1
| { | ||
| "name": "typeodm", | ||
| "version": "0.0.5", | ||
| "version": "0.0.6", | ||
| "description": "ODM for MongoDB used Typescript", | ||
@@ -5,0 +5,0 @@ "license": "Apache-2.0", |
@@ -42,22 +42,22 @@ /** | ||
| return !!dbObject[field.name]; | ||
| }).forEach(function (fieldForThisKey) { | ||
| if (dbObject[fieldForThisKey.name] instanceof Array) { | ||
| }).forEach(function (field) { | ||
| if (dbObject[field.name] instanceof Array && field.isTypeDocument()) { | ||
| (function () { | ||
| var embedTypeSchema = _this.connection.getSchema(fieldForThisKey.type); | ||
| var subCondition = _this.getSubFieldCondition(joinFields, fieldForThisKey.name); | ||
| var promises = dbObject[fieldForThisKey.name].map(function (i) { | ||
| var embedTypeSchema = _this.connection.getSchema(field.type); | ||
| var subCondition = _this.getSubFieldCondition(joinFields, field.name); | ||
| var promises = dbObject[field.name].map(function (i) { | ||
| return _this.hydrate(embedTypeSchema, i, subCondition); | ||
| }); | ||
| allPromises.push(Promise.all(promises).then(function (subDocuments) { | ||
| document[fieldForThisKey.propertyName] = subDocuments; | ||
| document[field.propertyName] = subDocuments; | ||
| })); | ||
| })(); | ||
| } else if (dbObject[fieldForThisKey.name] instanceof Object) { | ||
| var embedTypeSchema = _this.connection.getSchema(fieldForThisKey.type); | ||
| var subCondition = _this.getSubFieldCondition(joinFields, fieldForThisKey.name); | ||
| allPromises.push(_this.hydrate(embedTypeSchema, dbObject[fieldForThisKey.name], subCondition).then(function (subDocument) { | ||
| document[fieldForThisKey.propertyName] = subDocument; | ||
| } else if (dbObject[field.name] instanceof Object && field.isTypeDocument()) { | ||
| var embedTypeSchema = _this.connection.getSchema(field.type); | ||
| var subCondition = _this.getSubFieldCondition(joinFields, field.name); | ||
| allPromises.push(_this.hydrate(embedTypeSchema, dbObject[field.name], subCondition).then(function (subDocument) { | ||
| document[field.propertyName] = subDocument; | ||
| })); | ||
| } else { | ||
| document[fieldForThisKey.propertyName] = dbObject[fieldForThisKey.name]; | ||
| document[field.propertyName] = dbObject[field.name]; | ||
| } | ||
@@ -64,0 +64,0 @@ }); |
@@ -30,3 +30,3 @@ /** | ||
| return array.filter(function (item) { | ||
| return _this.validate(item, type); | ||
| return !_this.validate(item, type); | ||
| }).length === 0; | ||
@@ -33,0 +33,0 @@ } |
@@ -86,3 +86,2 @@ "use strict"; | ||
| if (dbField.isArray && document[propertyName] instanceof Array) { | ||
| if (_DbObjectFieldValidator.DbObjectFieldValidator.isTypeSupported(dbField.type) && _DbObjectFieldValidator.DbObjectFieldValidator.validateArray(document[propertyName], dbField.type)) throw new _exceptionWrongFieldTypeInDocumentException.WrongFieldTypeInDocumentException(dbField.type + '[]', propertyName, document); | ||
| if (dbField.isTypeDocument()) { | ||
@@ -93,2 +92,4 @@ dbObject[propertyName] = document[propertyName].map(function (item) { | ||
| } else { | ||
| if (!_DbObjectFieldValidator.DbObjectFieldValidator.isTypeSupported(dbField.type)) throw new _exceptionFieldTypeNotSupportedException.FieldTypeNotSupportedException(dbField.type + '[]', propertyName, document); | ||
| if (!_DbObjectFieldValidator.DbObjectFieldValidator.validateArray(document[propertyName], dbField.type)) throw new _exceptionWrongFieldTypeInDocumentException.WrongFieldTypeInDocumentException(dbField.type + '[]', propertyName, document); | ||
| dbObject[propertyName] = document[propertyName]; | ||
@@ -100,5 +101,3 @@ } | ||
| if (!_DbObjectFieldValidator.DbObjectFieldValidator.isTypeSupported(dbField.type)) throw new _exceptionFieldTypeNotSupportedException.FieldTypeNotSupportedException(dbField.type, propertyName, document); | ||
| if (!_DbObjectFieldValidator.DbObjectFieldValidator.validate(document[propertyName], dbField.type)) { | ||
| throw new _exceptionWrongFieldTypeInDocumentException.WrongFieldTypeInDocumentException(dbField.type, propertyName, document); | ||
| } | ||
| if (!_DbObjectFieldValidator.DbObjectFieldValidator.validate(document[propertyName], dbField.type)) throw new _exceptionWrongFieldTypeInDocumentException.WrongFieldTypeInDocumentException(dbField.type, propertyName, document); | ||
| dbObject[dbField.name] = document[propertyName]; | ||
@@ -105,0 +104,0 @@ } |
+2
-2
@@ -498,4 +498,4 @@ declare module 'typeodm/connection/ConnectionOptions' { | ||
| static isTypeSupported(type: string): boolean; | ||
| static validateArray(array: any[], type: string | Function): boolean; | ||
| static validate(value: any, type: string | Function): boolean; | ||
| static validateArray(array: any[], type: string): boolean; | ||
| static validate(value: any, type: string): boolean; | ||
| } | ||
@@ -502,0 +502,0 @@ |
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
268187
0.01%5211
-0.04%