Typescript, schemas em vários lugares, é isso mesmo? #1663
Replies: 5 comments
-
Sim, normalmente você vai precisar de uma interface escrita em duas ou mais linguagens/ferramentas diferentes. Isso não significa que esse processo não possa ser automatizado, por ex: Prisma.io, Refit e Scraml. |
Beta Was this translation helpful? Give feedback.
-
Se eles forem iguais, você pode defini-los em um arquivo, exporta-los e usa-los em outros lugares. Fica mais fácil de dar manutenção. |
Beta Was this translation helpful? Give feedback.
-
@Sergioamjr, diga mais sobre por favor, como eu definiria um arquivo com o Schema do Mongoose, o esquema do JOI e o do TS no mesmo arquivo? Como seria possível, tem alguma idéia? |
Beta Was this translation helpful? Give feedback.
-
Claro, @willycamargo Eu havia pensando numa estrutura assim
//types/user.js
const Joi = require('@hapi/joi');
const joiSchema = Joi.object({
name: Joi.string().required(),
email: Joi.string().required(),
telefone: Joi.string().required(),
nascimento: Joi.string(),
});
const mongooseSchema = {
nome: { type: String, required: true },
email: { type: String, required: true },
telefone: { type: String, required: true },
nascimento: { type: String }
};
interface tsSchema {
name: String;
email: String;
telefone: String;
nascimento: String;
}
module.exports = {
joiSchema,
mongooseSchema,
tsSchema
} E pra usar em qualquer lugar, seria só importar const { joiSchema, mongooseSchema, tsSchema } = require('../types/user.js')
// ou
const UserTypes = require('../types/user.js')
// UserTypes.joiSchema || UserTypes.mongooseSchema || UserTypes.tsSchema Procurando alguns exemplos na internet, eu encontrei essa lib que você pode usar o mesmo schema pro joi e pro mongoose. |
Beta Was this translation helpful? Give feedback.
-
Shoow @Sergioamjr, entendi, verdade. Eu esbarrei nessa lib e estou cogitando usá-la, queria mais pegar uma opinião geral ou ver se é assim mesmo, e bom, é assim mesmo rs Vou adotar esta abordagem mesmo de colocar os schemas no mesmo arquivo... Já nos projetos que eu for separar em camadas ai vou acabar tendo os schemas "duplicados" em vários lugares mesmo. Muito obrigado! |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Fala galera, estou começando a fazer meus primeiros projetos para produção em node.
Reparei que precisa declarar o schema em muitos locais diferentes, e na maior parte das vezes o mesmo esquema... (Usando Express, JOI e Mongoose) exemplo:
É isso mesmo? Preciso declarar em cada um, como fazem? Existe uma maneira de o JOI e o Mongoose se guiarem pelo tipo/interface do typescript mesmo?
Abraçoos!
Beta Was this translation helpful? Give feedback.
All reactions