diff options
Diffstat (limited to 'npm_assets/node_modules/luxon/src/settings.js')
| -rw-r--r-- | npm_assets/node_modules/luxon/src/settings.js | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/npm_assets/node_modules/luxon/src/settings.js b/npm_assets/node_modules/luxon/src/settings.js new file mode 100644 index 0000000..57f68e9 --- /dev/null +++ b/npm_assets/node_modules/luxon/src/settings.js @@ -0,0 +1,137 @@ +import LocalZone from "./zones/localZone.js"; +import IANAZone from "./zones/IANAZone.js"; +import Locale from "./impl/locale.js"; + +import { normalizeZone } from "./impl/zoneUtil.js"; + +let now = () => Date.now(), + defaultZone = null, // not setting this directly to LocalZone.instance bc loading order issues + defaultLocale = null, + defaultNumberingSystem = null, + defaultOutputCalendar = null, + throwOnInvalid = false; + +/** + * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here. + */ +export default class Settings { + /** + * Get the callback for returning the current timestamp. + * @type {function} + */ + static get now() { + return now; + } + + /** + * Set the callback for returning the current timestamp. + * The function should return a number, which will be interpreted as an Epoch millisecond count + * @type {function} + * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future + * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time + */ + static set now(n) { + now = n; + } + + /** + * Get the default time zone to create DateTimes in. + * @type {string} + */ + static get defaultZoneName() { + return Settings.defaultZone.name; + } + + /** + * Set the default time zone to create DateTimes in. Does not affect existing instances. + * @type {string} + */ + static set defaultZoneName(z) { + if (!z) { + defaultZone = null; + } else { + defaultZone = normalizeZone(z); + } + } + + /** + * Get the default time zone object to create DateTimes in. Does not affect existing instances. + * @type {Zone} + */ + static get defaultZone() { + return defaultZone || LocalZone.instance; + } + + /** + * Get the default locale to create DateTimes with. Does not affect existing instances. + * @type {string} + */ + static get defaultLocale() { + return defaultLocale; + } + + /** + * Set the default locale to create DateTimes with. Does not affect existing instances. + * @type {string} + */ + static set defaultLocale(locale) { + defaultLocale = locale; + } + + /** + * Get the default numbering system to create DateTimes with. Does not affect existing instances. + * @type {string} + */ + static get defaultNumberingSystem() { + return defaultNumberingSystem; + } + + /** + * Set the default numbering system to create DateTimes with. Does not affect existing instances. + * @type {string} + */ + static set defaultNumberingSystem(numberingSystem) { + defaultNumberingSystem = numberingSystem; + } + + /** + * Get the default output calendar to create DateTimes with. Does not affect existing instances. + * @type {string} + */ + static get defaultOutputCalendar() { + return defaultOutputCalendar; + } + + /** + * Set the default output calendar to create DateTimes with. Does not affect existing instances. + * @type {string} + */ + static set defaultOutputCalendar(outputCalendar) { + defaultOutputCalendar = outputCalendar; + } + + /** + * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals + * @type {boolean} + */ + static get throwOnInvalid() { + return throwOnInvalid; + } + + /** + * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals + * @type {boolean} + */ + static set throwOnInvalid(t) { + throwOnInvalid = t; + } + + /** + * Reset Luxon's global caches. Should only be necessary in testing scenarios. + * @return {void} + */ + static resetCaches() { + Locale.resetCache(); + IANAZone.resetCache(); + } +} |
