1.0.1 • Published 5 months ago

kd-sequelize-connector v1.0.1

Weekly downloads
-
License
ISC
Repository
-
Last release
5 months ago

Sequelize Connector

sequelize-connector is an npm package that simplifies the process of connecting to a Sequelize database like 'mysql' | 'postgres' | 'mariadb' | 'mssql' | 'db2' | 'oracle' | 'snowflake'. It provides an easy-to-use interface for setting up and managing database connections.

Installation

To install the package, use npm:

npm install sequelize-connector

Usage

Setting Up the Connection

First, import the sequelize-connector package and configure your database connection:

import path from 'path';
import { SequelizeConnector } from 'sequelize-connector';
import { SequelizeConnectorOptions } from 'sequelize-connector/dist/types';

const sqConf: SequelizeConnectorOptions = {
    dbConfig: {
        dbDialect: 'mysql',
        dbHost: 'localhost',
        dbName: 'todo',
        dbUser: 'root',
        dbPassword: 'root',
        dbLogging: false,
    },
    modelsPath: path.join(__dirname, '../models'),
};
const connector = new SequelizeConnector(sqConf);
const dbInstance = connector.getSequelizeInstance();
const getModels = connector.getModels.bind(connector);
const getModel = connector.getModel.bind(connector);
const closeDBConnection = connector.closeDBConnection.bind(connector);

export { dbInstance, getModels, getModel, closeDBConnection };

Defining Models

Define your models using Sequelize:

import { Sequelize, DataTypes } from 'sequelize';

export default (sequelize: Sequelize, dataTypes: typeof DataTypes) => {
    const User = sequelize.define(
        'Users',
        {
            id: {
                type: dataTypes.INTEGER,
                primaryKey: true,
                autoIncrement: true,
            },
            name: {
                type: dataTypes.STRING,
                allowNull: false,
            },
            email: {
                type: dataTypes.STRING,
                allowNull: false,
                unique: true,
            },
        },
        {
            tableName: 'users',
            timestamps: false,
        },
    );

    return User;
};

Syncing the Database

Sync your models with the database:

sequelize.sync({ force: true }).then(() => {
    console.log('Database & tables created!');
});

Sample Code

Here's a sample code to create and retrieve data:

// Create a new user
import { getModel } from '../db/index';

await getModel('User')
    .create({
        name: 'Kartick Dey',
        email: 'kartick@kd.com',
    })
    .then((user) => {
        console.log('User created:', user.toJSON());
    });

// Retrieve all users
await getModel('User')
    .findAll()
    .then((users) => {
        console.log('All users:', JSON.stringify(users, null, 2));
    });

Available methods

    |-------------------|---|
    | getSequelizeInstance | |
    |-------------------|---|
    | Description | This function returns an instance of Sequelize, which is used to interact with the database. |
    | Parameters | None |
    | Returns | {Sequelize} An instance of Sequelize. |
    |-------------------|---|

    |-------------------|---|
    | getModels | |
    |-------------------|---|
    | Description | Retrieves all the models defined in the Sequelize instance. |
    | Parameters | None |
    | Returns | {Object} An object containing all the Sequelize models. |
    |-------------------|---|

    |-------------------|---|
    | closeDBConnection | |
    |-------------------|---|
    | Description | Closes the current database connection. |
    | Parameters | None |
    | Returns | Promise<void> - Resolves when the connection is successfully closed. |
    |-------------------|---|

Contributing

Contributions are welcome! Please open an issue or submit a pull request for any changes.

Contact

For any questions or issues, please contact kartick.dey1995@gmail.com.