Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gohugoio/hugo-mod-jslibs-dist.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'alpinejs/packages/alpinejs/src/store.js')
-rw-r--r--alpinejs/packages/alpinejs/src/store.js23
1 files changed, 23 insertions, 0 deletions
diff --git a/alpinejs/packages/alpinejs/src/store.js b/alpinejs/packages/alpinejs/src/store.js
new file mode 100644
index 0000000..dc7bf94
--- /dev/null
+++ b/alpinejs/packages/alpinejs/src/store.js
@@ -0,0 +1,23 @@
+import { initInterceptors } from "./interceptor";
+import { reactive } from "./reactivity"
+
+let stores = {}
+let isReactive = false
+
+export function store(name, value) {
+ if (! isReactive) { stores = reactive(stores); isReactive = true; }
+
+ if (value === undefined) {
+ return stores[name]
+ }
+
+ stores[name] = value
+
+ if (typeof value === 'object' && value !== null && value.hasOwnProperty('init') && typeof value.init === 'function') {
+ stores[name].init()
+ }
+
+ initInterceptors(stores[name])
+}
+
+export function getStores() { return stores }