summaryrefslogtreecommitdiffstats
path: root/npm_assets/node_modules/luxon/src/settings.js
diff options
context:
space:
mode:
Diffstat (limited to 'npm_assets/node_modules/luxon/src/settings.js')
-rw-r--r--npm_assets/node_modules/luxon/src/settings.js137
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();
+ }
+}