joi-message

1.1.0 • Public • Published

joi-message

A small package of Joi help you to generate more friendly messages

Installation

Npm

npm install joi joi-message

Yarn

yarn add joi joi-message

Joi main function

  • createStringMessages : create messages for String type
  • createNumberMessages : create messages for Number type
  • createArrayMessages : create string messages for Array type
  • createBooleanMessages : create string messages for Boolean type
  • createDateMessages : create string messages for Date type
  • createObjectMessages : create string messages for Object type

Import

const { JoiMessage } = require("joi-message");

Note

  • when you use any method that needs a value, please pass it into the object into each method to show the exact message as expected
// example/document.js

Joi.string()
  .min(4)
  .max(20)
  .messages(JoiMessage.createStringMessages({ field: "Username", min: 4, max: 20 }));

Usage

// example/usage.js

const Joi = require("joi");
const { JoiMessage } = require("joi-message");

const testSchema = Joi.object({
  username: Joi.string()
    .min(4)
    .max(20)
    .messages(JoiMessage.createStringMessages({ field: "Username", min: 4, max: 20 })),
  email: Joi.string()
    .email()
    .messages(JoiMessage.createStringMessages({ field: "Email" })),
  list: Joi.array()
    .min(4)
    .messages(JoiMessage.createArrayMessages({ field: "List", min: 4 })),
  listWithoutName: Joi.array()
    .min(4)
    .messages(JoiMessage.createArrayMessages({ showFieldName: false, min: 4 })),
});
const result = testSchema.validate({ username: "aaa", email: "bbb", list: [1, 2, 3] }, { abortEarly: false });
console.log(result.error.details);
//  The return messages will be like this
//  [
//    {
//       message: 'Username should be at least 4 characters',
//       type: 'string.min',
//       ...
//     },
//     {
//       message: 'invalid email',
//       type: 'string.email',
//       ...
//     },
//     {
//       message: 'List should contain at least 4 items',
//       type: 'array.min',
//       ...
//     }
//  ]

Custom message

// example/custom.js

const Joi = require("joi");
const { JoiMessage } = require("joi-message");

const testSchema = Joi.object({
  username: Joi.string()
    .min(4)
    .messages({
      ...JoiMessage.createStringMessages({ field: "Username", min: 4 }),
      "string.min": "test message",
    }),
});
const result = testSchema.validate({ username: "aaa" });
console.log(result.error.details);
// [
//  {
//     message: 'test message',
//     type: 'string.min',
//     ...
//   }
// ]

Package Sidebar

Install

npm i joi-message

Weekly Downloads

0

Version

1.1.0

License

ISC

Unpacked Size

24.4 kB

Total Files

15

Last publish

Collaborators

  • dauleduc2