Эх сурвалжийг харах

Merge pull request #80 from ryangjchandler/feature/init-hooks

feature(hooks): add new .starting() and .started() hooks
Ryan Chandler 4 жил өмнө
parent
commit
7fd4e308a4

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
dist/spruce.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
dist/spruce.js.map


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
dist/spruce.module.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
dist/spruce.module.js.map


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
dist/spruce.umd.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
dist/spruce.umd.js.map


+ 16 - 0
src/index.js

@@ -14,7 +14,13 @@ const Spruce = {
 
     disableReactivity: false,
 
+    startingCallbacks: [],
+
+    startedCallbacks: [],
+
     start() {
+        this.startingCallbacks.forEach(fn => fn())
+
         this.attach()
 
         this.stores = createObservable(this.stores, {
@@ -38,6 +44,16 @@ const Spruce = {
                 this.disableReactivity = false
             }
         })
+
+        this.startedCallbacks.forEach(fn => fn())
+    },
+
+    starting(callback) {
+        this.startingCallbacks.push(callback)
+    },
+
+    started(callback) {
+        this.startedCallbacks.push(callback)
     },
 
     attach() {

+ 31 - 0
tests/hooks.spec.js

@@ -0,0 +1,31 @@
+import Alpine from 'alpinejs'
+import Spruce from '../dist/spruce'
+
+beforeEach(() => {
+    Spruce.subscribers = []
+})
+
+beforeAll(() => {
+    window.Spruce = Spruce
+    window.Alpine = Alpine
+})
+
+test('.starting() > callbacks are executed', () => {
+    let fixture = 0;
+
+    Spruce.starting(() => fixture++)
+
+    Spruce.start()
+
+    expect(fixture).toEqual(1)
+})
+
+test('.started() > callbacks are executed', () => {
+    let fixture = 0;
+
+    Spruce.started(() => fixture++)
+
+    Spruce.start()
+
+    expect(fixture).toEqual(1)
+})

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно