npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

ts-luxon

v6.0.0

Published

Typescript version of the "Immutable date wrapper"

Downloads

224,929

Readme

TS Luxon

MIT License Build Status NPM version Coverage Status PRs welcome Size

TS Luxon is a library for working with dates and times in Javscript and Typescript.

This repo was initially created by GillesDebunne which of course started from Luxon itself.

Many thanks to both of them for this fantastic work.

I decided to fork his work, because we don't know for sure if and when Luxon will adopt this source.

I realized moment wasn't suitable anymore for my projects, but I couldn't wait to have a more stable version and at this time Luxon (v 1.25.0) had structural issues, which resulted in errors in my Angular projects.

New feature: preview releases

With v6 I introduced a new release tag next. These versions are basically release candidates that can be tried out before they get released. The next version tag gets cleared out automatically upon release of the latest stable version.

The beta releases instead, like it's always been, represent unstable releases, and they're subject to dramatic changes.

Upgrading to 6.x

This finally solves the coexistence of ESM and CJS.

Many thanks to the autors of arethetypeswrong and publint, which were essential tools to debug and understand the package.json.

Very important for Typescript users

We reached a pretty much stable point for Intl support, which means we could finally drop that "compat" types that were needed to have a stable behaviour across various versions. So in order to make everything work as expected you should have lib es2021 or later in your tsconfig. Another option could be using skipLibCheck, but depending on how to want to manage your compiler, you might want to keep this off (default).

{
    "include": [
        "src"
    ],
    "exclude": [
        "test"
    ],
    "compilerOptions": {
        "module": "CommonJS",
        "target": "es6",
        "lib": [
            "esnext"
        ]
    }
}

Dropped the UMD bundle

Seriously. It's 2025. If you're using IE11 or require-js you may as well stick with date-fns, or moment. We drop heavy old stuff like the UMD bundle. But if you want to have tsLuxon in a global variable like it was before, you can do something like this:

<script type="module">
  import * as tsLuxon from "https://unpkg.com/ts-luxon?module";
  window.tsLuxon = tsLuxon;
</script>

You might even adjust this to work with require js, if you're happy! 😀 Although seriously, in that case, I suggest you to compile your own bundle with esbuild starting from the esm build. It's literally one line of code.

Upgrading to 5.x

Compared to v4 here I only changed how the library is built and the outputs. It should be completely transparent to the user given the adjustments to the package.json and given the fact that the es6 export of v4 is interpreted as CJS anyways. I'm working on adding a real ESM module output to v5, but it seems there's no way of making the two coexist.

Upgrading to 4.x

See the docs page

DateTime.now().setZone('America/New_York').minus({ weeks: 1 }).endOf('day').toISO();

Features

  • DateTime, Duration, and Interval types.
  • Immutable, chainable, unambiguous API.
  • Parsing and formatting for common and custom formats.
  • Native time zone and Intl support (no locale or tz files).

Usage

Via npm

npm i ts-luxon --save

then

import {DateTime} from "ts-luxon";

const myDto = DateTime.local();

Bundle / UMD

You can download the umd bundle from here:

DOCS

See the docs page

and the demo page

more example will be added! For suggestions open an issue or a PR (yes, even on the demo site if you want)!


Thanks to fire332 for his contribution about package.json

Development

Please, read the CONTRIBUTING.md you can find in the master branch.