-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
/
sequelize.types.ts
56 lines (52 loc) · 1.92 KB
/
sequelize.types.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import type { PartialOrUndefined, StrictRequiredBy } from '@sequelize/utils';
import type { Connection } from './abstract-dialect/connection-manager.js';
import type {
AbstractDialect,
ConnectionOptions,
DialectOptions,
} from './abstract-dialect/dialect.js';
import type { ReplicationPoolOptions } from './abstract-dialect/replication-pool.js';
import type {
EphemeralSequelizeOptions,
PersistedSequelizeOptions,
} from './sequelize.internals.js';
import type { NormalizedReplicationOptions } from './sequelize.js';
/**
* Connection Pool options.
*
* Used in {@link SequelizeCoreOptions.pool}
*/
export interface PoolOptions<Dialect extends AbstractDialect>
extends PartialOrUndefined<ReplicationPoolOptions> {
/**
* A function that validates a connection.
*
* If provided, this overrides the default connection validation built in to sequelize.
*/
validate?: ((connection?: Connection<Dialect>) => boolean) | undefined;
}
/**
* Options of the {@link Sequelize} constructor used by the core library.
*
* See {@link Options} for the full list of options, including those dialect-specific.
*/
interface SequelizeCoreOptions<Dialect extends AbstractDialect>
extends PersistedSequelizeOptions<Dialect>,
EphemeralSequelizeOptions<Dialect> {}
/**
* Options for the constructor of the {@link Sequelize} main class.
*/
export type Options<Dialect extends AbstractDialect> = SequelizeCoreOptions<Dialect> &
Omit<DialectOptions<Dialect>, keyof SequelizeCoreOptions<AbstractDialect>> &
Omit<ConnectionOptions<Dialect>, keyof SequelizeCoreOptions<AbstractDialect>>;
export type NormalizedOptions<Dialect extends AbstractDialect> = StrictRequiredBy<
Omit<PersistedSequelizeOptions<Dialect>, 'replication'>,
| 'transactionType'
| 'noTypeValidation'
| 'timezone'
| 'disableClsTransactions'
| 'defaultTransactionNestMode'
| 'defaultTimestampPrecision'
> & {
replication: NormalizedReplicationOptions<Dialect>;
};