valyrian.js 7.2.10 → 7.2.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dataset/index.d.ts +2 -2
- package/dist/dataset/index.d.ts.map +1 -1
- package/dist/dataset/index.js +21 -21
- package/dist/dataset/index.js.map +2 -2
- package/dist/dataset/index.mjs +22 -22
- package/dist/dataset/index.mjs.map +2 -2
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +17 -32
- package/dist/hooks/index.js.map +3 -3
- package/dist/hooks/index.mjs +17 -32
- package/dist/hooks/index.mjs.map +3 -3
- package/dist/index.d.ts +49 -53
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +378 -326
- package/dist/index.js.map +3 -3
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/index.mjs +378 -326
- package/dist/index.mjs.map +3 -3
- package/dist/node/index.js +115 -88
- package/dist/node/index.js.map +2 -2
- package/dist/node/index.mjs +115 -88
- package/dist/node/index.mjs.map +2 -2
- package/dist/node/utils/tree-adapter.d.ts +5 -0
- package/dist/node/utils/tree-adapter.d.ts.map +1 -1
- package/dist/proxy-signal/index.js +10 -10
- package/dist/proxy-signal/index.js.map +2 -2
- package/dist/proxy-signal/index.mjs +10 -10
- package/dist/proxy-signal/index.mjs.map +2 -2
- package/dist/request/index.js +16 -16
- package/dist/request/index.js.map +2 -2
- package/dist/request/index.mjs +16 -16
- package/dist/request/index.mjs.map +2 -2
- package/dist/router/index.d.ts.map +1 -1
- package/dist/router/index.js +21 -20
- package/dist/router/index.js.map +2 -2
- package/dist/router/index.mjs +21 -20
- package/dist/router/index.mjs.map +2 -2
- package/dist/signal/index.d.ts +7 -18
- package/dist/signal/index.d.ts.map +1 -1
- package/dist/signal/index.js +29 -48
- package/dist/signal/index.js.map +3 -3
- package/dist/signal/index.mjs +31 -50
- package/dist/signal/index.mjs.map +3 -3
- package/dist/store/index.js +2 -2
- package/dist/store/index.js.map +2 -2
- package/dist/store/index.mjs +2 -2
- package/dist/store/index.mjs.map +2 -2
- package/lib/dataset/index.ts +25 -25
- package/lib/hooks/index.ts +25 -54
- package/lib/index.ts +465 -715
- package/lib/node/index.ts +2 -2
- package/lib/node/utils/icons.ts +5 -5
- package/lib/node/utils/inline.ts +17 -17
- package/lib/node/utils/sw.ts +3 -3
- package/lib/node/utils/tree-adapter.ts +95 -62
- package/lib/proxy-signal/index.ts +10 -10
- package/lib/request/index.ts +16 -16
- package/lib/router/index.ts +21 -20
- package/lib/signal/index.ts +56 -131
- package/lib/store/index.ts +2 -2
- package/package.json +10 -3
- package/lib/index.d.ts +0 -0
- package/lib/interfaces.ts.bak +0 -141
package/dist/store/index.mjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../lib/store/index.ts"],
|
|
4
|
-
"sourcesContent": ["import { update } from \"valyrian.js\";\n\ninterface StoreOptions {\n state?: Record<string, unknown> | (() => Record<string, unknown>);\n getters?: Record<string, Function>;\n mutations?: Record<string, Function>;\n actions?: Record<string, Function>;\n}\n\ninterface StoreInstance {\n // eslint-disable-next-line no-unused-vars\n new (options: StoreOptions): StoreInstance;\n state: Record<string, any>;\n getters?: Record<string, any>;\n // eslint-disable-next-line no-unused-vars\n commit: (type: string, ...payload: any[]) => void;\n // eslint-disable-next-line no-unused-vars\n dispatch: (type: string, ...payload: any[]) => void;\n}\n\nfunction keyExists(typeOfKey: string, object: Record<string, unknown>, key: string) {\n if (key in object === false) {\n throw new Error(`The ${typeOfKey} \"${key}\" does not exists.`);\n }\n}\n\nfunction deepFreeze(obj: any) {\n if (typeof obj === \"object\" && obj !== null && !Object.isFrozen(obj)) {\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n deepFreeze(obj[i]);\n }\n } else {\n
|
|
5
|
-
"mappings": ";AAAA,SAAS,cAAc;AAoBvB,SAAS,UAAU,WAAmB,QAAiC,KAAa;AAClF,MAAI,OAAO,WAAW,OAAO;AAC3B,UAAM,IAAI,MAAM,OAAO,SAAS,KAAK,GAAG,oBAAoB;AAAA,EAC9D;AACF;AAEA,SAAS,WAAW,KAAU;AAC5B,MAAI,OAAO,QAAQ,YAAY,QAAQ,QAAQ,CAAC,OAAO,SAAS,GAAG,GAAG;AACpE,QAAI,MAAM,QAAQ,GAAG,GAAG;AACtB,eAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,IAAI,GAAG,KAAK;AAC1C,mBAAW,IAAI,CAAC,CAAC;AAAA,MACnB;AAAA,IACF,OAAO;AACL,
|
|
4
|
+
"sourcesContent": ["import { update } from \"valyrian.js\";\n\ninterface StoreOptions {\n state?: Record<string, unknown> | (() => Record<string, unknown>);\n getters?: Record<string, Function>;\n mutations?: Record<string, Function>;\n actions?: Record<string, Function>;\n}\n\ninterface StoreInstance {\n // eslint-disable-next-line no-unused-vars\n new (options: StoreOptions): StoreInstance;\n state: Record<string, any>;\n getters?: Record<string, any>;\n // eslint-disable-next-line no-unused-vars\n commit: (type: string, ...payload: any[]) => void;\n // eslint-disable-next-line no-unused-vars\n dispatch: (type: string, ...payload: any[]) => void;\n}\n\nfunction keyExists(typeOfKey: string, object: Record<string, unknown>, key: string) {\n if (key in object === false) {\n throw new Error(`The ${typeOfKey} \"${key}\" does not exists.`);\n }\n}\n\nfunction deepFreeze(obj: any) {\n if (typeof obj === \"object\" && obj !== null && !Object.isFrozen(obj)) {\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n deepFreeze(obj[i]);\n }\n } else {\n const props = Reflect.ownKeys(obj);\n for (let i = 0, l = props.length; i < l; i++) {\n deepFreeze(obj[props[i]]);\n }\n }\n Object.freeze(obj);\n }\n\n return obj;\n}\n\nlet updateTimeout: any;\nfunction delayedUpdate() {\n clearTimeout(updateTimeout);\n updateTimeout = setTimeout(update);\n}\n\nexport const Store = function Store(\n this: StoreInstance,\n { state = {}, getters = {}, actions = {}, mutations = {} }: StoreOptions = {}\n) {\n let frozen = true;\n\n function isUnfrozen() {\n if (frozen) {\n throw new Error(\"You need to commit a mutation to change the state\");\n }\n }\n\n const localState = typeof state === \"function\" ? state() : state;\n\n this.state = new Proxy(localState || {}, {\n get: (state, prop: string) => deepFreeze(state[prop]),\n set: (state, prop: string, value: any) => {\n isUnfrozen();\n state[prop] = value;\n return true;\n },\n deleteProperty: (state, prop: string) => {\n isUnfrozen();\n Reflect.deleteProperty(state, prop);\n return true;\n }\n });\n\n this.getters = new Proxy(getters, {\n get: (getters, getter: string) => {\n try {\n return getters[getter](this.state, this.getters);\n } catch (e) {\n // Getters should fail silently\n }\n }\n });\n\n this.commit = (mutation, ...args) => {\n keyExists(\"mutation\", mutations, mutation);\n frozen = false;\n mutations[mutation](this.state, ...args);\n frozen = true;\n delayedUpdate();\n };\n\n this.dispatch = (action, ...args) => {\n keyExists(\"action\", actions, action);\n return Promise.resolve(actions[action](this, ...args));\n };\n} as unknown as StoreInstance;\n"],
|
|
5
|
+
"mappings": ";AAAA,SAAS,cAAc;AAoBvB,SAAS,UAAU,WAAmB,QAAiC,KAAa;AAClF,MAAI,OAAO,WAAW,OAAO;AAC3B,UAAM,IAAI,MAAM,OAAO,SAAS,KAAK,GAAG,oBAAoB;AAAA,EAC9D;AACF;AAEA,SAAS,WAAW,KAAU;AAC5B,MAAI,OAAO,QAAQ,YAAY,QAAQ,QAAQ,CAAC,OAAO,SAAS,GAAG,GAAG;AACpE,QAAI,MAAM,QAAQ,GAAG,GAAG;AACtB,eAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,IAAI,GAAG,KAAK;AAC1C,mBAAW,IAAI,CAAC,CAAC;AAAA,MACnB;AAAA,IACF,OAAO;AACL,YAAM,QAAQ,QAAQ,QAAQ,GAAG;AACjC,eAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,IAAI,GAAG,KAAK;AAC5C,mBAAW,IAAI,MAAM,CAAC,CAAC,CAAC;AAAA,MAC1B;AAAA,IACF;AACA,WAAO,OAAO,GAAG;AAAA,EACnB;AAEA,SAAO;AACT;AAEA,IAAI;AACJ,SAAS,gBAAgB;AACvB,eAAa,aAAa;AAC1B,kBAAgB,WAAW,MAAM;AACnC;AAEO,IAAM,QAAQ,SAASA,OAE5B,EAAE,QAAQ,CAAC,GAAG,UAAU,CAAC,GAAG,UAAU,CAAC,GAAG,YAAY,CAAC,EAAE,IAAkB,CAAC,GAC5E;AACA,MAAI,SAAS;AAEb,WAAS,aAAa;AACpB,QAAI,QAAQ;AACV,YAAM,IAAI,MAAM,mDAAmD;AAAA,IACrE;AAAA,EACF;AAEA,QAAM,aAAa,OAAO,UAAU,aAAa,MAAM,IAAI;AAE3D,OAAK,QAAQ,IAAI,MAAM,cAAc,CAAC,GAAG;AAAA,IACvC,KAAK,CAACC,QAAO,SAAiB,WAAWA,OAAM,IAAI,CAAC;AAAA,IACpD,KAAK,CAACA,QAAO,MAAc,UAAe;AACxC,iBAAW;AACX,MAAAA,OAAM,IAAI,IAAI;AACd,aAAO;AAAA,IACT;AAAA,IACA,gBAAgB,CAACA,QAAO,SAAiB;AACvC,iBAAW;AACX,cAAQ,eAAeA,QAAO,IAAI;AAClC,aAAO;AAAA,IACT;AAAA,EACF,CAAC;AAED,OAAK,UAAU,IAAI,MAAM,SAAS;AAAA,IAChC,KAAK,CAACC,UAAS,WAAmB;AAChC,UAAI;AACF,eAAOA,SAAQ,MAAM,EAAE,KAAK,OAAO,KAAK,OAAO;AAAA,MACjD,SAAS,GAAG;AAAA,MAEZ;AAAA,IACF;AAAA,EACF,CAAC;AAED,OAAK,SAAS,CAAC,aAAa,SAAS;AACnC,cAAU,YAAY,WAAW,QAAQ;AACzC,aAAS;AACT,cAAU,QAAQ,EAAE,KAAK,OAAO,GAAG,IAAI;AACvC,aAAS;AACT,kBAAc;AAAA,EAChB;AAEA,OAAK,WAAW,CAAC,WAAW,SAAS;AACnC,cAAU,UAAU,SAAS,MAAM;AACnC,WAAO,QAAQ,QAAQ,QAAQ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;AAAA,EACvD;AACF;",
|
|
6
6
|
"names": ["Store", "state", "getters"]
|
|
7
7
|
}
|
package/lib/dataset/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { VnodeWithDom, createElement, directive, patch, updateAttributes } from "valyrian.js";
|
|
2
2
|
|
|
3
3
|
interface DataSetInterface<T> {
|
|
4
4
|
data: T[];
|
|
@@ -13,7 +13,7 @@ interface DataSetInterface<T> {
|
|
|
13
13
|
}
|
|
14
14
|
interface DataSetHandler<T> {
|
|
15
15
|
// eslint-disable-next-line no-unused-vars
|
|
16
|
-
(data: T, index: number):
|
|
16
|
+
(data: T, index: number): VnodeWithDom;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
function deepFreeze(obj: any) {
|
|
@@ -23,7 +23,7 @@ function deepFreeze(obj: any) {
|
|
|
23
23
|
deepFreeze(obj[i]);
|
|
24
24
|
}
|
|
25
25
|
} else {
|
|
26
|
-
|
|
26
|
+
const props = Reflect.ownKeys(obj);
|
|
27
27
|
for (let i = 0, l = props.length; i < l; i++) {
|
|
28
28
|
deepFreeze(obj[props[i]]);
|
|
29
29
|
}
|
|
@@ -90,8 +90,8 @@ export class DataSet<T> implements DataSetInterface<T> {
|
|
|
90
90
|
return;
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
|
|
94
|
-
|
|
93
|
+
const vnode = this.#vnode;
|
|
94
|
+
const handler = this.#handler;
|
|
95
95
|
|
|
96
96
|
if (data.length === 0) {
|
|
97
97
|
vnode.children = [];
|
|
@@ -99,24 +99,24 @@ export class DataSet<T> implements DataSetInterface<T> {
|
|
|
99
99
|
return;
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
-
|
|
102
|
+
const childrenLength = vnode.children.length;
|
|
103
103
|
for (let i = 0, l = data.length; i < l; i++) {
|
|
104
|
-
|
|
104
|
+
const child = handler(this.data[i], i);
|
|
105
105
|
|
|
106
106
|
if (i < childrenLength) {
|
|
107
|
-
|
|
107
|
+
const oldChild = vnode.children[i];
|
|
108
108
|
child.isSVG = oldChild.isSVG;
|
|
109
109
|
child.dom = oldChild.dom;
|
|
110
|
-
updateAttributes(child as VnodeWithDom,
|
|
110
|
+
updateAttributes(child as VnodeWithDom, null);
|
|
111
111
|
vnode.children[i] = child;
|
|
112
|
-
patch(child as VnodeWithDom
|
|
112
|
+
patch(child as VnodeWithDom);
|
|
113
113
|
continue;
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
child.isSVG = vnode.isSVG || child.tag === "svg";
|
|
117
|
-
child.dom =
|
|
117
|
+
child.dom = createElement(child.tag as string, child.isSVG);
|
|
118
118
|
vnode.dom.appendChild(child.dom);
|
|
119
|
-
updateAttributes(child as VnodeWithDom);
|
|
119
|
+
updateAttributes(child as VnodeWithDom, null);
|
|
120
120
|
vnode.children.push(child);
|
|
121
121
|
patch(child as VnodeWithDom);
|
|
122
122
|
}
|
|
@@ -129,7 +129,7 @@ export class DataSet<T> implements DataSetInterface<T> {
|
|
|
129
129
|
|
|
130
130
|
add(...data: T[]) {
|
|
131
131
|
if (this.#data) {
|
|
132
|
-
|
|
132
|
+
const oldLength = this.#data.length;
|
|
133
133
|
if (this.#isFrozen) {
|
|
134
134
|
this.#setData([...this.#data, ...data]);
|
|
135
135
|
} else {
|
|
@@ -140,15 +140,15 @@ export class DataSet<T> implements DataSetInterface<T> {
|
|
|
140
140
|
return;
|
|
141
141
|
}
|
|
142
142
|
|
|
143
|
-
|
|
144
|
-
|
|
143
|
+
const vnode = this.#vnode;
|
|
144
|
+
const handler = this.#handler;
|
|
145
145
|
|
|
146
146
|
for (let i = 0, ii = oldLength, l = data.length; i < l; i++, ii++) {
|
|
147
|
-
|
|
147
|
+
const child = handler(this.#data[i], ii);
|
|
148
148
|
child.isSVG = vnode.isSVG || child.tag === "svg";
|
|
149
|
-
child.dom =
|
|
149
|
+
child.dom = createElement(child.tag as string, child.isSVG);
|
|
150
150
|
vnode.dom.appendChild(child.dom);
|
|
151
|
-
updateAttributes(child as VnodeWithDom);
|
|
151
|
+
updateAttributes(child as VnodeWithDom, null);
|
|
152
152
|
vnode.children.push(child);
|
|
153
153
|
patch(child as VnodeWithDom);
|
|
154
154
|
}
|
|
@@ -157,7 +157,7 @@ export class DataSet<T> implements DataSetInterface<T> {
|
|
|
157
157
|
|
|
158
158
|
delete(index: number) {
|
|
159
159
|
if (this.#data && this.#vnode) {
|
|
160
|
-
|
|
160
|
+
const child = this.#vnode.children[index];
|
|
161
161
|
if (this.#isFrozen) {
|
|
162
162
|
this.#setData(this.data.filter((_, i) => i !== index));
|
|
163
163
|
} else {
|
|
@@ -171,23 +171,23 @@ export class DataSet<T> implements DataSetInterface<T> {
|
|
|
171
171
|
|
|
172
172
|
update(index: number, item: Partial<T>) {
|
|
173
173
|
if (this.#data && this.#vnode && this.#handler) {
|
|
174
|
-
|
|
174
|
+
const child = this.#vnode.children[index];
|
|
175
175
|
if (this.#isFrozen) {
|
|
176
176
|
this.#setData(this.#data.map((d, i) => (i === index ? { ...d, ...item } : d)));
|
|
177
177
|
} else {
|
|
178
178
|
this.#data[index] = { ...this.#data[index], ...item };
|
|
179
179
|
}
|
|
180
|
-
|
|
180
|
+
const newChild = this.#handler(this.#data[index], index);
|
|
181
181
|
newChild.isSVG = this.#vnode.isSVG || newChild.tag === "svg";
|
|
182
182
|
newChild.dom = child.dom;
|
|
183
183
|
this.#vnode.children[index] = newChild;
|
|
184
|
-
updateAttributes(newChild as VnodeWithDom,
|
|
185
|
-
patch(newChild as VnodeWithDom
|
|
184
|
+
updateAttributes(newChild as VnodeWithDom, null);
|
|
185
|
+
patch(newChild as VnodeWithDom);
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
-
directive("with-dataset", (dataSet
|
|
191
|
-
dataSet.setVnodeAndHandler(vnode
|
|
190
|
+
directive("with-dataset", (dataSet: DataSet<any>, vnode: VnodeWithDom) => {
|
|
191
|
+
dataSet.setVnodeAndHandler(vnode, vnode.children[0]);
|
|
192
192
|
return false;
|
|
193
193
|
});
|
package/lib/hooks/index.ts
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
import { Component, POJOComponent,
|
|
2
|
-
|
|
3
|
-
interface CurrentOnPatch {
|
|
4
|
-
component: Component | POJOComponent;
|
|
5
|
-
vnode: VnodeWithDom;
|
|
6
|
-
oldVnode: VnodeWithDom;
|
|
7
|
-
}
|
|
1
|
+
import { Component, POJOComponent, current, directive, onCleanup, onUnmount, update } from "valyrian.js";
|
|
8
2
|
|
|
9
3
|
export type Hook = any;
|
|
10
4
|
|
|
@@ -26,6 +20,13 @@ export interface CreateHook {
|
|
|
26
20
|
(HookDefinition: HookDefinition): (...args: any[]) => any;
|
|
27
21
|
}
|
|
28
22
|
|
|
23
|
+
type HookCalls = {
|
|
24
|
+
hooks: Hook[];
|
|
25
|
+
hook_calls: number;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const componentToHooksWeakMap = new WeakMap<Component | POJOComponent, HookCalls>();
|
|
29
|
+
|
|
29
30
|
export const createHook = function createHook({
|
|
30
31
|
onCreate,
|
|
31
32
|
onUpdate: onUpdateHook,
|
|
@@ -34,62 +35,33 @@ export const createHook = function createHook({
|
|
|
34
35
|
returnValue
|
|
35
36
|
}: HookDefinition): Hook {
|
|
36
37
|
return (...args: any[]) => {
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
const component = current.component as Component | POJOComponent;
|
|
39
39
|
let hook: any = null;
|
|
40
40
|
|
|
41
|
-
if (
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
if (componentToHooksWeakMap.has(component) === false) {
|
|
42
|
+
const HookCalls = { hooks: [], hook_calls: -1 };
|
|
43
|
+
componentToHooksWeakMap.set(component, HookCalls);
|
|
44
|
+
onUnmount(() => componentToHooksWeakMap.delete(component));
|
|
45
|
+
}
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
component.hooks = [];
|
|
52
|
-
onUnmount(() => Reflect.deleteProperty(component, "hooks"));
|
|
53
|
-
}
|
|
54
|
-
}
|
|
47
|
+
const HookCalls = componentToHooksWeakMap.get(component) as HookCalls;
|
|
48
|
+
onCleanup(() => (HookCalls.hook_calls = -1));
|
|
49
|
+
|
|
50
|
+
hook = HookCalls.hooks[++HookCalls.hook_calls];
|
|
55
51
|
|
|
56
|
-
|
|
52
|
+
if (hook) {
|
|
53
|
+
onUpdateHook && onUpdateHook(hook, ...args);
|
|
57
54
|
}
|
|
58
55
|
|
|
59
56
|
// If the hook doesn't exist, create it
|
|
60
57
|
if (!hook) {
|
|
61
|
-
// create a new hook
|
|
62
58
|
hook = onCreate(...args);
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
// Add the hook to the component
|
|
66
|
-
component.hooks.push(hook);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
// if we have a onRemove hook, add it to the onUnmount set
|
|
70
|
-
if (onRemove) {
|
|
71
|
-
// Add the hook to the onRemove array
|
|
72
|
-
onUnmount(() => onRemove(hook));
|
|
73
|
-
}
|
|
74
|
-
} else {
|
|
75
|
-
if (onUpdateHook) {
|
|
76
|
-
onUpdateHook(hook, ...args);
|
|
77
|
-
}
|
|
59
|
+
HookCalls.hooks.push(hook);
|
|
60
|
+
onRemove && onUnmount(() => onRemove(hook));
|
|
78
61
|
}
|
|
79
62
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
// Add the hook to the onCleanup set
|
|
83
|
-
onCleanup(() => onCleanupHook(hook));
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
// If we have a returnValue function, call it and return the result instead of the hook
|
|
87
|
-
if (returnValue) {
|
|
88
|
-
return returnValue(hook);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
// Return the hook
|
|
92
|
-
return hook;
|
|
63
|
+
onCleanupHook && onCleanup(() => onCleanupHook(hook));
|
|
64
|
+
return returnValue ? returnValue(hook) : hook;
|
|
93
65
|
};
|
|
94
66
|
} as unknown as CreateHook;
|
|
95
67
|
|
|
@@ -110,7 +82,6 @@ export const useState = createHook({
|
|
|
110
82
|
get.toString = () => `${value}`;
|
|
111
83
|
|
|
112
84
|
function set(newValue: any) {
|
|
113
|
-
// Prevent default event if it exists
|
|
114
85
|
if (current.event) {
|
|
115
86
|
current.event.preventDefault();
|
|
116
87
|
}
|
|
@@ -129,7 +100,7 @@ export const useState = createHook({
|
|
|
129
100
|
// Effect hook
|
|
130
101
|
export const useEffect = createHook({
|
|
131
102
|
onCreate: (effect: Function, changes: any[]) => {
|
|
132
|
-
|
|
103
|
+
const hook: {
|
|
133
104
|
effect: Function;
|
|
134
105
|
prev: any[];
|
|
135
106
|
onRemove?: Function;
|