UNPKG

agegate

Version:

A simple function that verifies a date of birth against a country's legal drinking age.

81 lines (60 loc) 1.98 kB
# Agegate A simple function that verifies a date of birth against a country's legal drinking age. ``` npm i agegate ``` ## Usage ```js import agegate from "agegate"; var user = { dateOfBirth: new Date("2015-02-14"), // strings are also accepted country: "US", }; var isLegal = agegate(user.dateOfBirth, user.country); // false ``` :warning: If an invalid date is supplied, the result will be falsy. If an invalid country code is supplied, it will validate against a default legal drinking age of 18. ### Use with frameworks (e.g. React) In order to use this library with frontend UI frameworks, the underlying dataset used to validate is also exported. ```js import React, { useState } from "react"; import agegate, { getData } from "agegate"; const countries = getData(); function Modal() { const [date, setDate] = useState(""); const [country, setCountry] = useState(countries[0].code); const [legal, setLegal] = useState(false); const submitHandler = e => { e.preventDefault(); if (date && country) { const result = agegate(new Date(date), country); setLegal(result); } }; return ( <div> <form onSubmit={submitHandler}> <h3>Enter your date of birth</h3> <input type="date" value={date} onChange={e => setDate(e.target.value)} /> <h3>Enter your country</h3> <select value={country} onChange={e => setCountry(e.target.value)}> {countries.map(({ code, name }) => ( <option key={name} value={code}> {name} </option> ))} </select> <button type="submit">Submit</button> </form> <p style={{ color: legal ? "green" : "red" }}> RESULT: You are {legal ? "" : "NOT"} old enough! </p> </div> ); } ``` * * * Please file a [new issue](https://github.com/izolate/agegate/issues/new) if you find any inconsistencies in the countries dataset.