@gnx-utilities/models
TypeScript icon, indicating that this package has built-in type declarations

0.2.46 • Public • Published

📝 Generics Models

Generic models is a library that allows you to create models to manage generics repository, this library is based on the Sequelizer library and also in Typegoose.

📦 Installation

npm install @gnx-utilities/models
pnpm add @gnx-utilities/models
yarn add @gnx-utilities/models
bun add @gnx-utilities/models

📖 Usage

Sequelize

import { SequelizeBaseEntity } from '@gnx-utilities/models'
import { DataTypes, Sequelize } from 'sequelize'
import { SequelizeService } from '@gnx-utilities/core'

export const sequelize = new Sequelize('test', 'postgres', 'root', {
  host: 'localhost',
  dialect: 'postgres'
})

export class User extends SequelizeBaseEntity {
  declare firstName: string
  declare lastName: string
}

User.init(
  {
    firstName: { type: DataTypes.STRING },
    lastName: { type: DataTypes.STRING }
  },
  { sequelize, modelName: 'person' } 
)

export class UserService extends SequelizeService<User> {
  constructor () {
    super(User)
  }
}

const userService = new UserService();

const user = await userService.create({ entity: { firstName: 'John', lastName: 'Doe' } });

console.log(user.firstName); // John

Typegoose

[!Warning] Typegoose needs some configuration to work properly, fallow the example below to configure it.

[!Important] On prop decorator you need to add the type of the property, if you don't do this, the library will not work properly.

import { TypegooseService } from '@gnx-utilities/core';
import { getModelForClass, prop } from '@typegoose/typegoose'
import { TypegooseBaseEntity } from '@gnx-utilities/models'

export class User extends TypegooseBaseEntity {
  @prop({ type: String })
  declare firstName: string

  @prop({ type: String })
  declare lastName: string
}

export const UserModel = getModelForClass(User)

export class UserService extends TypegooseService<User> {
  constructor () {
    super(UserModel)
  }
}

const userService = new UserService();

const user = await userService.create({ entity: { firstName: 'John', lastName: 'Doe' } });

console.log(user.firstName); // John

📝 Documentation

Documentation

🛠️ Tools

Typescript Sequelize Typegoose NodeJS MongoDB

Authors

ImRLopezAG

🔗 Links

portfolio linkedin twitter

Package Sidebar

Install

npm i @gnx-utilities/models

Weekly Downloads

1

Version

0.2.46

License

MIT

Unpacked Size

19.2 kB

Total Files

7

Last publish

Collaborators

  • imrlopez.ag