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

Latest commit

 

History

History
59 lines (41 loc) · 1.51 KB

README.md

File metadata and controls

59 lines (41 loc) · 1.51 KB

!! ARCHIVED !!

Use vercel/ms instead

⏰ meridiem

Meridiem is a simple, lightweight and fast library written in TypeScript for parsing natural language time ranges (in the past) and converting them to a simple object. Powered by some simple RegEx patterns and the built-in new Date() parser. Inspired by chrono and this tweet from @JohnPhamous about the new Vercel date range selector.

Has troubles with very large time ranges. Will work best if kept within 2-3 years of provided currentDate or the current date.

Compatible with Node, the browser, Deno and Bun. Only dependency is date-fns.

Installation

# npm
npm install @metrik/meridiem
 
# yarn
yarn add @metrik/meridiem

# pnpm
pnpm add @metrik/meridiem

Usage

import { parse } from "@metrik/meridiem"

// You can pass a string to parse
const basicResult = parse("last week")

// {
//   start: 2023-03-10T00:00:00.000Z,
//   end: 2023-03-17T00:00:00.000Z
// }

// You can also pass a date to parse relative to
const relativeResult = parse("last week", new Date("January 1, 2023"))

// {
//   start: 2023-12-25T00:00:00.000Z,
//   end: 2023-01-01T00:00:00.000Z
// }

// Meridiem can also do real date ranges
const realResult = parse("1/1 - 1/2")

// {
//   start: 2023-01-01T00:00:00.000Z,
//   end: 2023-01-02T00:00:00.000Z
// }

// If the date range is invalid, null is returned
const invalidResult = parse("invalid date range") // null