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/magics.js')
-rw-r--r--alpinejs/packages/alpinejs/src/magics.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/alpinejs/packages/alpinejs/src/magics.js b/alpinejs/packages/alpinejs/src/magics.js
new file mode 100644
index 0000000..b24515c
--- /dev/null
+++ b/alpinejs/packages/alpinejs/src/magics.js
@@ -0,0 +1,26 @@
+import Alpine from './alpine'
+import { interceptor } from './interceptor'
+
+let magics = {}
+
+export function magic(name, callback) {
+ magics[name] = callback
+}
+
+export function injectMagics(obj, el) {
+ Object.entries(magics).forEach(([name, callback]) => {
+ Object.defineProperty(obj, `$${name}`, {
+ get() { return callback(el, { Alpine, interceptor }) },
+
+ enumerable: false,
+ })
+ })
+
+ return {
+ obj,
+ cleanup: () => {
+ // MemLeak1: Issue #2140
+ el = null;
+ }
+ };
+}