Skip to content

Commit 4ff3868

Browse files
authored
Move QueryBuilder and KnexTimeoutError into knex namespace so that they are accessible at a runtime (knex#4358)
1 parent 0ab482b commit 4ff3868

File tree

4 files changed

+24
-26
lines changed

4 files changed

+24
-26
lines changed

lib/knex-builder/Knex.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ const makeKnex = require('./make-knex');
66
const { KnexTimeoutError } = require('../util/timeout');
77
const { resolveConfig } = require('./internal/config-resolver');
88

9-
function Knex(config) {
9+
function knex(config) {
1010
const { resolvedConfig, Dialect } = resolveConfig(...arguments);
1111

1212
const newKnex = makeKnex(new Dialect(resolvedConfig));
@@ -17,15 +17,15 @@ function Knex(config) {
1717
}
1818

1919
// Expose Client on the main Knex namespace.
20-
Knex.Client = Client;
20+
knex.Client = Client;
2121

22-
Knex.KnexTimeoutError = KnexTimeoutError;
22+
knex.KnexTimeoutError = KnexTimeoutError;
2323

24-
Knex.QueryBuilder = {
24+
knex.QueryBuilder = {
2525
extend: function (methodName, fn) {
2626
QueryBuilder.extend(methodName, fn);
2727
QueryInterface.push(methodName);
2828
},
2929
};
3030

31-
module.exports = Knex;
31+
module.exports = knex;

test-tsd/querybuilder.test-d.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Knex, knex } from '../types';
1+
import { knex } from '../types';
22
import { expectType } from 'tsd';
33
import { clientConfig } from './common';
44

@@ -18,7 +18,7 @@ declare module '../types' {
1818
}
1919
}
2020

21-
Knex.QueryBuilder.extend('customSelect', function (value: number) {
21+
knex.QueryBuilder.extend('customSelect', function (value: number) {
2222
return this.select(this.client.raw(`${value} as value`));
2323
});
2424

test-tsd/types.test-d.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import knexDefault, { Knex, knex } from '../types';
55
import * as knexStar from '../types';
66
import knexCjsImport = require('../');
77
import QueryBuilder = Knex.QueryBuilder;
8-
import KnexTimeoutError = Knex.KnexTimeoutError;
8+
import KnexTimeoutError = knex.KnexTimeoutError;
99

1010
const knexCjs = require('../knex');
1111
const { knex: knexCjsNamed } = require('../knex');
@@ -16,8 +16,8 @@ expectType<Knex<any, unknown[]>>(knexStar.default({}));
1616
expectType<Knex<any, unknown[]>>(knexStar.knex({}));
1717
expectType<Knex<any, unknown[]>>(knexCjsImport.default({}));
1818
expectType<Knex<any, unknown[]>>(knexCjsImport.knex({}));
19-
expectType<KnexTimeoutError>(new KnexTimeoutError());
20-
expectType<KnexTimeoutError>(new KnexTimeoutError());
19+
expectType<KnexTimeoutError>(new knex.KnexTimeoutError());
20+
expectType<KnexTimeoutError>(new knex.KnexTimeoutError());
2121

2222
// eslint-disable-next-line
2323
expectType<any>(knexCjs({}));

types/index.d.ts

+14-16
Original file line numberDiff line numberDiff line change
@@ -397,6 +397,20 @@ export declare function knex<TRecord extends {} = any, TResult = unknown[]>(
397397
config: Knex.Config | string
398398
): Knex<TRecord, TResult>;
399399

400+
export declare namespace knex {
401+
class QueryBuilder {
402+
static extend(
403+
methodName: string,
404+
fn: <TRecord extends {} = any, TResult = unknown[]>(
405+
this: Knex.QueryBuilder<TRecord, TResult>,
406+
...args: any[]
407+
) => Knex.QueryBuilder<TRecord, TResult>
408+
): void;
409+
}
410+
411+
export class KnexTimeoutError extends Error {}
412+
}
413+
400414
export declare namespace Knex {
401415
//
402416
// Utility Types
@@ -2350,10 +2364,6 @@ interface MsSqlConnectionConfigBase {
23502364
constraintName?: string;
23512365
}
23522366

2353-
//
2354-
// Clients
2355-
//
2356-
23572367
class Client extends events.EventEmitter {
23582368
constructor(config: Config);
23592369
config: Config;
@@ -2408,18 +2418,6 @@ interface MsSqlConnectionConfigBase {
24082418
assertCanCancelQuery(): void;
24092419
cancelQuery(): void;
24102420
}
2411-
2412-
class QueryBuilder {
2413-
static extend(
2414-
methodName: string,
2415-
fn: <TRecord extends {} = any, TResult = unknown[]>(
2416-
this: QueryBuilder<TRecord, TResult>,
2417-
...args: any[]
2418-
) => QueryBuilder<TRecord, TResult>
2419-
): void;
2420-
}
2421-
2422-
export class KnexTimeoutError extends Error {}
24232421
}
24242422

24252423
export default knex;

0 commit comments

Comments
 (0)