objection
Advanced tools
Comparing version 2.0.8 to 2.0.10
@@ -94,3 +94,8 @@ 'use strict'; | ||
$relatedQuery(relationName, trx) { | ||
return this.constructor.relatedQuery(relationName, trx).for(this); | ||
return relatedQuery({ | ||
modelClass: this.constructor, | ||
relationName, | ||
transaction: trx, | ||
alwaysReturnArray: false | ||
}).for(this); | ||
} | ||
@@ -546,47 +551,8 @@ | ||
static relatedQuery(relationName, trx) { | ||
const relation = this.getRelation(relationName); | ||
const RelatedModelClass = relation.relatedModelClass; | ||
return RelatedModelClass.query(trx) | ||
.findOperationFactory(builder => { | ||
const isSubQuery = !builder.for(); | ||
const owner = isSubQuery | ||
? RelationOwner.createParentReference(builder, relation) | ||
: RelationOwner.create(builder.for()); | ||
const operation = relation.find(builder, owner); | ||
operation.assignResultToOwner = this.getRelatedFindQueryMutates(); | ||
operation.alwaysReturnArray = !owner.isModels; | ||
operation.alias = isSubQuery ? relation.name : null; | ||
return operation; | ||
}) | ||
.insertOperationFactory(builder => { | ||
const owner = RelationOwner.create(builder.for()); | ||
const operation = relation.insert(builder, owner); | ||
operation.assignResultToOwner = this.getRelatedInsertQueryMutates(); | ||
return operation; | ||
}) | ||
.updateOperationFactory(builder => { | ||
const owner = RelationOwner.create(builder.for()); | ||
return relation.update(builder, owner); | ||
}) | ||
.patchOperationFactory(builder => { | ||
const owner = RelationOwner.create(builder.for()); | ||
return relation.patch(builder, owner); | ||
}) | ||
.deleteOperationFactory(builder => { | ||
const owner = RelationOwner.create(builder.for()); | ||
return relation.delete(builder, owner); | ||
}) | ||
.relateOperationFactory(builder => { | ||
const owner = RelationOwner.create(builder.for()); | ||
return relation.relate(builder, owner); | ||
}) | ||
.unrelateOperationFactory(builder => { | ||
const owner = RelationOwner.create(builder.for()); | ||
return relation.unrelate(builder, owner); | ||
}); | ||
return relatedQuery({ | ||
modelClass: this, | ||
relationName, | ||
transaction: trx, | ||
alwaysReturnArray: true | ||
}); | ||
} | ||
@@ -839,2 +805,50 @@ | ||
function relatedQuery({ modelClass, relationName, transaction, alwaysReturnArray } = {}) { | ||
const relation = modelClass.getRelation(relationName); | ||
const RelatedModelClass = relation.relatedModelClass; | ||
return RelatedModelClass.query(transaction) | ||
.findOperationFactory(builder => { | ||
const isSubQuery = !builder.for(); | ||
const owner = isSubQuery | ||
? RelationOwner.createParentReference(builder, relation) | ||
: RelationOwner.create(builder.for()); | ||
const operation = relation.find(builder, owner); | ||
operation.assignResultToOwner = modelClass.getRelatedFindQueryMutates(); | ||
operation.alwaysReturnArray = alwaysReturnArray; | ||
operation.alias = isSubQuery ? relation.name : null; | ||
return operation; | ||
}) | ||
.insertOperationFactory(builder => { | ||
const owner = RelationOwner.create(builder.for()); | ||
const operation = relation.insert(builder, owner); | ||
operation.assignResultToOwner = modelClass.getRelatedInsertQueryMutates(); | ||
return operation; | ||
}) | ||
.updateOperationFactory(builder => { | ||
const owner = RelationOwner.create(builder.for()); | ||
return relation.update(builder, owner); | ||
}) | ||
.patchOperationFactory(builder => { | ||
const owner = RelationOwner.create(builder.for()); | ||
return relation.patch(builder, owner); | ||
}) | ||
.deleteOperationFactory(builder => { | ||
const owner = RelationOwner.create(builder.for()); | ||
return relation.delete(builder, owner); | ||
}) | ||
.relateOperationFactory(builder => { | ||
const owner = RelationOwner.create(builder.for()); | ||
return relation.relate(builder, owner); | ||
}) | ||
.unrelateOperationFactory(builder => { | ||
const owner = RelationOwner.create(builder.for()); | ||
return relation.unrelate(builder, owner); | ||
}); | ||
} | ||
function cachedGet(target, hiddenPropertyName, creator) { | ||
@@ -841,0 +855,0 @@ if (!target.hasOwnProperty(hiddenPropertyName)) { |
@@ -108,3 +108,3 @@ 'use strict'; | ||
} else if (Buffer.isBuffer(value)) { | ||
return value.toString('hex') | ||
return value.toString('hex'); | ||
} else if (isObject(value)) { | ||
@@ -111,0 +111,0 @@ return JSON.stringify(value); |
@@ -215,16 +215,8 @@ 'use strict'; | ||
const prop = path[0]; | ||
return obj => getValue(obj[prop]); | ||
return obj => obj[prop]; | ||
} else { | ||
return obj => getValue(get(obj, path)); | ||
return obj => get(obj, path); | ||
} | ||
} | ||
function getValue(value) { | ||
if (isObject(value) && !Buffer.isBuffer(value) && value.toString !== Object.prototype.toString) { | ||
return value.toString(); | ||
} else { | ||
return value; | ||
} | ||
} | ||
function createSetter(path) { | ||
@@ -231,0 +223,0 @@ if (path.length === 1) { |
{ | ||
"name": "objection", | ||
"version": "2.0.8", | ||
"version": "2.0.10", | ||
"description": "An SQL-friendly ORM for Node.js", | ||
@@ -5,0 +5,0 @@ "main": "lib/objection.js", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
632768
19684