0.2.7 • Published 12 months ago

@joktec/mysql v0.2.7

Weekly downloads
-
License
MIT
Repository
github
Last release
12 months ago

Table of Contents

  1. Introduction
  2. Installation
  3. Getting Started
  4. Reference
  5. Contributing

Introduction

This library provides an easy-to-use interface for working with MySQL databases in NestJS applications. It is built on top of the popular sequelize and sequelize-typescript libraries, and provides a set of convenient abstractions for working with these libraries.

Installation

To install this library, use either npm or yarn:

npm install @joktec/mysql
# or
yarn add @joktec/mysql

Getting Started

Configuration

To use this library, you must first provide the necessary configuration. This can be done by creating a config.yml file in your application's root directory, with the following content:

mysql:
  host: localhost
  port: 3306
  user: my_user
  password: my_pass
  database: my_database

Replace the values with your actual database connection information.

Module

Once you have provided the configuration, you can create a MysqlModule in your NestJS application:

import { CoreModule, Module } from '@joktec/core';
import { MysqlModule } from '@joktec/mysql';

@Module({
  imports: [CoreModule, MysqlModule],
})
export class AppModule {}

Service

You can then use the MysqlService to interact with the database:

import { Injectable } from '@joktec/core';
import { MysqlService } from '@joktec/mysql';

@Injectable()
export class UserService {
  constructor(private readonly mysqlService: MysqlService) {}

  async getUsers() {
    const users = await this.mysqlService.getModel(User).findAll();
    return users;
  }
}

Repository

Define a Model

You can define a model using @joktec/mysql (based on interface of sequelize-typescript):

import { Table, Column, Model } from '@joktec/mysql';

@Table
export class User extends Model<User> {
  @Column
  name: string;

  @Column
  email: string;
}

Define a Repository

You can create a repository for your model by extending the MysqlRepository class and providing the model type as a generic argument:

import { Injectable } from '@nestjs/common';
import { MysqlRepository } from '@joktec/mysql';
import { User } from './user.model';

@Injectable()
export class UserRepository extends MysqlRepository<User> {}

Using Repository in Service

You can then use the repository in your service:

import { Injectable } from '@nestjs/common';
import { UserRepository } from './user.repository';

@Injectable()
export class UserService {
  constructor(private readonly userRepository: UserRepository) {}

  async getUsers() {
    const users = await this.userRepository.findAll();
    return users;
  }
}

Reference

sequelize

sequelize-typescript

Contributing

Contributions to @joktec/mysql are welcome. If you would like to contribute, please fork the repository, make your changes, and submit a pull request.

Please make sure to update tests as appropriate.

0.0.197

1 year ago

0.0.196

1 year ago

0.0.195

1 year ago

0.0.194

1 year ago

0.0.198

1 year ago

0.0.193

1 year ago

0.0.192

1 year ago

0.0.191

1 year ago

0.0.190

1 year ago

0.0.189

2 years ago

0.0.188

2 years ago

0.0.187

2 years ago

0.1.0

1 year ago

0.1.2

1 year ago

0.1.1

1 year ago

0.1.4

1 year ago

0.1.3

1 year ago

0.1.5

1 year ago

0.2.1

1 year ago

0.2.0

1 year ago

0.2.7

12 months ago

0.2.6

12 months ago

0.2.3

1 year ago

0.2.2

1 year ago

0.2.5

1 year ago

0.2.4

1 year ago

0.0.186

2 years ago

0.0.185

2 years ago

0.0.184

2 years ago

0.0.175

2 years ago

0.0.174

2 years ago

0.0.173

2 years ago

0.0.172

2 years ago

0.0.179

2 years ago

0.0.178

2 years ago

0.0.177

2 years ago

0.0.176

2 years ago

0.0.171

2 years ago

0.0.170

2 years ago

0.0.183

2 years ago

0.0.182

2 years ago

0.0.181

2 years ago

0.0.180

2 years ago

0.0.159

2 years ago

0.0.158

2 years ago

0.0.156

2 years ago

0.0.155

2 years ago

0.0.164

2 years ago

0.0.163

2 years ago

0.0.162

2 years ago

0.0.161

2 years ago

0.0.168

2 years ago

0.0.167

2 years ago

0.0.166

2 years ago

0.0.165

2 years ago

0.0.160

2 years ago

0.0.153

2 years ago

0.0.152

2 years ago

0.0.151

2 years ago

0.0.150

2 years ago

0.0.154

2 years ago

0.0.116

2 years ago

0.0.118

2 years ago

0.0.128

2 years ago

0.0.127

2 years ago

0.0.126

2 years ago

0.0.125

2 years ago

0.0.129

2 years ago

0.0.120

2 years ago

0.0.124

2 years ago

0.0.123

2 years ago

0.0.121

2 years ago

0.0.139

2 years ago

0.0.138

2 years ago

0.0.137

2 years ago

0.0.136

2 years ago

0.0.131

2 years ago

0.0.130

2 years ago

0.0.135

2 years ago

0.0.134

2 years ago

0.0.133

2 years ago

0.0.132

2 years ago

0.0.149

2 years ago

0.0.148

2 years ago

0.0.147

2 years ago

0.0.142

2 years ago

0.0.141

2 years ago

0.0.140

2 years ago

0.0.146

2 years ago

0.0.145

2 years ago

0.0.144

2 years ago

0.0.143

2 years ago

0.0.115

2 years ago

0.0.114

2 years ago

0.0.113

2 years ago

0.0.112

2 years ago

0.0.111

2 years ago

0.0.108

2 years ago

0.0.107

2 years ago

0.0.105

2 years ago

0.0.104

2 years ago

0.0.103

2 years ago

0.0.84

3 years ago

0.0.85

3 years ago

0.0.86

3 years ago

0.0.87

3 years ago

0.0.88

3 years ago

0.0.89

3 years ago

0.0.80

3 years ago

0.0.81

3 years ago

0.0.82

3 years ago

0.0.83

3 years ago

0.0.73

3 years ago

0.0.74

3 years ago

0.0.75

3 years ago

0.0.76

3 years ago

0.0.77

3 years ago

0.0.78

3 years ago

0.0.79

3 years ago

0.0.71

3 years ago

0.0.72

3 years ago

0.0.102

3 years ago

0.0.101

3 years ago

0.0.100

3 years ago

0.0.95

3 years ago

0.0.96

3 years ago

0.0.97

3 years ago

0.0.98

3 years ago

0.0.99

3 years ago

0.0.90

3 years ago

0.0.91

3 years ago

0.0.92

3 years ago

0.0.93

3 years ago

0.0.94

3 years ago

0.0.70

3 years ago

0.0.69

3 years ago

0.0.62

3 years ago

0.0.63

3 years ago

0.0.64

3 years ago

0.0.65

3 years ago

0.0.66

3 years ago

0.0.67

3 years ago

0.0.68

3 years ago

0.0.60

3 years ago

0.0.59

3 years ago

0.0.51

3 years ago

0.0.53

3 years ago

0.0.54

3 years ago

0.0.55

3 years ago

0.0.56

3 years ago

0.0.57

3 years ago

0.0.58

3 years ago

0.0.50

3 years ago

0.0.48

3 years ago

0.0.47

3 years ago

0.0.46

3 years ago

0.0.45

3 years ago

0.0.44

3 years ago

0.0.43

3 years ago

0.0.42

3 years ago

0.0.41

3 years ago

0.0.40

3 years ago

0.0.39

3 years ago

0.0.38

3 years ago

0.0.37

3 years ago

0.0.36

3 years ago

0.0.35

3 years ago

0.0.34

3 years ago

0.0.33

3 years ago

0.0.32

3 years ago

0.0.31

3 years ago

0.0.30

3 years ago

0.0.29

3 years ago

0.0.28

3 years ago

0.0.26

3 years ago

0.0.25

3 years ago

0.0.24

3 years ago

0.0.23

3 years ago

0.0.22

3 years ago

0.0.21

3 years ago

0.0.20

3 years ago

0.0.19

3 years ago

0.0.18

3 years ago

0.0.16

3 years ago

0.0.15

3 years ago

0.0.14

3 years ago

0.0.13

3 years ago

0.0.12

3 years ago

0.0.11

3 years ago

0.0.10

3 years ago

0.0.9

3 years ago

0.0.8

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago