Evitando warnings entre audit-argument-checks e auto-form do Meteor

Publicação: | Tags: Meteor

Meteor

Este post é para quem esta desenvolvendo aplicações Meteor usando o incrível package auto-form junto com audit-argument-checks e anda recebendo warnings de que falta checar todos os argumentos em um Meteor.methods.

Vamos supor que você criou o seguinte form:

 <template name="messageForm">
   {{#autoForm type="method" meteormethod="sendMessage"}}
     {{> afQuickField name="name"}}
     {{> afQuickField name="email"}}
     {{> afQuickField name="message" rows=6}}
     <button type="submit">Send</button>
   {{/autoForm}}
 </template>

Este form irá submeter dados para o seguinte Meteor.methods:

 Meteor.methods({
   sendMessage: function(messageData) {
     check(messageData, {
       name: String,
       email: String,
       message: String
     });
     // Processar messageData após validação do check.
   }
 });

Até aqui esta tudo bem, porém mesmo assim, ao submeter um form você recebe o seguinte warning:

 Exception while invoking method 'sendMessage' Error: Did not check() all arguments during call to 'sendMessage'

Caso você esteja passando por esse problema, eis uma simples solução, por default o auto-form envia dois parâmetros adicionais (modifier e docID) pelo qual eles não estão presentes na documentação do auto-form. Para remover definitivamente esse warning basta fazer um check desses parâmetros comparando-os com o Match.Any e pronto! Veja abaixo como solucionar isso:

 Meteor.methods({
   sendMessage: function(messageData, modifier, docID) {
     check(messageData, {
       name: String,
       email: String,
       message: String
     });
     check(modifier, Match.Any);
     check(docID, Match.Any);
     // Processar messageData após validação do check.
   }
 });

Até a próxima!

Fonte: Meteor autoform and check audit errors (audit-argument-checks)

Compartilhe este post