# sequelize-typescript-connection

> Configure to connect to database by Sequelize.

Latest version **1.0.1** (published 2021-08-29) · MIT license · 0 weekly downloads

## Install

```sh
npm install sequelize-typescript-connection
pnpm add sequelize-typescript-connection
yarn add sequelize-typescript-connection
bun add sequelize-typescript-connection
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.1 |
| Published | 2021-08-29 |
| First published | 2021-08-29 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 7 |
| Unpacked size | 9.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | nghia |
| Maintainers | nqnghia285 |
| Keywords | sequelize-typescript-connecttion, connect, sequelize |

## Links

- npm: https://www.npmjs.com/package/sequelize-typescript-connection
- Repository: https://github.com/nqnghia285/sequelize-typescript-connecttion
- Homepage: https://github.com/nqnghia285/sequelize-typescript-connecttion.git#readme
- npm.io page: https://npm.io/package/sequelize-typescript-connection

## Dependencies (7)

- [dotenv](https://npm.io/package/dotenv.md) ^8.2.0
- [sequelize](https://npm.io/package/sequelize.md) ^6.6.2
- [@types/node](https://npm.io/package/@types/node.md) ^15.9.0
- [@types/dotenv](https://npm.io/package/@types/dotenv.md) ^8.2.0
- [@types/validator](https://npm.io/package/@types/validator.md) ^13.1.3
- [reflect-metadata](https://npm.io/package/reflect-metadata.md) ^0.1.13
- [sequelize-typescript](https://npm.io/package/sequelize-typescript.md) ^2.1.0

## Alternatives

- [@openai/codex-sdk](https://npm.io/package/@openai/codex-sdk.md) — 731.4K weekly downloads
- [babel-plugin-transform-react-jsx](https://npm.io/package/babel-plugin-transform-react-jsx.md) — 565.0K weekly downloads
- [babel-helper-remove-or-void](https://npm.io/package/babel-helper-remove-or-void.md) — 508.5K weekly downloads
- [@pnpm/store-controller-types](https://npm.io/package/@pnpm/store-controller-types.md) — 186.9K weekly downloads
- [react-native-signature-canvas](https://npm.io/package/react-native-signature-canvas.md) — 155.6K weekly downloads

## Recent versions

- 1.0.1 (latest) — 2021-08-29

## README

# Sequelize Connection [![Build Status](https://github.com/Links2004/arduinoWebSockets/workflows/CI/badge.svg?branch=master)](https://github.com/nqnghia285/sequelize-typescript-connection.git)

Sequelize Connection support us to connect to database.

### Functions:

```typescript
/**
 * @method connectWithSSL Connect to batabase by ssl
 * @param params IConnectionProductionMode
 * @returns Sequelize
 */
function connectWithSSL(params: IConnectionProductionMode): Sequelize;
```

```typescript
/**
 * @method connectWithOptions Connect to database with options
 * @param params IConnectionDevelopmentMode
 * @returns Sequelize
 */
function connectWithOptions(params: IConnectionDevelopmentMode): Sequelize;
```

```typescript
/**
 * @method connect Create a connection to database by Sequelize
 * @param params IConnection
 * @returns Sequelize
 */
function connect(params: IConnection): Sequelize;
```

```typescript
/**
 * @method dialectConvert Convert a string to Dialect
 * @param dialect string | undefined
 * @returns Dialect
 */
function dialectConvert(dialect: string | undefined): Dialect;
```

### Example:

```typescript
// ES6
// Connection.ts
import { connect, connectWithSSL, connectWithOptions } from "sequelize-typescript-connection";
import { Sequelize } from "sequelize-typescript";
import { ConnectionDevelopmentENVType, ConnectionProductionENVType, ConnectionType } from "sequelize-typescript-connection/dist/@types";

// Variables of production environment
const databaseURL = process.env.DATABASE_URL || "your-database-url";
const models = ["path of models folder"];

const connection: IConnectionProductionMode = {
    databaseURL: databaseURL,
    models: models,
};

const sequelize = connectWithSSL(connection);

......
// Variables of development environment
const models = ["path of models folder"];
const database = process.env.DATABASE || "your-database";
const user = process.env.USER || "postgres";
const password = process.env.PASSWORD || "your-password ";
const host = process.env.HOST || "0.0.0.0";
const dialect = process.env.DIALECT || "postgres";
const databasePort = process.env.DATABASE_PORT || "5432";

const connection: IConnectionDevelopmentMode = {
    models: models,
    database: database,
    username: user,
    password: password,
    dialect: dialect,
    host: host,
    port: databasePort,
};

const sequelize = connectWithOptions(connection);


......
// Variables of production environment
const models = ["path of models folder"];
const databaseURL = process.env.DATABASE_URL || "your-database-url";

// Variables of development environment
const database = process.env.DATABASE || "your-database";
const user = process.env.USER || "postgres";
const password = process.env.PASSWORD || "your-password ";
const host = process.env.HOST || "0.0.0.0";
const dialect = process.env.DIALECT || "postgres";
const databasePort = process.env.DATABASE_PORT || "5432";


const connection: IConnection = {
    models: models,
    databaseURL: databaseURL,
    database: database,
    username: user,
    password: password,
    dialect: dialect,
    host: host,
    port: databasePort
};

const sequelize = connect(connection);

......
// User.model.ts
import { Sequelize, Table, Column, Model } from "sequelize-typescript";
import { SMALLINT, STRING }

// Define model
@Table
class User extends Model<User> {
   @Column({type: SMALLINT, primaryKey: true, autoIncrement: true })
   public id!: number;

   @Column({type: STRING, allowNull: false, validate: { isEmail: true, len: [10, 30] } })
   public username!: string;

   @Column({type: STRING, allowNull: false, validate: { len: [10, 20] } })
   public password!: string;
}
export default User;
......
// DefineAssociationAndSync.ts
// Sync models in database
(async () => {
    await sequelize.sync();
    await sequelize.models.User.create({ username: "admin@gmail.com", password: "acbxyz" });
})();
```

---
_Source: https://npm.io/package/sequelize-typescript-connection · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
