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 🙏

© 2024 – Pkg Stats / Ryan Hefner

@sebspark/trading-hours

v0.4.2

Published

Find trading hours of a market, when it's closed for holidays, or when it's only open for part of the day.

Downloads

11

Readme

@sebspark/trading-hours

Find trading hours of a market, when it's closed for holidays, or when it's only open for part of the day.

API

holidays

holidays(mic: SebMarket, year: number): Array<string>

Return a list of holidays for the provided market and year. The list contains dates formatted as ISO 8601 dates (YYYY-MM-DD).

halfdays

halfdays(mic: SebMarket, year: number): Array<string>

Similar to holidays, but for half trading days. In Sweden, these are common the day before a holiday, but they also occur in other markets, for example around Christmas.

isHoliday

isHoliday(mic: SebMarket, date: Date): boolean

Check if the provided date is a holiday on the market. Saturday and Sunday are always considered holidays.

isHalfday

isHalfday(mic: SebMarket, date: Date): boolean

Similar to isHoliday, but for half trading days.

isOpen

isOpen(mic: SebMarket): boolean

Checks if the market is open. This takes into account holidays, half trading days, and opening hours.

formatOpeningHours

formatOpeningHours(mic: SebMarket): string

Returns a formatted string of the opening hours of the market. For example, 09:00 - 17:30 for XSTO. Takes into account half trading days and returns any irregular opening hours.

whichHoliday

whichHoliday(mic: SebMarket, date: Date): Holiday | null

Checks what holiday, if any, the provided date is. The return types is provided as a TypeScript union instead of the actual name. This way the consumer can choose what to display, which is useful for multilanguage applications.

marketOpeningHours

type Hours = {
  openHour: number
  openMinute: number
  closeHour: number
  closeMinute: number
}

marketOpeningHours(mic: SebMarket, date: Date): Hours | null

Return the open hours of the provided market and date. Handles half trading days.

Types

export type SebMarket =
  | "EQTB"
  | "SSME"
  | "XAMS"
  | "XETR"
  | "XHEL"
  | "XPAR"
  | "XSTO";

export type Holiday =
  | "ascensionDay"
  | "boxingDay"
  | "christmasDay"
  | "christmasEve"
  | "easterMonday"
  | "epiphany"
  | "goodFriday"
  | "independenceDayFinland"
  | "independenceDaySweden"
  | "laborDay"
  | "midsummerDay"
  | "midsummerEve"
  | "newYearsDay"
  | "newYearsEve";