@jovo-community/plugin-timezone
v4.0.1
Published
A Jovo Framework plugin for cross-platform timezone including defaults per country code.
Downloads
34
Keywords
Readme
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