From 2d5734563407acfc39130dd5741a94356f5bd502 Mon Sep 17 00:00:00 2001 From: Sirttas Date: Wed, 29 May 2024 12:49:19 +0200 Subject: [PATCH] draft pref --- src/preferences/Preference.ts | 22 ++++++++++++++++++++++ src/preferences/index.ts | 0 2 files changed, 22 insertions(+) create mode 100644 src/preferences/Preference.ts create mode 100644 src/preferences/index.ts diff --git a/src/preferences/Preference.ts b/src/preferences/Preference.ts new file mode 100644 index 0000000..fcaba33 --- /dev/null +++ b/src/preferences/Preference.ts @@ -0,0 +1,22 @@ +export class Preference { + private key: string; + private description: string; + private value?: T; + private defaultValue?: T; + + constructor(key: string, description: string, defaultValue?: T) { + this.key = key; + this.description = description; + this.defaultValue = defaultValue; + this.value = this.load(); + } + + private load() { + const value = localStorage.getItem(this.key); + + if (value) { + return JSON.parse(value); + } + return this.defaultValue; + } +} \ No newline at end of file diff --git a/src/preferences/index.ts b/src/preferences/index.ts new file mode 100644 index 0000000..e69de29