Skip to content

Latest commit

 

History

History
155 lines (96 loc) · 3.44 KB

CONTRIBUTING.md

File metadata and controls

155 lines (96 loc) · 3.44 KB

Contributing Guide

Table of Contents

How to Help?

Help is always welcome. There are areas where you can help:

If you see a gap, but don't have time, experience, or you just need help with the library, don't hesitate to start a discussion or open a new issue.

The date-fns functionality is comprehensive and covers most of the use cases, however it doesn't have an extended time zone support. Please leave a comment to the Extended time zones support issue if you are interested in the functionality or want to help with development.

If you are interested in Elm/ClojureScript/etc. wrappers, please file an issue.

Contribution Guidelines

Due to the modular nature of date-fns, it's more than open to new features. However, when a new function duplicates the existing functionality, native API or causes significant build size increase, a PR might be rejected or the author can be asked to move the code to a new or another package.

Please follow the main contributing rules, to maintain date-fns' top quality:

Getting Started

  1. Install Node.js 20 or greater (LTS recommended)

  2. Fork the project, and clone your fork of the repo

  3. Run npm install to install the dependencies

Testing

Unit tests

Node.js:

npx vitest run

# Or in the watch mode:
npx vitest watch

Browser

npx vitest run --browser

# Or in the watch mode:
npx vitest watch --browser

REPL

To test functions in a REPL, use tsx:

npx tsx

...and then require individual functions:

> const toDate = require('./src/toDate').default
undefined
> toDate(1392098430000).toString()
'Tue Feb 11 2014 14:00:30 GMT+0800 (Singapore Standard Time)'
>

Test build

To test the build, run:

./scripts/build/package.sh
cd lib
npm link

cd YOUR_PROJECT
npm link date-fns

Read more about npm link.

Code Style Guide

Lint the Code

The project follows Prettier code style and uses ESLint as the linter. To lint the code, run:

npm run lint

Documentation

JSDoc

  • TSDoc is used for the code documentation.

  • TypeDoc is used to parse the TSDoc annotations and populate the database.