Skip to content
This repository has been archived by the owner on Mar 2, 2022. It is now read-only.

Latest commit

 

History

History
73 lines (58 loc) · 1.62 KB

README.md

File metadata and controls

73 lines (58 loc) · 1.62 KB

joi-timezone

Provides a Joi rule to validate IANA timezone strings using moment-timezone

Build Status Coverage Status

Unmaintained

This project is no longer being maintained by SafetyCulture. You are welome to fork this project and bring new life to it.

https://github.com/tjdavey/joi-tz is an active version of this project.

Usage

Note: requires Joi version >= 9

import BaseJoi from 'joi';
import JoiTimezone from 'joi-timezone';

const Joi = BaseJoi.extend(JoiTimezone);

// Create a joi schema using the timezone validator;
const schema = Joi.string().timezone();

Results with valid timezone:

Joi.validate("Melbourne/Australia", Joi.string().timezone());
/*
  {
    error: null,
    value: "Melbourne/Australia"
  }
 */

Results with valid timezone returning a moment object:

Joi.validate("Melbourne/Australia", Joi.string().timezone({returnMoment: true}));
/*
  {
    error: null,
    value: {
      ...moment object
    }
  }
 */

Results with invalid timezone:

Joi.validate("Some rubbish", Joi.string().timezone());
/*
{ error: {
    [ValidationError: "value" timezone failure]
    isJoi: true,
    name: 'ValidationError',
    details: [{
      message: '"value" timezone failure',
      path: 'value',
      type: 'string.timezone',
      context: { v: 'Some rubbish', key: 'value' }
    }],
    ...
  },
  value: 'Some rubbish'
}
 */