Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

120
Views
¿Cuál es el mejor método (si lo hay) para importar un conjunto de funciones en un módulo?

Estoy tratando de resolver esto:

Tengo un módulo, digamos "usuarios", para el cual tengo un servicio con operaciones básicas de base de datos (buscar, encontrarMuchos, guardar, etc.).

Quiero crear más módulos que tengan las mismas operaciones básicas de base de datos, pero no quiero tener que volver a escribirlos todos.

Para facilitar las cosas, tengo estas 2 funciones en un archivo utils:

 export async function find<T extends Model>(model: T, query, options?): Promise<T> { return model.find(query) }

y

 export async function findOne<T extends Model>(model: T, query, options?): Promise<T> { return model.findOne(query) }

¿Cómo puedo hacerlo para importar cada una de estas funciones a una clase (usando decoradores de TypeScript u otra magia de TS)?

quiero tener algo asi

 import { attachAllBasicDatabaseMethods } from "./model-utils/operations" export class UserController { @attachAllBasicDatabaseMethods() private constructor() {} }

entonces en mi controlador puedo usar un método como este:

 async getSomeUsers() { const users = await this.findMany(UserModel, this.query, this.options); return users; }

La idea del decorador es algo en lo que he pensado, pero sé que hay otros métodos para resolver esto.

O mejor: usar ese decorador con el modelo como parámetro vincula automáticamente el modelo a los métodos, por lo que puedo usar this.find(this.query, this.options)

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!