Time Zone Jovo Plugin
Overview
This plugin for the Jovo Framework v4
allows you to easily add cross-platform time zone support including an overall default time zone if there is not a country-code-specific default.
For the plugin that support Jovo v3, use jovo-community-plugin-timezone
Platforms
The following platforms are supported:
- Amazon Alexa
- Google Assistant
- Core/Web
In the case of Amazon Alexa, after the first API call, the time zone is cached in Session Data at:
this.jovo.$session.data.$timeZone
Don't access or change this value, instead use the method on the plugin:
const tz = await this.$timeZone.getTimeZone();
Install
Install the plugin into your Jovo project:
npm install @jovo-community/plugin-timezone
Register the plugin in app.ts
:
import { TimeZonePlugin } from '@jovo-community/plugin-timezone'; const app = new App({ // ... plugins: [ new TimeZonePlugin(), // ... ], }
Get the time zone in your handler:
const tz = await this.$timeZone.getTimeZone();
Configuration
You can set an overall default time zone fallback or defaults based on the country code portion of the locale that is sent with every request.
import { TimeZonePlugin } from '@jovo-community/plugin-timezone'; const app = new App({ // ... plugins: [ new TimeZonePlugin({ defaultTimeZone: 'America/New_York', defaultTimeZoneByLocaleCountryCode: { US: 'America/New_York', GB: 'Europe/London', CA: 'America/Toronto', AU: 'Australia/Sydney', IN: 'Asia/Kolkata', }, }), // ... ], }
Jovo Debugger
If using the Jovo Debugger, you must add $timeZone
to the list of properties the debugger ignores:
// app.dev.ts new JovoDebugger({ ignoredProperties: ['$app', '$handleRequest', '$platform', '$timeZone'], }),
License
MIT