valyrian.js 6.0.15 → 7.0.1
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 +24 -0
- package/dist/dataset/index.d.ts.map +1 -0
- package/dist/dataset/index.js +170 -0
- package/dist/dataset/index.mjs +150 -0
- package/dist/hooks/index.d.ts +0 -2
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +20 -35
- package/dist/hooks/index.mjs +20 -34
- package/dist/index.d.ts +89 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +354 -379
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/index.mjs +354 -378
- package/dist/interfaces.d.ts +33 -44
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/node/index.d.ts +1 -3
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +24 -14
- package/dist/node/index.mjs +24 -13
- package/dist/node/utils/inline.d.ts +2 -6
- package/dist/node/utils/inline.d.ts.map +1 -1
- package/dist/node/utils/tree-adapter.d.ts +4 -3
- package/dist/node/utils/tree-adapter.d.ts.map +1 -1
- package/dist/request/index.d.ts +0 -7
- package/dist/request/index.d.ts.map +1 -1
- package/dist/request/index.js +2 -11
- package/dist/request/index.mjs +2 -10
- package/dist/router/index.d.ts +7 -11
- package/dist/router/index.d.ts.map +1 -1
- package/dist/router/index.js +31 -34
- package/dist/router/index.mjs +39 -33
- package/dist/signal/index.d.ts.map +1 -1
- package/dist/signal/index.js +2 -6
- package/dist/signal/index.mjs +2 -5
- package/dist/store/index.d.ts +0 -11
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +3 -19
- package/dist/store/index.mjs +3 -18
- package/dist/sw/index.d.ts +1 -8
- package/dist/sw/index.d.ts.map +1 -1
- package/dist/sw/index.js +2 -11
- package/dist/sw/index.mjs +2 -10
- package/lib/dataset/index.ts +185 -0
- package/lib/hooks/index.ts +28 -47
- package/lib/index.ts +518 -466
- package/lib/interfaces.ts +49 -74
- package/lib/node/index.ts +6 -16
- package/lib/node/utils/tree-adapter.ts +39 -6
- package/lib/request/index.ts +8 -20
- package/lib/router/index.ts +46 -47
- package/lib/signal/index.ts +2 -6
- package/lib/store/index.ts +6 -30
- package/lib/sw/index.ts +2 -20
- package/package.json +8 -5
- package/tsconfig.json +13 -9
- package/dist/request/index.min.js +0 -1
- package/dist/request/index.min.js.map +0 -1
- package/dist/router/index.min.js +0 -1
- package/dist/router/index.min.js.map +0 -1
- package/dist/signal/index.min.js +0 -1
- package/dist/signal/index.min.js.map +0 -1
- package/dist/store/index.min.js +0 -1
- package/dist/store/index.min.js.map +0 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { VnodeInterface, VnodeWithDom } from "valyrian.js";
|
|
2
|
+
interface DataSetInterface<T> {
|
|
3
|
+
data: T[];
|
|
4
|
+
reset: (data: T[]) => void;
|
|
5
|
+
add: (...data: T[]) => void;
|
|
6
|
+
update: (index: number, data: T) => void;
|
|
7
|
+
delete: (index: number) => void;
|
|
8
|
+
}
|
|
9
|
+
interface DataSetHandler<T> {
|
|
10
|
+
(data: T, index: number): VnodeInterface;
|
|
11
|
+
}
|
|
12
|
+
export declare class DataSet<T> implements DataSetInterface<T> {
|
|
13
|
+
#private;
|
|
14
|
+
get data(): T[];
|
|
15
|
+
set data(data: T[]);
|
|
16
|
+
constructor(data?: T[], shouldFreeze?: boolean);
|
|
17
|
+
setVnodeAndHandler(vnode: VnodeWithDom, handler: DataSetHandler<T>): void;
|
|
18
|
+
reset(data: T[]): void;
|
|
19
|
+
add(...data: T[]): void;
|
|
20
|
+
delete(index: any): void;
|
|
21
|
+
update(index: any, item: Partial<T>): void;
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/dataset/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAwD,MAAM,aAAa,CAAC;AAEjH,UAAU,gBAAgB,CAAC,CAAC;IAC1B,IAAI,EAAE,CAAC,EAAE,CAAC;IAEV,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IAE3B,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IAE5B,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAEzC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AACD,UAAU,cAAc,CAAC,CAAC;IAExB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC;CAC1C;AAoBD,qBAAa,OAAO,CAAC,CAAC,CAAE,YAAW,gBAAgB,CAAC,CAAC,CAAC;;IAQpD,IAAI,IAAI,IAQO,CAAC,EAAE,CAFjB;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAEjB;gBAqBW,IAAI,GAAE,CAAC,EAAO,EAAE,YAAY,UAAO;IAK/C,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IAMlE,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE;IAuCf,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;IAwBhB,MAAM,CAAC,KAAK,KAAA;IAcZ,MAAM,CAAC,KAAK,KAAA,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;CAgB/B"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
|
|
19
|
+
// lib/dataset/index.ts
|
|
20
|
+
var dataset_exports = {};
|
|
21
|
+
__export(dataset_exports, {
|
|
22
|
+
DataSet: () => DataSet
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(dataset_exports);
|
|
25
|
+
var import_valyrian = require("valyrian.js");
|
|
26
|
+
function deepFreeze(obj) {
|
|
27
|
+
if (typeof obj === "object" && obj !== null && !Object.isFrozen(obj)) {
|
|
28
|
+
if (Array.isArray(obj)) {
|
|
29
|
+
for (let i = 0, l = obj.length; i < l; i++) {
|
|
30
|
+
deepFreeze(obj[i]);
|
|
31
|
+
}
|
|
32
|
+
} else {
|
|
33
|
+
let props = Reflect.ownKeys(obj);
|
|
34
|
+
for (let i = 0, l = props.length; i < l; i++) {
|
|
35
|
+
deepFreeze(obj[props[i]]);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
Object.freeze(obj);
|
|
39
|
+
}
|
|
40
|
+
return obj;
|
|
41
|
+
}
|
|
42
|
+
var DataSet = class {
|
|
43
|
+
#vnode;
|
|
44
|
+
#handler;
|
|
45
|
+
#data = [];
|
|
46
|
+
#isFrozen = false;
|
|
47
|
+
#dataProxy = null;
|
|
48
|
+
get data() {
|
|
49
|
+
if (this.#dataProxy === null) {
|
|
50
|
+
throw new Error("DataSet is not initialized");
|
|
51
|
+
}
|
|
52
|
+
return this.#dataProxy;
|
|
53
|
+
}
|
|
54
|
+
set data(data) {
|
|
55
|
+
throw new Error("You need to use the reset method to set the data");
|
|
56
|
+
}
|
|
57
|
+
#setData(data) {
|
|
58
|
+
if (this.#isFrozen) {
|
|
59
|
+
this.#data = deepFreeze([...data]);
|
|
60
|
+
} else {
|
|
61
|
+
this.#data = data;
|
|
62
|
+
}
|
|
63
|
+
this.#dataProxy = new Proxy(this.#data, {
|
|
64
|
+
set: () => {
|
|
65
|
+
throw new Error("You need to use the add, update or delete methods to change the data");
|
|
66
|
+
},
|
|
67
|
+
get(target, prop) {
|
|
68
|
+
return target[prop];
|
|
69
|
+
},
|
|
70
|
+
deleteProperty: () => {
|
|
71
|
+
throw new Error("You need to use the add, update or delete methods to change the data");
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
constructor(data = [], shouldFreeze = true) {
|
|
76
|
+
this.#isFrozen = shouldFreeze;
|
|
77
|
+
this.#setData(data);
|
|
78
|
+
}
|
|
79
|
+
setVnodeAndHandler(vnode, handler) {
|
|
80
|
+
this.#vnode = vnode;
|
|
81
|
+
this.#handler = handler;
|
|
82
|
+
this.reset(this.#data);
|
|
83
|
+
}
|
|
84
|
+
reset(data) {
|
|
85
|
+
this.#setData(data);
|
|
86
|
+
let vnode = this.#vnode;
|
|
87
|
+
let handler = this.#handler;
|
|
88
|
+
if (data.length === 0) {
|
|
89
|
+
vnode.children = [];
|
|
90
|
+
vnode.dom.textContent = "";
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
let childrenLength = vnode.children.length;
|
|
94
|
+
for (let i = 0, l = data.length; i < l; i++) {
|
|
95
|
+
let child = handler(this.data[i], i);
|
|
96
|
+
if (i < childrenLength) {
|
|
97
|
+
let oldChild = vnode.children[i];
|
|
98
|
+
child.isSVG = oldChild.isSVG;
|
|
99
|
+
child.dom = oldChild.dom;
|
|
100
|
+
(0, import_valyrian.updateAttributes)(child, oldChild);
|
|
101
|
+
vnode.children[i] = child;
|
|
102
|
+
(0, import_valyrian.patch)(child, oldChild);
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
child.isSVG = vnode.isSVG || child.tag === "svg";
|
|
106
|
+
child.dom = (0, import_valyrian.createDomElement)(child.tag, child.isSVG);
|
|
107
|
+
vnode.dom.appendChild(child.dom);
|
|
108
|
+
(0, import_valyrian.updateAttributes)(child);
|
|
109
|
+
vnode.children.push(child);
|
|
110
|
+
(0, import_valyrian.patch)(child);
|
|
111
|
+
}
|
|
112
|
+
for (let i = data.length; i < childrenLength; i++) {
|
|
113
|
+
vnode.dom.removeChild(vnode.children[i].dom);
|
|
114
|
+
}
|
|
115
|
+
vnode.children.length = data.length;
|
|
116
|
+
}
|
|
117
|
+
add(...data) {
|
|
118
|
+
if (this.#data) {
|
|
119
|
+
let oldLength = this.#data.length;
|
|
120
|
+
if (this.#isFrozen) {
|
|
121
|
+
this.#setData([...this.#data, ...data]);
|
|
122
|
+
} else {
|
|
123
|
+
this.#data.push(...data);
|
|
124
|
+
}
|
|
125
|
+
let vnode = this.#vnode;
|
|
126
|
+
let handler = this.#handler;
|
|
127
|
+
for (let i = 0, ii = oldLength, l = data.length; i < l; i++, ii++) {
|
|
128
|
+
let child = handler(this.#data[i], ii);
|
|
129
|
+
child.isSVG = vnode.isSVG || child.tag === "svg";
|
|
130
|
+
child.dom = (0, import_valyrian.createDomElement)(child.tag, child.isSVG);
|
|
131
|
+
vnode.dom.appendChild(child.dom);
|
|
132
|
+
(0, import_valyrian.updateAttributes)(child);
|
|
133
|
+
vnode.children.push(child);
|
|
134
|
+
(0, import_valyrian.patch)(child);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
delete(index) {
|
|
139
|
+
if (this.#data) {
|
|
140
|
+
let child = this.#vnode.children[index];
|
|
141
|
+
if (this.#isFrozen) {
|
|
142
|
+
this.#setData(this.data.filter((_, i) => i !== index));
|
|
143
|
+
} else {
|
|
144
|
+
this.#data.splice(index, 1);
|
|
145
|
+
}
|
|
146
|
+
this.#vnode.dom.removeChild(child.dom);
|
|
147
|
+
this.#vnode.children.splice(index, 1);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
update(index, item) {
|
|
151
|
+
if (this.#data) {
|
|
152
|
+
let child = this.#vnode.children[index];
|
|
153
|
+
if (this.#isFrozen) {
|
|
154
|
+
this.#setData(this.#data.map((d, i) => i === index ? { ...d, ...item } : d));
|
|
155
|
+
} else {
|
|
156
|
+
this.#data[index] = { ...this.#data[index], ...item };
|
|
157
|
+
}
|
|
158
|
+
let newChild = this.#handler(this.#data[index], index);
|
|
159
|
+
newChild.isSVG = this.#vnode.isSVG || newChild.tag === "svg";
|
|
160
|
+
newChild.dom = child.dom;
|
|
161
|
+
this.#vnode.children[index] = newChild;
|
|
162
|
+
(0, import_valyrian.updateAttributes)(newChild, child);
|
|
163
|
+
(0, import_valyrian.patch)(newChild, child);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
(0, import_valyrian.directive)("with-dataset", (dataSet, vnode) => {
|
|
168
|
+
dataSet.setVnodeAndHandler(vnode, vnode.children[0]);
|
|
169
|
+
return false;
|
|
170
|
+
});
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
// lib/dataset/index.ts
|
|
2
|
+
import { createDomElement, directive, patch, updateAttributes } from "valyrian.js";
|
|
3
|
+
function deepFreeze(obj) {
|
|
4
|
+
if (typeof obj === "object" && obj !== null && !Object.isFrozen(obj)) {
|
|
5
|
+
if (Array.isArray(obj)) {
|
|
6
|
+
for (let i = 0, l = obj.length; i < l; i++) {
|
|
7
|
+
deepFreeze(obj[i]);
|
|
8
|
+
}
|
|
9
|
+
} else {
|
|
10
|
+
let props = Reflect.ownKeys(obj);
|
|
11
|
+
for (let i = 0, l = props.length; i < l; i++) {
|
|
12
|
+
deepFreeze(obj[props[i]]);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
Object.freeze(obj);
|
|
16
|
+
}
|
|
17
|
+
return obj;
|
|
18
|
+
}
|
|
19
|
+
var DataSet = class {
|
|
20
|
+
#vnode;
|
|
21
|
+
#handler;
|
|
22
|
+
#data = [];
|
|
23
|
+
#isFrozen = false;
|
|
24
|
+
#dataProxy = null;
|
|
25
|
+
get data() {
|
|
26
|
+
if (this.#dataProxy === null) {
|
|
27
|
+
throw new Error("DataSet is not initialized");
|
|
28
|
+
}
|
|
29
|
+
return this.#dataProxy;
|
|
30
|
+
}
|
|
31
|
+
set data(data) {
|
|
32
|
+
throw new Error("You need to use the reset method to set the data");
|
|
33
|
+
}
|
|
34
|
+
#setData(data) {
|
|
35
|
+
if (this.#isFrozen) {
|
|
36
|
+
this.#data = deepFreeze([...data]);
|
|
37
|
+
} else {
|
|
38
|
+
this.#data = data;
|
|
39
|
+
}
|
|
40
|
+
this.#dataProxy = new Proxy(this.#data, {
|
|
41
|
+
set: () => {
|
|
42
|
+
throw new Error("You need to use the add, update or delete methods to change the data");
|
|
43
|
+
},
|
|
44
|
+
get(target, prop) {
|
|
45
|
+
return target[prop];
|
|
46
|
+
},
|
|
47
|
+
deleteProperty: () => {
|
|
48
|
+
throw new Error("You need to use the add, update or delete methods to change the data");
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
constructor(data = [], shouldFreeze = true) {
|
|
53
|
+
this.#isFrozen = shouldFreeze;
|
|
54
|
+
this.#setData(data);
|
|
55
|
+
}
|
|
56
|
+
setVnodeAndHandler(vnode, handler) {
|
|
57
|
+
this.#vnode = vnode;
|
|
58
|
+
this.#handler = handler;
|
|
59
|
+
this.reset(this.#data);
|
|
60
|
+
}
|
|
61
|
+
reset(data) {
|
|
62
|
+
this.#setData(data);
|
|
63
|
+
let vnode = this.#vnode;
|
|
64
|
+
let handler = this.#handler;
|
|
65
|
+
if (data.length === 0) {
|
|
66
|
+
vnode.children = [];
|
|
67
|
+
vnode.dom.textContent = "";
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
let childrenLength = vnode.children.length;
|
|
71
|
+
for (let i = 0, l = data.length; i < l; i++) {
|
|
72
|
+
let child = handler(this.data[i], i);
|
|
73
|
+
if (i < childrenLength) {
|
|
74
|
+
let oldChild = vnode.children[i];
|
|
75
|
+
child.isSVG = oldChild.isSVG;
|
|
76
|
+
child.dom = oldChild.dom;
|
|
77
|
+
updateAttributes(child, oldChild);
|
|
78
|
+
vnode.children[i] = child;
|
|
79
|
+
patch(child, oldChild);
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
child.isSVG = vnode.isSVG || child.tag === "svg";
|
|
83
|
+
child.dom = createDomElement(child.tag, child.isSVG);
|
|
84
|
+
vnode.dom.appendChild(child.dom);
|
|
85
|
+
updateAttributes(child);
|
|
86
|
+
vnode.children.push(child);
|
|
87
|
+
patch(child);
|
|
88
|
+
}
|
|
89
|
+
for (let i = data.length; i < childrenLength; i++) {
|
|
90
|
+
vnode.dom.removeChild(vnode.children[i].dom);
|
|
91
|
+
}
|
|
92
|
+
vnode.children.length = data.length;
|
|
93
|
+
}
|
|
94
|
+
add(...data) {
|
|
95
|
+
if (this.#data) {
|
|
96
|
+
let oldLength = this.#data.length;
|
|
97
|
+
if (this.#isFrozen) {
|
|
98
|
+
this.#setData([...this.#data, ...data]);
|
|
99
|
+
} else {
|
|
100
|
+
this.#data.push(...data);
|
|
101
|
+
}
|
|
102
|
+
let vnode = this.#vnode;
|
|
103
|
+
let handler = this.#handler;
|
|
104
|
+
for (let i = 0, ii = oldLength, l = data.length; i < l; i++, ii++) {
|
|
105
|
+
let child = handler(this.#data[i], ii);
|
|
106
|
+
child.isSVG = vnode.isSVG || child.tag === "svg";
|
|
107
|
+
child.dom = createDomElement(child.tag, child.isSVG);
|
|
108
|
+
vnode.dom.appendChild(child.dom);
|
|
109
|
+
updateAttributes(child);
|
|
110
|
+
vnode.children.push(child);
|
|
111
|
+
patch(child);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
delete(index) {
|
|
116
|
+
if (this.#data) {
|
|
117
|
+
let child = this.#vnode.children[index];
|
|
118
|
+
if (this.#isFrozen) {
|
|
119
|
+
this.#setData(this.data.filter((_, i) => i !== index));
|
|
120
|
+
} else {
|
|
121
|
+
this.#data.splice(index, 1);
|
|
122
|
+
}
|
|
123
|
+
this.#vnode.dom.removeChild(child.dom);
|
|
124
|
+
this.#vnode.children.splice(index, 1);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
update(index, item) {
|
|
128
|
+
if (this.#data) {
|
|
129
|
+
let child = this.#vnode.children[index];
|
|
130
|
+
if (this.#isFrozen) {
|
|
131
|
+
this.#setData(this.#data.map((d, i) => i === index ? { ...d, ...item } : d));
|
|
132
|
+
} else {
|
|
133
|
+
this.#data[index] = { ...this.#data[index], ...item };
|
|
134
|
+
}
|
|
135
|
+
let newChild = this.#handler(this.#data[index], index);
|
|
136
|
+
newChild.isSVG = this.#vnode.isSVG || newChild.tag === "svg";
|
|
137
|
+
newChild.dom = child.dom;
|
|
138
|
+
this.#vnode.children[index] = newChild;
|
|
139
|
+
updateAttributes(newChild, child);
|
|
140
|
+
patch(newChild, child);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
directive("with-dataset", (dataSet, vnode) => {
|
|
145
|
+
dataSet.setVnodeAndHandler(vnode, vnode.children[0]);
|
|
146
|
+
return false;
|
|
147
|
+
});
|
|
148
|
+
export {
|
|
149
|
+
DataSet
|
|
150
|
+
};
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Valyrian } from "Valyrian";
|
|
2
1
|
export declare type Hook = any;
|
|
3
2
|
export interface HookDefinition {
|
|
4
3
|
onCreate: (...args: any[]) => any;
|
|
@@ -16,5 +15,4 @@ export declare const useEffect: (...args: any[]) => any;
|
|
|
16
15
|
export declare const useRef: (...args: any[]) => any;
|
|
17
16
|
export declare const useCallback: (...args: any[]) => any;
|
|
18
17
|
export declare const useMemo: (...args: any[]) => any;
|
|
19
|
-
export declare function plugin(v: Valyrian): void;
|
|
20
18
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/hooks/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/hooks/index.ts"],"names":[],"mappings":"AAQA,oBAAY,IAAI,GAAG,GAAG,CAAC;AAEvB,MAAM,WAAW,cAAc;IAE7B,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;IAElC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;IAE/C,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,GAAG,CAAC;IAEhC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,GAAG,CAAC;IAE/B,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,GAAG,CAAC;CACnC;AAED,MAAM,WAAW,UAAU;IAEzB,CAAC,cAAc,EAAE,cAAc,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;CAC3D;AAED,eAAO,MAAM,UAAU,YAiFG,CAAC;AAS3B,eAAO,MAAM,QAAQ,YA7FyB,GAAG,EAAE,KAAK,GAgHtD,CAAC;AAGH,eAAO,MAAM,SAAS,YAnHwB,GAAG,EAAE,KAAK,GAuKtD,CAAC;AAEH,eAAO,MAAM,MAAM,YAzK2B,GAAG,EAAE,KAAK,GAgLtD,CAAC;AAEH,eAAO,MAAM,WAAW,YAlLsB,GAAG,EAAE,KAAK,GAgMtD,CAAC;AAEH,eAAO,MAAM,OAAO,YAlM0B,GAAG,EAAE,KAAK,GAkNtD,CAAC"}
|
package/dist/hooks/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __defProp = Object.defineProperty;
|
|
3
2
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
@@ -21,7 +20,6 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
21
20
|
var hooks_exports = {};
|
|
22
21
|
__export(hooks_exports, {
|
|
23
22
|
createHook: () => createHook,
|
|
24
|
-
plugin: () => plugin,
|
|
25
23
|
useCallback: () => useCallback,
|
|
26
24
|
useEffect: () => useEffect,
|
|
27
25
|
useMemo: () => useMemo,
|
|
@@ -29,58 +27,48 @@ __export(hooks_exports, {
|
|
|
29
27
|
useState: () => useState
|
|
30
28
|
});
|
|
31
29
|
module.exports = __toCommonJS(hooks_exports);
|
|
32
|
-
var
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
onCleanup() {
|
|
41
|
-
},
|
|
42
|
-
onMount() {
|
|
43
|
-
},
|
|
44
|
-
onUpdate() {
|
|
45
|
-
},
|
|
46
|
-
update() {
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
var createHook = function createHook2({ onCreate, onUpdate, onCleanup, onRemove, returnValue }) {
|
|
30
|
+
var import_valyrian = require("valyrian.js");
|
|
31
|
+
var createHook = function createHook2({
|
|
32
|
+
onCreate,
|
|
33
|
+
onUpdate: onUpdateHook,
|
|
34
|
+
onCleanup: onCleanupHook,
|
|
35
|
+
onRemove,
|
|
36
|
+
returnValue
|
|
37
|
+
}) {
|
|
50
38
|
return (...args) => {
|
|
51
|
-
let { component, vnode, oldVnode } =
|
|
39
|
+
let { component, vnode, oldVnode } = import_valyrian.current;
|
|
52
40
|
if (!vnode.components) {
|
|
53
41
|
vnode.components = [];
|
|
54
|
-
|
|
42
|
+
(0, import_valyrian.onUnmount)(() => Reflect.deleteProperty(vnode, "components"));
|
|
55
43
|
}
|
|
56
44
|
if (vnode.components.indexOf(component) === -1) {
|
|
57
45
|
vnode.components.push(component);
|
|
58
46
|
}
|
|
59
47
|
if (!component.hooks) {
|
|
60
48
|
component.hooks = [];
|
|
61
|
-
|
|
49
|
+
(0, import_valyrian.onUnmount)(() => Reflect.deleteProperty(component, "hooks"));
|
|
62
50
|
}
|
|
63
51
|
let hook = void 0;
|
|
64
52
|
if (!oldVnode || !oldVnode.components || oldVnode.components[vnode.components.length - 1] !== component) {
|
|
65
53
|
hook = onCreate(...args);
|
|
66
54
|
component.hooks.push(hook);
|
|
67
55
|
if (onRemove) {
|
|
68
|
-
|
|
56
|
+
(0, import_valyrian.onUnmount)(() => onRemove(hook));
|
|
69
57
|
}
|
|
70
58
|
} else {
|
|
71
59
|
if ("calls" in component === false) {
|
|
72
60
|
component.calls = -1;
|
|
73
|
-
|
|
61
|
+
(0, import_valyrian.onUnmount)(() => Reflect.deleteProperty(component, "calls"));
|
|
74
62
|
}
|
|
75
|
-
|
|
63
|
+
(0, import_valyrian.onCleanup)(() => component.calls = -1);
|
|
76
64
|
component.calls++;
|
|
77
65
|
hook = component.hooks[component.calls];
|
|
78
|
-
if (
|
|
79
|
-
|
|
66
|
+
if (onUpdateHook) {
|
|
67
|
+
onUpdateHook(hook, ...args);
|
|
80
68
|
}
|
|
81
69
|
}
|
|
82
|
-
if (
|
|
83
|
-
|
|
70
|
+
if (onCleanupHook) {
|
|
71
|
+
(0, import_valyrian.onCleanup)(() => onCleanupHook(hook));
|
|
84
72
|
}
|
|
85
73
|
if (returnValue) {
|
|
86
74
|
return returnValue(hook);
|
|
@@ -91,7 +79,7 @@ var createHook = function createHook2({ onCreate, onUpdate, onCleanup, onRemove,
|
|
|
91
79
|
var updateTimeout;
|
|
92
80
|
function delayedUpdate() {
|
|
93
81
|
clearTimeout(updateTimeout);
|
|
94
|
-
updateTimeout = setTimeout(
|
|
82
|
+
updateTimeout = setTimeout(import_valyrian.update);
|
|
95
83
|
}
|
|
96
84
|
var useState = createHook({
|
|
97
85
|
onCreate: (value) => {
|
|
@@ -153,7 +141,7 @@ var useEffect = createHook({
|
|
|
153
141
|
});
|
|
154
142
|
var useRef = createHook({
|
|
155
143
|
onCreate: (initialValue) => {
|
|
156
|
-
|
|
144
|
+
(0, import_valyrian.directive)("ref", (ref, vnode) => {
|
|
157
145
|
ref.current = vnode.dom;
|
|
158
146
|
});
|
|
159
147
|
return { current: initialValue };
|
|
@@ -191,6 +179,3 @@ var useMemo = createHook({
|
|
|
191
179
|
return hook.value;
|
|
192
180
|
}
|
|
193
181
|
});
|
|
194
|
-
function plugin(v) {
|
|
195
|
-
localValyrian = v;
|
|
196
|
-
}
|
package/dist/hooks/index.mjs
CHANGED
|
@@ -1,56 +1,46 @@
|
|
|
1
1
|
// lib/hooks/index.ts
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
onCleanup() {
|
|
11
|
-
},
|
|
12
|
-
onMount() {
|
|
13
|
-
},
|
|
14
|
-
onUpdate() {
|
|
15
|
-
},
|
|
16
|
-
update() {
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
var createHook = function createHook2({ onCreate, onUpdate, onCleanup, onRemove, returnValue }) {
|
|
2
|
+
import { current, directive, onCleanup, onUnmount, update } from "valyrian.js";
|
|
3
|
+
var createHook = function createHook2({
|
|
4
|
+
onCreate,
|
|
5
|
+
onUpdate: onUpdateHook,
|
|
6
|
+
onCleanup: onCleanupHook,
|
|
7
|
+
onRemove,
|
|
8
|
+
returnValue
|
|
9
|
+
}) {
|
|
20
10
|
return (...args) => {
|
|
21
|
-
let { component, vnode, oldVnode } =
|
|
11
|
+
let { component, vnode, oldVnode } = current;
|
|
22
12
|
if (!vnode.components) {
|
|
23
13
|
vnode.components = [];
|
|
24
|
-
|
|
14
|
+
onUnmount(() => Reflect.deleteProperty(vnode, "components"));
|
|
25
15
|
}
|
|
26
16
|
if (vnode.components.indexOf(component) === -1) {
|
|
27
17
|
vnode.components.push(component);
|
|
28
18
|
}
|
|
29
19
|
if (!component.hooks) {
|
|
30
20
|
component.hooks = [];
|
|
31
|
-
|
|
21
|
+
onUnmount(() => Reflect.deleteProperty(component, "hooks"));
|
|
32
22
|
}
|
|
33
23
|
let hook = void 0;
|
|
34
24
|
if (!oldVnode || !oldVnode.components || oldVnode.components[vnode.components.length - 1] !== component) {
|
|
35
25
|
hook = onCreate(...args);
|
|
36
26
|
component.hooks.push(hook);
|
|
37
27
|
if (onRemove) {
|
|
38
|
-
|
|
28
|
+
onUnmount(() => onRemove(hook));
|
|
39
29
|
}
|
|
40
30
|
} else {
|
|
41
31
|
if ("calls" in component === false) {
|
|
42
32
|
component.calls = -1;
|
|
43
|
-
|
|
33
|
+
onUnmount(() => Reflect.deleteProperty(component, "calls"));
|
|
44
34
|
}
|
|
45
|
-
|
|
35
|
+
onCleanup(() => component.calls = -1);
|
|
46
36
|
component.calls++;
|
|
47
37
|
hook = component.hooks[component.calls];
|
|
48
|
-
if (
|
|
49
|
-
|
|
38
|
+
if (onUpdateHook) {
|
|
39
|
+
onUpdateHook(hook, ...args);
|
|
50
40
|
}
|
|
51
41
|
}
|
|
52
|
-
if (
|
|
53
|
-
|
|
42
|
+
if (onCleanupHook) {
|
|
43
|
+
onCleanup(() => onCleanupHook(hook));
|
|
54
44
|
}
|
|
55
45
|
if (returnValue) {
|
|
56
46
|
return returnValue(hook);
|
|
@@ -61,7 +51,7 @@ var createHook = function createHook2({ onCreate, onUpdate, onCleanup, onRemove,
|
|
|
61
51
|
var updateTimeout;
|
|
62
52
|
function delayedUpdate() {
|
|
63
53
|
clearTimeout(updateTimeout);
|
|
64
|
-
updateTimeout = setTimeout(
|
|
54
|
+
updateTimeout = setTimeout(update);
|
|
65
55
|
}
|
|
66
56
|
var useState = createHook({
|
|
67
57
|
onCreate: (value) => {
|
|
@@ -123,7 +113,7 @@ var useEffect = createHook({
|
|
|
123
113
|
});
|
|
124
114
|
var useRef = createHook({
|
|
125
115
|
onCreate: (initialValue) => {
|
|
126
|
-
|
|
116
|
+
directive("ref", (ref, vnode) => {
|
|
127
117
|
ref.current = vnode.dom;
|
|
128
118
|
});
|
|
129
119
|
return { current: initialValue };
|
|
@@ -161,12 +151,8 @@ var useMemo = createHook({
|
|
|
161
151
|
return hook.value;
|
|
162
152
|
}
|
|
163
153
|
});
|
|
164
|
-
function plugin(v) {
|
|
165
|
-
localValyrian = v;
|
|
166
|
-
}
|
|
167
154
|
export {
|
|
168
155
|
createHook,
|
|
169
|
-
plugin,
|
|
170
156
|
useCallback,
|
|
171
157
|
useEffect,
|
|
172
158
|
useMemo,
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,91 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export interface Props {
|
|
2
|
+
key?: string | number;
|
|
3
|
+
state?: any;
|
|
4
|
+
oncreate?: {
|
|
5
|
+
(vnode: VnodeInterface): never;
|
|
6
|
+
};
|
|
7
|
+
onupdate?: {
|
|
8
|
+
(vnode: VnodeInterface, oldVnode: VnodeInterface): never;
|
|
9
|
+
};
|
|
10
|
+
onremove?: {
|
|
11
|
+
(oldVnode: VnodeInterface): never;
|
|
12
|
+
};
|
|
13
|
+
shouldupdate?: {
|
|
14
|
+
(vnode: VnodeInterface, oldVnode: VnodeInterface): undefined | boolean;
|
|
15
|
+
};
|
|
16
|
+
[key: string | number | symbol]: any;
|
|
17
|
+
}
|
|
18
|
+
export interface DomElement extends Element {
|
|
19
|
+
[key: string]: any;
|
|
20
|
+
}
|
|
21
|
+
export interface VnodeInterface {
|
|
22
|
+
new (tag: string | Component | POJOComponent, props: Props, children: Children): VnodeInterface;
|
|
23
|
+
tag: string | Component | POJOComponent;
|
|
24
|
+
props: Props;
|
|
25
|
+
children: Children;
|
|
26
|
+
isSVG?: boolean;
|
|
27
|
+
dom?: DomElement;
|
|
28
|
+
processed?: boolean;
|
|
29
|
+
[key: string | number | symbol]: any;
|
|
30
|
+
}
|
|
31
|
+
export interface VnodeWithDom extends VnodeInterface {
|
|
32
|
+
dom: DomElement;
|
|
33
|
+
}
|
|
34
|
+
export interface Component {
|
|
35
|
+
(props?: Props | null, ...children: any[]): VnodeInterface | Children | any;
|
|
36
|
+
[key: string]: any;
|
|
37
|
+
}
|
|
38
|
+
export interface POJOComponent {
|
|
39
|
+
view: Component;
|
|
40
|
+
props?: Props | null;
|
|
41
|
+
children?: any[];
|
|
42
|
+
[key: string]: any;
|
|
43
|
+
}
|
|
44
|
+
export interface VnodeComponentInterface extends VnodeInterface {
|
|
45
|
+
tag: Component | POJOComponent;
|
|
46
|
+
props: Props;
|
|
47
|
+
children: Children;
|
|
48
|
+
}
|
|
49
|
+
export interface Children extends Array<VnodeInterface | VnodeComponentInterface | any> {
|
|
50
|
+
}
|
|
51
|
+
export interface Directive {
|
|
52
|
+
(value: any, vnode: VnodeWithDom, oldVnode?: VnodeWithDom): void | boolean;
|
|
53
|
+
}
|
|
54
|
+
export interface Directives {
|
|
55
|
+
[key: string]: Directive;
|
|
56
|
+
}
|
|
57
|
+
export interface ReservedProps {
|
|
58
|
+
[key: string]: true;
|
|
59
|
+
}
|
|
60
|
+
export interface Current {
|
|
61
|
+
component: Component | POJOComponent | null;
|
|
62
|
+
vnode: VnodeWithDom | null;
|
|
63
|
+
oldVnode?: VnodeWithDom | null;
|
|
64
|
+
}
|
|
65
|
+
export interface V {
|
|
66
|
+
(tagOrComponent: string | Component | POJOComponent, props: Props | null, ...children: Children): VnodeInterface | VnodeComponentInterface;
|
|
67
|
+
fragment(_: any, ...children: Children): Children;
|
|
68
|
+
}
|
|
69
|
+
export declare let isNodeJs: boolean;
|
|
70
|
+
export declare function createDomElement(tag: string, isSVG?: boolean): DomElement;
|
|
3
71
|
export declare const Vnode: VnodeInterface;
|
|
4
|
-
export declare
|
|
5
|
-
export declare const
|
|
6
|
-
export declare const
|
|
72
|
+
export declare function isComponent(component: any): component is Component;
|
|
73
|
+
export declare const isVnode: (object?: unknown | VnodeInterface) => object is VnodeInterface;
|
|
74
|
+
export declare const isVnodeComponent: (object?: unknown | VnodeComponentInterface) => object is VnodeComponentInterface;
|
|
75
|
+
export declare function trust(htmlString: string): any;
|
|
76
|
+
export declare const current: Current;
|
|
77
|
+
export declare const reservedProps: Record<string, true>;
|
|
78
|
+
export declare function onMount(callback: any): void;
|
|
79
|
+
export declare function onUpdate(callback: any): void;
|
|
80
|
+
export declare function onCleanup(callback: any): void;
|
|
81
|
+
export declare function onUnmount(callback: any): void;
|
|
82
|
+
export declare const directives: Directives;
|
|
83
|
+
export declare function directive(name: string, directive: Directive): void;
|
|
84
|
+
export declare function setAttribute(name: string, value: any, newVnode: VnodeWithDom, oldVnode?: VnodeWithDom): void;
|
|
85
|
+
export declare function updateAttributes(newVnode: VnodeWithDom, oldVnode?: VnodeWithDom): void;
|
|
86
|
+
export declare function patch(newVnode: VnodeWithDom, oldVnode?: VnodeWithDom): void;
|
|
87
|
+
export declare function update(): void | string;
|
|
88
|
+
export declare function unmount(): string | void;
|
|
89
|
+
export declare function mount(dom: any, component: any): string | void;
|
|
90
|
+
export declare const v: V;
|
|
7
91
|
//# sourceMappingURL=index.d.ts.map
|