Passer au contenu

Partage des Modèles

L’un des plus grands avantages de l’utilisation de TypeScript pour le backend de votre projet est la possibilité de réutiliser les mêmes modèles dans une application frontend basée sur TypeScript, en utilisant un package TypeScript commun.

Mais il y a un problème : les modèles créés à l’aide de l’approche code-first sont fortement décorés avec des décorateurs liés à GraphQL. Ces décorateurs sont sans rapport dans le frontend, impactant négativement les performances.

Utilisation du modèle shim

Pour résoudre ce problème, NestJS fournit un “shim” qui vous permet de remplacer les décorateurs d’origine par du code inerte en utilisant une configuration de webpack (ou similaire). Pour utiliser ce shim, configurez un alias entre le package @nestjs/graphql et le shim.

Par exemple, pour webpack, cela se résout de cette manière :

Configuration de Webpack
resolve: { // voir : https://webpack.js.org/configuration/resolve/
alias: {
"@nestjs/graphql": path.resolve(__dirname, "../node_modules/@nestjs/graphql/dist/extra/graphql-model-shim")
}
}