You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'd like to add some custom functions to knex which I have to use all the time but i'm finding it hard to get them to work.
They are:
knex.selectOne
knex.selectZeroOrOne
Instead of doing first, selectOne does not apply a limit and instead throws an error if it gets more than one record back. This allows the author to catch particular errors particular early.
I started with:
knex.client.QueryBuilder.prototype.selectOne = function (columns) {
const args = new Array(arguments.length);
for (let i = 0; i < args.length; i++) {
args[i] = arguments[i];
}
this.select.apply(this, args);
this._method = 'first';
//this.limit(1);
return this;
}
but obviously the check on how many records get returned has to happen after the results have come back
Would you be able to point me in the right direction?
The text was updated successfully, but these errors were encountered:
Just FYI This code won't work in 0.12, you'll need to require knex/lib/query/builder directly to modify that prototype.
For 1.0 I'll plan to define a standard way to customize the query builder chain like you're trying to do above, and with the addition of "hooks", you'll be able to easily setup post-result transforms.
@tgriesser I have waiting for this feature for while and start modifying the QueryBuilder prototype. It will be so great to have an interface to extend the query builder.
I'd like to add some custom functions to knex which I have to use all the time but i'm finding it hard to get them to work.
They are:
knex.selectOne
knex.selectZeroOrOne
Instead of doing first, selectOne does not apply a limit and instead throws an error if it gets more than one record back. This allows the author to catch particular errors particular early.
I started with:
but obviously the check on how many records get returned has to happen after the results have come back
Would you be able to point me in the right direction?
The text was updated successfully, but these errors were encountered: