Skip to content

nensidosari/eslint-plugin-skyscanner-dates

 
 

Repository files navigation

eslint-plugin-skyscanner-dates

Build Status

eslint plugin to handle safely dates.

Features

This eslint plugin is meant to be used to avoid explicit usage/manupulation of date in JS, so to avoid issues with timezones.

Installation

npm install --save-dev eslint-plugin-skyscanner-dates

Rules

  • rules no-moment, no-dayjs, no-saddlebag-date for stopping the use of moment, moment-timezone, dayjs, saddlebag-date date libraries.
  • rule no-date-fns-format for stopping using the date formatting in date-fns and stop using date formatting in date-fns-tz.
  • rule no-saddlebag-localisation-tz for stopping performing timezone manipulation in saddlebag-localisation
  • rule no-new-date-with-args for stopping using new Date("some string").

Usage

Add to the .eslintrc.json file inside the root folder of a linted project:

The rules no-moment and no-new-date-with-string-args will raise an error and others will be just a warning. A few months later, we will change the rules to be error severity, to force people to honour the rulers.

{
  "extends": "plugin:skyscanner-dates/recommended",
  "plugins": ["skyscanner-dates"]
}

Any rule failing will raise a blocking error.

{
  "extends": "plugin:skyscanner-dates/error",
  "plugins": ["skyscanner-dates"]
}

Any rule failing will just raise a warning.

{
  "extends": "plugin:skyscanner-dates/warn",
  "plugins": ["skyscanner-dates"]
}

Each rule can be configured on its own following eslint conventions:

{
  "plugins": ["skyscanner-dates"],
  "rules": {
    "skyscanner-dates/no-moment": "warn",
    "skyscanner-dates/no-dayjs": "warn",
    "skyscanner-dates/no-saddlebag-date": "warn",
    "skyscanner-dates/no-date-fns-format": "warn",
    "skyscanner-dates/no-saddlebag-localisation-tz": "warn"
    "skyscanner-dates/no-new-date-with-args": "warn"
  }
}

API

Your favourite code editor should provide information about API using code completion.

API docs can be generated by cloning the project and running:

npm install
npm run build-docs

API docs will now be generated in docs/api.md.

Developing

  • npm install - installs dependencies
  • npm run lint - runs linter
  • npm run build-docs - produces API documentation in Markdown format in docs/api.md
  • npm test - runs linter and tests

Contributing

See CONTRIBUTING.md if you want to contribute.

About

ESLint plugin to help with safe date handling

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%