API Reference

Complete API reference for all @inceptools/db classes and methods.

DBService

The main service for managing multiple database connections.

Constructor

new DBService(config: {
  [key: string]: {
    type: SUPPORTED_DBS;
    connectionString: string;
    models?: any;
    options?: any;
    configOptions?: any;
    logging?: boolean;
  };
})

Methods

MethodDescriptionReturns
connect()Connects to all configured databasesPromise<void>
closeConnection()Closes all database connectionsPromise<void>
getService(name: string)Gets a specific database service by nameMongoService | SQLService | RedisService

Properties

The DBService instance has dynamic properties for each configured database service. For example, if you configured a MongoDB service with the key "mongodb", you can access it as dbService.mongodb.

MongoService

Service for managing MongoDB connections.

Constructor

new MongoService({
  type: SUPPORTED_DBS.MONGO_DB;
  connectionString: string;
  models?: {
    [key: string]: mongoose.Schema;
  };
  options?: mongoose.ConnectOptions;
  logging?: boolean;
})

Methods

MethodDescriptionReturns
connect()Connects to MongoDBPromise<void>
closeConnection()Closes the MongoDB connectionPromise<void>
getModel(name: string)Gets a Mongoose model by namemongoose.Model<any>
startSession()Starts a MongoDB session for transactionsPromise<mongoose.ClientSession>

Properties

PropertyDescriptionType
connectionThe Mongoose connection instancemongoose.Connection
mongooseThe Mongoose instancetypeof mongoose
migrationServiceService for managing MongoDB migrationsMongoMigrationService
[modelName]Dynamic properties for each modelmongoose.Model<any>

SQLService

Service for managing SQL database connections.

Constructor

new SQLService({
  type: SUPPORTED_DBS.SQL;
  connectionString: string;
  models?: {
    [key: string]: (sequelize: Sequelize) => any;
  };
  configOptions?: SequelizeOptions;
  logging?: boolean;
})

Methods

MethodDescriptionReturns
connect()Connects to the SQL databasePromise<void>
closeConnection()Closes the SQL database connectionPromise<void>
getModel(name: string)Gets a Sequelize model by nameany
transaction(options?: TransactionOptions)Starts a transactionPromise<Transaction>

Properties

PropertyDescriptionType
sequelizeThe Sequelize instanceSequelize
migrationServiceService for managing SQL migrationsSQLMigrationService
[modelName]Dynamic properties for each modelModel<any>

RedisService

Service for managing Redis connections.

Constructor

new RedisService({
  type: SUPPORTED_DBS.REDIS;
  connectionString: string;
  options?: RedisOptions;
  logging?: boolean;
})

Methods

MethodDescriptionReturns
connect()Connects to RedisPromise<void>
closeConnection()Closes the Redis connectionPromise<void>
get(key: string)Gets a value by keyPromise<string | null>
set(key: string, value: string, ...args: any[])Sets a key-value pairPromise<string>
del(key: string)Deletes a keyPromise<number>
exists(key: string)Checks if a key existsPromise<number>
expire(key: string, seconds: number)Sets a key's expiration timePromise<number>
incr(key: string)Increments a key's valuePromise<number>
decr(key: string)Decrements a key's valuePromise<number>

The RedisService also supports all other Redis commands through direct method calls. For example, you can use redisService.hset(), redisService.lpush(), etc.

Migration Services

Services for managing database migrations.

MongoMigrationService

MethodDescriptionReturns
init()Initializes the migration servicePromise<void>
generateMigration(name: string)Generates a new migration filePromise<string>
migrate()Applies pending migrationsPromise<void>
rollback()Rolls back the last applied migrationPromise<void>
status()Gets the migration statusPromise<MigrationStatus>

SQLMigrationService

MethodDescriptionReturns
init()Initializes the migration servicePromise<void>
generateMigration(name: string)Generates a new migration filePromise<string>
migrate()Applies pending migrationsPromise<void>
rollback()Rolls back the last applied migrationPromise<void>
status()Gets the migration statusPromise<MigrationStatus>

Enums

Enums used in @inceptools/db.

SUPPORTED_DBS

enum SUPPORTED_DBS {
  MONGO_DB = "mongodb",
  SQL = "sql",
  REDIS = "redis",
}

Interfaces

Interfaces used in @inceptools/db.

MigrationStatus

interface MigrationStatus {
  applied: string[];
  pending: string[];
}