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.
Files changed (64) hide show
  1. package/dist/dataset/index.d.ts +24 -0
  2. package/dist/dataset/index.d.ts.map +1 -0
  3. package/dist/dataset/index.js +170 -0
  4. package/dist/dataset/index.mjs +150 -0
  5. package/dist/hooks/index.d.ts +0 -2
  6. package/dist/hooks/index.d.ts.map +1 -1
  7. package/dist/hooks/index.js +20 -35
  8. package/dist/hooks/index.mjs +20 -34
  9. package/dist/index.d.ts +89 -5
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +354 -379
  12. package/dist/index.min.js +1 -1
  13. package/dist/index.min.js.map +1 -1
  14. package/dist/index.mjs +354 -378
  15. package/dist/interfaces.d.ts +33 -44
  16. package/dist/interfaces.d.ts.map +1 -1
  17. package/dist/node/index.d.ts +1 -3
  18. package/dist/node/index.d.ts.map +1 -1
  19. package/dist/node/index.js +24 -14
  20. package/dist/node/index.mjs +24 -13
  21. package/dist/node/utils/inline.d.ts +2 -6
  22. package/dist/node/utils/inline.d.ts.map +1 -1
  23. package/dist/node/utils/tree-adapter.d.ts +4 -3
  24. package/dist/node/utils/tree-adapter.d.ts.map +1 -1
  25. package/dist/request/index.d.ts +0 -7
  26. package/dist/request/index.d.ts.map +1 -1
  27. package/dist/request/index.js +2 -11
  28. package/dist/request/index.mjs +2 -10
  29. package/dist/router/index.d.ts +7 -11
  30. package/dist/router/index.d.ts.map +1 -1
  31. package/dist/router/index.js +31 -34
  32. package/dist/router/index.mjs +39 -33
  33. package/dist/signal/index.d.ts.map +1 -1
  34. package/dist/signal/index.js +2 -6
  35. package/dist/signal/index.mjs +2 -5
  36. package/dist/store/index.d.ts +0 -11
  37. package/dist/store/index.d.ts.map +1 -1
  38. package/dist/store/index.js +3 -19
  39. package/dist/store/index.mjs +3 -18
  40. package/dist/sw/index.d.ts +1 -8
  41. package/dist/sw/index.d.ts.map +1 -1
  42. package/dist/sw/index.js +2 -11
  43. package/dist/sw/index.mjs +2 -10
  44. package/lib/dataset/index.ts +185 -0
  45. package/lib/hooks/index.ts +28 -47
  46. package/lib/index.ts +518 -466
  47. package/lib/interfaces.ts +49 -74
  48. package/lib/node/index.ts +6 -16
  49. package/lib/node/utils/tree-adapter.ts +39 -6
  50. package/lib/request/index.ts +8 -20
  51. package/lib/router/index.ts +46 -47
  52. package/lib/signal/index.ts +2 -6
  53. package/lib/store/index.ts +6 -30
  54. package/lib/sw/index.ts +2 -20
  55. package/package.json +8 -5
  56. package/tsconfig.json +13 -9
  57. package/dist/request/index.min.js +0 -1
  58. package/dist/request/index.min.js.map +0 -1
  59. package/dist/router/index.min.js +0 -1
  60. package/dist/router/index.min.js.map +0 -1
  61. package/dist/signal/index.min.js +0 -1
  62. package/dist/signal/index.min.js.map +0 -1
  63. package/dist/store/index.min.js +0 -1
  64. 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
+ };
@@ -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":"AAAA,OAAO,EAAa,QAAQ,EAAmC,MAAM,UAAU,CAAC;AAgChF,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,YA2EG,CAAC;AAS3B,eAAO,MAAM,QAAQ,YAvFyB,GAAG,EAAE,KAAK,GAuGtD,CAAC;AAGH,eAAO,MAAM,SAAS,YA1GwB,GAAG,EAAE,KAAK,GA8JtD,CAAC;AAEH,eAAO,MAAM,MAAM,YAhK2B,GAAG,EAAE,KAAK,GAuKtD,CAAC;AAEH,eAAO,MAAM,WAAW,YAzKsB,GAAG,EAAE,KAAK,GAuLtD,CAAC;AAEH,eAAO,MAAM,OAAO,YAzL0B,GAAG,EAAE,KAAK,GAyMtD,CAAC;AAEH,wBAAgB,MAAM,CAAC,CAAC,EAAE,QAAQ,QAEjC"}
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"}
@@ -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 localValyrian = {
33
- current: {
34
- component: null,
35
- vnode: null,
36
- oldVnode: null
37
- },
38
- onUnmount() {
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 } = localValyrian.current;
39
+ let { component, vnode, oldVnode } = import_valyrian.current;
52
40
  if (!vnode.components) {
53
41
  vnode.components = [];
54
- localValyrian.onUnmount(() => Reflect.deleteProperty(vnode, "components"));
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
- localValyrian.onUnmount(() => Reflect.deleteProperty(component, "hooks"));
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
- localValyrian.onUnmount(() => onRemove(hook));
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
- localValyrian.onUnmount(() => Reflect.deleteProperty(component, "calls"));
61
+ (0, import_valyrian.onUnmount)(() => Reflect.deleteProperty(component, "calls"));
74
62
  }
75
- localValyrian.onCleanup(() => component.calls = -1);
63
+ (0, import_valyrian.onCleanup)(() => component.calls = -1);
76
64
  component.calls++;
77
65
  hook = component.hooks[component.calls];
78
- if (onUpdate) {
79
- onUpdate(hook, ...args);
66
+ if (onUpdateHook) {
67
+ onUpdateHook(hook, ...args);
80
68
  }
81
69
  }
82
- if (onCleanup) {
83
- localValyrian.onCleanup(() => onCleanup(hook));
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(localValyrian.update);
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
- localValyrian.directive("ref", (ref, vnode) => {
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
- }
@@ -1,56 +1,46 @@
1
1
  // lib/hooks/index.ts
2
- var localValyrian = {
3
- current: {
4
- component: null,
5
- vnode: null,
6
- oldVnode: null
7
- },
8
- onUnmount() {
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 } = localValyrian.current;
11
+ let { component, vnode, oldVnode } = current;
22
12
  if (!vnode.components) {
23
13
  vnode.components = [];
24
- localValyrian.onUnmount(() => Reflect.deleteProperty(vnode, "components"));
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
- localValyrian.onUnmount(() => Reflect.deleteProperty(component, "hooks"));
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
- localValyrian.onUnmount(() => onRemove(hook));
28
+ onUnmount(() => onRemove(hook));
39
29
  }
40
30
  } else {
41
31
  if ("calls" in component === false) {
42
32
  component.calls = -1;
43
- localValyrian.onUnmount(() => Reflect.deleteProperty(component, "calls"));
33
+ onUnmount(() => Reflect.deleteProperty(component, "calls"));
44
34
  }
45
- localValyrian.onCleanup(() => component.calls = -1);
35
+ onCleanup(() => component.calls = -1);
46
36
  component.calls++;
47
37
  hook = component.hooks[component.calls];
48
- if (onUpdate) {
49
- onUpdate(hook, ...args);
38
+ if (onUpdateHook) {
39
+ onUpdateHook(hook, ...args);
50
40
  }
51
41
  }
52
- if (onCleanup) {
53
- localValyrian.onCleanup(() => onCleanup(hook));
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(localValyrian.update);
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
- localValyrian.directive("ref", (ref, vnode) => {
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
- /// <reference path="interfaces.d.ts" />
2
- import { Valyrian, VnodeComponentInterface, VnodeInterface, VnodeTextInterface } from "Valyrian";
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 const VnodeText: VnodeTextInterface;
5
- export declare const VnodeComponent: VnodeComponentInterface;
6
- export declare const v: Valyrian;
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