sequelize-typescript-include-models
TypeScript icon, indicating that this package has built-in type declarations

3.0.2 • Public • Published

Include Models Helper for Sequelize 🚀

npm version License: MIT

Include Models Helper es un paquete que simplifica la creación de consultas de inclusión de modelos relacionados en Sequelize y TypeScript. Permite configurar fácilmente las relaciones entre tus modelos y generar automáticamente las cláusulas include en tus consultas, haciendo que tu código sea más limpio y fácil de mantener.

📦 Instalación

Usa npm o yarn para instalar Include Models Helper en tu proyecto:

npm install sequelize-typescript-include-models

# or
yarn add sequelize-typescript-include-models

📚 Uso

Primero, importa setModels e includeModels desde el paquete sequelize-typescript-include-models:

import { setModels, includeModels } from 'sequelize-typescript-include-models';

Luego, configura tus modelos utilizando la función setModels. Asegúrate de hacer esto solo una vez en tu aplicación:

import { Member } from "../app/backend/models/Member";
import { Company } from "../app/backend/models/Company";
import { Proyect } from "../app/backend/models/Proyect";
// ...

setModels({
  Member,
  Company,
  Proyect,
  // ...
});

Ahora puedes utilizar la función includeModels para generar cláusulas include en tus consultas de Sequelize:

const relations = [
  'Company',
  'ProyectRequest.Team',
  'ProyectRequirements.ProyectRequirementsFiles',
  'ProjectStatus.Status'
];

const proyect: Proyect | null = await Proyect.findByPk(proyectId, {
  include: includeModels(relations),
});

📖 Ejemplo

Digamos que tienes los siguientes modelos en tu aplicación:

User Post Comment Category Supongamos que quieres recuperar un Post junto con su autor (User), los comentarios (Comment) y la categoría (Category) a la que pertenece. Para hacer esto, puedes utilizar includeModels de la siguiente manera:

const relations = [
  'User', // Autor del Post
  'Comment', // Comentarios del Post
  'Category' // Categoría del Post
];

const post = await Post.findByPk(postId, {
  include: includeModels(relations),
});

⚙️ Configuración avanzada

Puedes pasar condiciones adicionales para filtrar modelos relacionados utilizando la sintaxis de dos puntos (:) seguida de una cadena JSON:

const relations = [
  'Comment:{"status": "approved"}'
];

const post = await Post.findByPk(postId, {
  include: includeModels(relations),
});

Esto incluirá solo los comentarios que tengan un estado "aprobado" en el Post.

📄 Licencia

Este proyecto está licenciado bajo la licencia MIT - consulta el archivo LICENSE para obtener más detalles.

Package Sidebar

Install

npm i sequelize-typescript-include-models

Weekly Downloads

15

Version

3.0.2

License

MIT

Unpacked Size

7.28 kB

Total Files

10

Last publish

Collaborators

  • kuramabiju