nexa-runtime 0.1.0

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 (73) hide show
  1. package/dist/component/asyncComponent.d.ts +10 -0
  2. package/dist/component/asyncComponent.d.ts.map +1 -0
  3. package/dist/component/asyncComponent.js +70 -0
  4. package/dist/component/asyncComponent.js.map +1 -0
  5. package/dist/component/defineComponent.d.ts +3 -0
  6. package/dist/component/defineComponent.d.ts.map +1 -0
  7. package/dist/component/defineComponent.js +4 -0
  8. package/dist/component/defineComponent.js.map +1 -0
  9. package/dist/component/errorBoundary.d.ts +7 -0
  10. package/dist/component/errorBoundary.d.ts.map +1 -0
  11. package/dist/component/errorBoundary.js +33 -0
  12. package/dist/component/errorBoundary.js.map +1 -0
  13. package/dist/component/index.d.ts +6 -0
  14. package/dist/component/index.d.ts.map +1 -0
  15. package/dist/component/index.js +6 -0
  16. package/dist/component/index.js.map +1 -0
  17. package/dist/component/lifecycle.d.ts +14 -0
  18. package/dist/component/lifecycle.d.ts.map +1 -0
  19. package/dist/component/lifecycle.js +32 -0
  20. package/dist/component/lifecycle.js.map +1 -0
  21. package/dist/component/suspense.d.ts +9 -0
  22. package/dist/component/suspense.d.ts.map +1 -0
  23. package/dist/component/suspense.js +41 -0
  24. package/dist/component/suspense.js.map +1 -0
  25. package/dist/directives/index.d.ts +7 -0
  26. package/dist/directives/index.d.ts.map +1 -0
  27. package/dist/directives/index.js +27 -0
  28. package/dist/directives/index.js.map +1 -0
  29. package/dist/index.d.ts +9 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +8 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/scheduler.d.ts +2 -0
  34. package/dist/scheduler.d.ts.map +1 -0
  35. package/dist/scheduler.js +18 -0
  36. package/dist/scheduler.js.map +1 -0
  37. package/dist/ssr/hydrate.d.ts +3 -0
  38. package/dist/ssr/hydrate.d.ts.map +1 -0
  39. package/dist/ssr/hydrate.js +149 -0
  40. package/dist/ssr/hydrate.js.map +1 -0
  41. package/dist/ssr/renderToStream.d.ts +3 -0
  42. package/dist/ssr/renderToStream.d.ts.map +1 -0
  43. package/dist/ssr/renderToStream.js +138 -0
  44. package/dist/ssr/renderToStream.js.map +1 -0
  45. package/dist/ssr/renderToString.d.ts +3 -0
  46. package/dist/ssr/renderToString.d.ts.map +1 -0
  47. package/dist/ssr/renderToString.js +129 -0
  48. package/dist/ssr/renderToString.js.map +1 -0
  49. package/dist/vdom/diff.d.ts +10 -0
  50. package/dist/vdom/diff.d.ts.map +1 -0
  51. package/dist/vdom/diff.js +127 -0
  52. package/dist/vdom/diff.js.map +1 -0
  53. package/dist/vdom/h.d.ts +4 -0
  54. package/dist/vdom/h.d.ts.map +1 -0
  55. package/dist/vdom/h.js +62 -0
  56. package/dist/vdom/h.js.map +1 -0
  57. package/dist/vdom/index.d.ts +6 -0
  58. package/dist/vdom/index.d.ts.map +1 -0
  59. package/dist/vdom/index.js +5 -0
  60. package/dist/vdom/index.js.map +1 -0
  61. package/dist/vdom/patch.d.ts +4 -0
  62. package/dist/vdom/patch.d.ts.map +1 -0
  63. package/dist/vdom/patch.js +324 -0
  64. package/dist/vdom/patch.js.map +1 -0
  65. package/dist/vdom/transition.d.ts +9 -0
  66. package/dist/vdom/transition.d.ts.map +1 -0
  67. package/dist/vdom/transition.js +53 -0
  68. package/dist/vdom/transition.js.map +1 -0
  69. package/dist/vdom/types.d.ts +47 -0
  70. package/dist/vdom/types.d.ts.map +1 -0
  71. package/dist/vdom/types.js +2 -0
  72. package/dist/vdom/types.js.map +1 -0
  73. package/package.json +28 -0
@@ -0,0 +1,324 @@
1
+ import { effect } from 'nexa-reactivity';
2
+ import { Fragment } from './types';
3
+ import { setCurrentInstance } from '../component/lifecycle';
4
+ import { getCurrentErrorBoundary } from '../component/errorBoundary';
5
+ import { diff } from './diff';
6
+ const scopeStack = [];
7
+ function pushScope(scopeId) {
8
+ if (scopeId)
9
+ scopeStack.push(scopeId);
10
+ }
11
+ function popScope(scopeId) {
12
+ if (scopeId)
13
+ scopeStack.pop();
14
+ }
15
+ function currentScope() {
16
+ return scopeStack.length > 0 ? scopeStack[scopeStack.length - 1] : undefined;
17
+ }
18
+ export function applyPatches(patches) {
19
+ for (const patch of patches) {
20
+ switch (patch.type) {
21
+ case 'create':
22
+ mount(patch.newVNode, patch.parent, patch.anchor);
23
+ break;
24
+ case 'remove': {
25
+ const vnode = patch.oldVNode;
26
+ const leave = vnode.props?._leave;
27
+ if (leave) {
28
+ animateLeave(vnode, patch.parent, leave);
29
+ }
30
+ else {
31
+ unmount(vnode, patch.parent);
32
+ }
33
+ break;
34
+ }
35
+ case 'replace':
36
+ replaceNode(patch.oldVNode, patch.newVNode, patch.parent, patch.anchor);
37
+ break;
38
+ case 'update':
39
+ updateNode(patch.newVNode);
40
+ break;
41
+ }
42
+ }
43
+ }
44
+ export function mount(vnode, parent, anchor = null) {
45
+ switch (vnode._type) {
46
+ case 'text': {
47
+ const el = document.createTextNode(vnode.text ?? '');
48
+ vnode.el = el;
49
+ parent.insertBefore(el, anchor);
50
+ return el;
51
+ }
52
+ case 'element': {
53
+ const el = document.createElement(vnode.tag);
54
+ vnode.el = el;
55
+ const scope = currentScope();
56
+ if (scope)
57
+ el.setAttribute(scope, '');
58
+ mountProps(el, vnode.props);
59
+ mountChildren(vnode, el);
60
+ parent.insertBefore(el, anchor);
61
+ return el;
62
+ }
63
+ case 'fragment': {
64
+ const children = vnode.children ?? [];
65
+ for (const child of children) {
66
+ mount(child, parent, anchor);
67
+ }
68
+ return null;
69
+ }
70
+ case 'component': {
71
+ return mountComponent(vnode, parent, anchor);
72
+ }
73
+ }
74
+ }
75
+ function mountProps(el, props) {
76
+ if (!props)
77
+ return;
78
+ for (const key of Object.keys(props)) {
79
+ const val = props[key];
80
+ if (key === 'key')
81
+ continue;
82
+ if (key === '_enter') {
83
+ const name = typeof val === 'string' ? val : 'v';
84
+ el.classList.add(`${name}-enter-from`, `${name}-enter-active`);
85
+ let ended = false;
86
+ const onEnd = () => {
87
+ if (ended)
88
+ return;
89
+ ended = true;
90
+ el.classList.remove(`${name}-enter-from`, `${name}-enter-to`, `${name}-enter-active`);
91
+ };
92
+ el.addEventListener('animationend', onEnd, { once: true });
93
+ el.addEventListener('transitionend', onEnd, { once: true });
94
+ setTimeout(onEnd, 300);
95
+ requestAnimationFrame(() => {
96
+ el.classList.remove(`${name}-enter-from`);
97
+ if (!ended)
98
+ el.classList.add(`${name}-enter-to`);
99
+ });
100
+ continue;
101
+ }
102
+ if (key.startsWith('_'))
103
+ continue;
104
+ if (key.startsWith('on')) {
105
+ const event = key.slice(2).toLowerCase();
106
+ el.addEventListener(event, val);
107
+ }
108
+ else if (key === 'class' || key === 'className') {
109
+ if (typeof val === 'string') {
110
+ el.setAttribute('class', val);
111
+ }
112
+ }
113
+ else if (key === 'style') {
114
+ if (typeof val === 'string') {
115
+ el.setAttribute('style', val);
116
+ }
117
+ else if (val && typeof val === 'object') {
118
+ Object.assign(el.style, val);
119
+ }
120
+ }
121
+ else if (key === 'htmlFor') {
122
+ el.setAttribute('for', String(val));
123
+ }
124
+ else if (key === 'value') {
125
+ el.value = String(val);
126
+ }
127
+ else if (key === 'vShow') {
128
+ effect(() => {
129
+ el.style.display = val.value ? '' : 'none';
130
+ });
131
+ }
132
+ else if (typeof val === 'boolean') {
133
+ if (val)
134
+ el.setAttribute(key, '');
135
+ else
136
+ el.removeAttribute(key);
137
+ }
138
+ else {
139
+ el.setAttribute(key, String(val));
140
+ }
141
+ }
142
+ }
143
+ function mountChildren(vnode, parent) {
144
+ const children = vnode.children ?? [];
145
+ for (const child of children) {
146
+ mount(child, parent);
147
+ }
148
+ }
149
+ let currentComponent = null;
150
+ function mountComponent(vnode, parent, anchor = null) {
151
+ const comp = vnode.tag;
152
+ const prevComponent = currentComponent;
153
+ const instance = {
154
+ component: comp,
155
+ props: vnode.props ?? {},
156
+ setupState: {},
157
+ vnode: null,
158
+ mounted: false,
159
+ lifecycle: {
160
+ beforeMount: [],
161
+ mounted: [],
162
+ beforeUpdate: [],
163
+ updated: [],
164
+ beforeUnmount: [],
165
+ unmounted: [],
166
+ },
167
+ };
168
+ vnode.component = instance;
169
+ currentComponent = instance;
170
+ setCurrentInstance(instance);
171
+ pushScope(comp.__scopeId);
172
+ const childSlots = {};
173
+ const children = vnode.children ?? [];
174
+ for (const child of children) {
175
+ const slotName = child.props?.slot || 'default';
176
+ if (!childSlots[slotName])
177
+ childSlots[slotName] = [];
178
+ childSlots[slotName].push(child);
179
+ }
180
+ function buildSlotResult(nodes) {
181
+ if (nodes.length === 0)
182
+ return null;
183
+ if (nodes.length === 1)
184
+ return nodes[0];
185
+ return {
186
+ _type: 'fragment',
187
+ tag: Fragment,
188
+ props: null,
189
+ children: nodes,
190
+ el: null,
191
+ key: null,
192
+ component: null,
193
+ };
194
+ }
195
+ const resolvedSlots = {};
196
+ for (const name of Object.keys(childSlots)) {
197
+ resolvedSlots[name] = (_props) => buildSlotResult(childSlots[name]);
198
+ }
199
+ if (!resolvedSlots.default) {
200
+ resolvedSlots.default = () => null;
201
+ }
202
+ const setupCtx = {
203
+ emit: (event, ...args) => {
204
+ const handler = vnode.props?.[`on${event[0].toUpperCase()}${event.slice(1)}`];
205
+ if (handler)
206
+ handler(...args);
207
+ },
208
+ slots: resolvedSlots,
209
+ };
210
+ let setupState = {};
211
+ if (comp.setup) {
212
+ setupState = comp.setup(vnode.props ?? {}, setupCtx);
213
+ }
214
+ instance.setupState = setupState;
215
+ runLifecycle(instance, 'beforeMount');
216
+ let el = null;
217
+ if (comp.render) {
218
+ const ctx = { ...setupState, props: vnode.props, $slots: setupCtx.slots };
219
+ let oldVNode = null;
220
+ let isFirstRender = true;
221
+ effect(() => {
222
+ try {
223
+ const newVNode = comp.render(ctx);
224
+ if (!newVNode)
225
+ return;
226
+ if (isFirstRender) {
227
+ instance.vnode = newVNode;
228
+ el = mount(newVNode, parent, anchor);
229
+ instance.mounted = true;
230
+ isFirstRender = false;
231
+ runLifecycle(instance, 'mounted');
232
+ }
233
+ else {
234
+ runLifecycle(instance, 'beforeUpdate');
235
+ const patches = diff(oldVNode, newVNode, parent);
236
+ applyPatches(patches);
237
+ instance.vnode = newVNode;
238
+ runLifecycle(instance, 'updated');
239
+ }
240
+ oldVNode = newVNode;
241
+ }
242
+ catch (err) {
243
+ const boundary = getCurrentErrorBoundary();
244
+ if (boundary) {
245
+ boundary.handleError(err instanceof Error ? err : new Error(String(err)));
246
+ }
247
+ else {
248
+ throw err;
249
+ }
250
+ }
251
+ });
252
+ }
253
+ popScope(comp.__scopeId);
254
+ currentComponent = prevComponent;
255
+ setCurrentInstance(prevComponent);
256
+ return el;
257
+ }
258
+ function replaceNode(oldV, newV, parent, anchor) {
259
+ if (oldV.el) {
260
+ unmount(oldV, parent);
261
+ }
262
+ mount(newV, parent, anchor);
263
+ }
264
+ function updateNode(vnode) {
265
+ if (vnode._type === 'text' && vnode.el) {
266
+ vnode.el.textContent = vnode.text ?? '';
267
+ }
268
+ }
269
+ function animateLeave(vnode, _parent, nameOrTrue) {
270
+ const el = vnode.el;
271
+ if (!el) {
272
+ unmount(vnode, _parent);
273
+ return;
274
+ }
275
+ const name = typeof nameOrTrue === 'string' ? nameOrTrue : 'v';
276
+ el.classList.add(`${name}-leave-from`, `${name}-leave-active`);
277
+ let ended = false;
278
+ const onEnd = () => {
279
+ if (ended)
280
+ return;
281
+ ended = true;
282
+ el.classList.remove(`${name}-leave-from`, `${name}-leave-to`, `${name}-leave-active`);
283
+ unmount(vnode, _parent);
284
+ };
285
+ el.addEventListener('animationend', onEnd, { once: true });
286
+ el.addEventListener('transitionend', onEnd, { once: true });
287
+ setTimeout(onEnd, 300);
288
+ requestAnimationFrame(() => {
289
+ el.classList.remove(`${name}-leave-from`);
290
+ if (!ended)
291
+ el.classList.add(`${name}-leave-to`);
292
+ });
293
+ }
294
+ function unmount(vnode, parent) {
295
+ if (vnode._type === 'component') {
296
+ runLifecycle(vnode.component, 'beforeUnmount');
297
+ }
298
+ if (vnode.el) {
299
+ if (vnode._type === 'text' || vnode._type === 'element') {
300
+ if (vnode.el.parentNode) {
301
+ vnode.el.parentNode.removeChild(vnode.el);
302
+ }
303
+ }
304
+ }
305
+ const children = vnode.children ?? [];
306
+ for (const child of children) {
307
+ unmount(child, parent);
308
+ }
309
+ if (vnode._type === 'component') {
310
+ const instance = vnode.component;
311
+ if (instance.vnode) {
312
+ unmount(instance.vnode, parent);
313
+ }
314
+ runLifecycle(instance, 'unmounted');
315
+ vnode.component = null;
316
+ }
317
+ }
318
+ function runLifecycle(instance, hook) {
319
+ const hooks = instance.lifecycle[hook];
320
+ for (const fn of hooks) {
321
+ fn();
322
+ }
323
+ }
324
+ //# sourceMappingURL=patch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/vdom/patch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { VNode } from './types';
2
+ export declare function resolveTransitionProps(props: Record<string, any> | null): TransitionProps | null;
3
+ export type TransitionProps = {
4
+ name: string;
5
+ };
6
+ export declare function applyEnterClasses(vnode: VNode, name: string): void;
7
+ export declare function applyLeaveClasses(vnode: VNode, name: string): Promise<void>;
8
+ export declare function isTransitionVNode(vnode: VNode): boolean;
9
+ //# sourceMappingURL=transition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transition.d.ts","sourceRoot":"","sources":["../../src/vdom/transition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,eAAe,GAAG,IAAI,CAKhG;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAID,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAmBlE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB3E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAEvD"}
@@ -0,0 +1,53 @@
1
+ export function resolveTransitionProps(props) {
2
+ if (!props || !props._transition)
3
+ return null;
4
+ return {
5
+ name: props._transitionName || 'v',
6
+ };
7
+ }
8
+ const ANIMATION_DURATION = 300;
9
+ export function applyEnterClasses(vnode, name) {
10
+ const el = vnode.el;
11
+ if (!el)
12
+ return;
13
+ el.classList.add(`${name}-enter-from`, `${name}-enter-active`);
14
+ requestAnimationFrame(() => {
15
+ el.classList.remove(`${name}-enter-from`);
16
+ el.classList.add(`${name}-enter-to`);
17
+ const onEnd = () => {
18
+ el.classList.remove(`${name}-enter-to`, `${name}-enter-active`);
19
+ el.removeEventListener('animationend', onEnd);
20
+ el.removeEventListener('transitionend', onEnd);
21
+ };
22
+ el.addEventListener('animationend', onEnd);
23
+ el.addEventListener('transitionend', onEnd);
24
+ setTimeout(onEnd, ANIMATION_DURATION);
25
+ });
26
+ }
27
+ export function applyLeaveClasses(vnode, name) {
28
+ return new Promise(resolve => {
29
+ const el = vnode.el;
30
+ if (!el) {
31
+ resolve();
32
+ return;
33
+ }
34
+ el.classList.add(`${name}-leave-from`, `${name}-leave-active`);
35
+ requestAnimationFrame(() => {
36
+ el.classList.remove(`${name}-leave-from`);
37
+ el.classList.add(`${name}-leave-to`);
38
+ const onEnd = () => {
39
+ el.classList.remove(`${name}-leave-to`, `${name}-leave-active`);
40
+ el.removeEventListener('animationend', onEnd);
41
+ el.removeEventListener('transitionend', onEnd);
42
+ resolve();
43
+ };
44
+ el.addEventListener('animationend', onEnd);
45
+ el.addEventListener('transitionend', onEnd);
46
+ setTimeout(onEnd, ANIMATION_DURATION);
47
+ });
48
+ });
49
+ }
50
+ export function isTransitionVNode(vnode) {
51
+ return vnode.props?._transition === true;
52
+ }
53
+ //# sourceMappingURL=transition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transition.js","sourceRoot":"","sources":["../../src/vdom/transition.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,sBAAsB,CAAC,KAAiC;IACtE,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW;QAAE,OAAO,IAAI,CAAA;IAC7C,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,eAAe,IAAI,GAAG;KACnC,CAAA;AACH,CAAC;AAMD,MAAM,kBAAkB,GAAG,GAAG,CAAA;AAE9B,MAAM,UAAU,iBAAiB,CAAC,KAAY,EAAE,IAAY;IAC1D,MAAM,EAAE,GAAG,KAAK,CAAC,EAAwB,CAAA;IACzC,IAAI,CAAC,EAAE;QAAE,OAAM;IAEf,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,aAAa,EAAE,GAAG,IAAI,eAAe,CAAC,CAAA;IAE9D,qBAAqB,CAAC,GAAG,EAAE;QACzB,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,aAAa,CAAC,CAAA;QACzC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,WAAW,CAAC,CAAA;QAEpC,MAAM,KAAK,GAAG,GAAG,EAAE;YACjB,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,WAAW,EAAE,GAAG,IAAI,eAAe,CAAC,CAAA;YAC/D,EAAE,CAAC,mBAAmB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;YAC7C,EAAE,CAAC,mBAAmB,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;QAChD,CAAC,CAAA;QACD,EAAE,CAAC,gBAAgB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;QAC1C,EAAE,CAAC,gBAAgB,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;QAC3C,UAAU,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAY,EAAE,IAAY;IAC1D,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,MAAM,EAAE,GAAG,KAAK,CAAC,EAAwB,CAAA;QACzC,IAAI,CAAC,EAAE,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;YAAC,OAAM;QAAC,CAAC;QAE9B,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,aAAa,EAAE,GAAG,IAAI,eAAe,CAAC,CAAA;QAE9D,qBAAqB,CAAC,GAAG,EAAE;YACzB,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,aAAa,CAAC,CAAA;YACzC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,WAAW,CAAC,CAAA;YAEpC,MAAM,KAAK,GAAG,GAAG,EAAE;gBACjB,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,WAAW,EAAE,GAAG,IAAI,eAAe,CAAC,CAAA;gBAC/D,EAAE,CAAC,mBAAmB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;gBAC7C,EAAE,CAAC,mBAAmB,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;gBAC9C,OAAO,EAAE,CAAA;YACX,CAAC,CAAA;YACD,EAAE,CAAC,gBAAgB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;YAC1C,EAAE,CAAC,gBAAgB,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;YAC3C,UAAU,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAA;QACvC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAY;IAC5C,OAAO,KAAK,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;AAC1C,CAAC"}
@@ -0,0 +1,47 @@
1
+ export type VNodeTypes = 'element' | 'text' | 'fragment' | 'component';
2
+ export type Component = {
3
+ props?: Record<string, any>;
4
+ emits?: Record<string, any>;
5
+ setup?: (props: Record<string, any>, ctx: SetupContext) => Record<string, any>;
6
+ render?: (ctx: Record<string, any>) => VNode | null;
7
+ __scopeId?: string;
8
+ };
9
+ export type SetupContext = {
10
+ emit: (event: string, ...args: any[]) => void;
11
+ slots: Record<string, (props?: Record<string, any>) => VNode | null>;
12
+ };
13
+ export type ComponentInstance = {
14
+ component: Component;
15
+ props: Record<string, any>;
16
+ setupState: Record<string, any>;
17
+ vnode: VNode | null;
18
+ mounted: boolean;
19
+ lifecycle: LifecycleHooks;
20
+ };
21
+ export type LifecycleHooks = {
22
+ beforeMount: (() => void)[];
23
+ mounted: (() => void)[];
24
+ beforeUpdate: (() => void)[];
25
+ updated: (() => void)[];
26
+ beforeUnmount: (() => void)[];
27
+ unmounted: (() => void)[];
28
+ };
29
+ export type PatchOp = {
30
+ type: 'create' | 'remove' | 'replace' | 'update' | 'move';
31
+ oldVNode?: VNode | null;
32
+ newVNode?: VNode | null;
33
+ parent: Node;
34
+ anchor: Node | null;
35
+ };
36
+ export type VNode = {
37
+ _type: VNodeTypes;
38
+ tag: string | Component | typeof Fragment | null;
39
+ props: Record<string, any> | null;
40
+ children: VNode[] | null;
41
+ el: Node | null;
42
+ key: string | number | null;
43
+ component: ComponentInstance | null;
44
+ text?: string;
45
+ };
46
+ export declare const Fragment: unique symbol;
47
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/vdom/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,CAAA;AAEtE,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,YAAY,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC9E,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,KAAK,GAAG,IAAI,CAAA;IACnD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IAC7C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,KAAK,GAAG,IAAI,CAAC,CAAA;CACrE,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,SAAS,CAAA;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC/B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,cAAc,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,WAAW,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAA;IAC3B,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAA;IACvB,YAAY,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAA;IAC5B,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAA;IACvB,aAAa,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAA;IAC7B,SAAS,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAA;IACzD,QAAQ,CAAC,EAAE,KAAK,GAAG,IAAI,CAAA;IACvB,QAAQ,CAAC,EAAE,KAAK,GAAG,IAAI,CAAA;IACvB,MAAM,EAAE,IAAI,CAAA;IACZ,MAAM,EAAE,IAAI,GAAG,IAAI,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,KAAK,GAAG;IAClB,KAAK,EAAE,UAAU,CAAA;IACjB,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,QAAQ,GAAG,IAAI,CAAA;IAChD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAA;IACjC,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;IACxB,EAAE,EAAE,IAAI,GAAG,IAAI,CAAA;IACf,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IAC3B,SAAS,EAAE,iBAAiB,GAAG,IAAI,CAAA;IACnC,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,OAAO,MAA2B,CAAA"}
@@ -0,0 +1,2 @@
1
+ export const Fragment = Symbol('Fragment');
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/vdom/types.ts"],"names":[],"mappings":"AAoDA,MAAM,CAAC,MAAM,QAAQ,GAAkB,MAAM,CAAC,UAAU,CAAC,CAAA"}
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "nexa-runtime",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "main": "./dist/index.js",
6
+ "module": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js",
12
+ "default": "./dist/index.js"
13
+ }
14
+ },
15
+ "dependencies": {
16
+ "nexa-reactivity": "0.1.0"
17
+ },
18
+ "files": [
19
+ "dist"
20
+ ],
21
+ "publishConfig": {
22
+ "access": "public"
23
+ },
24
+ "scripts": {
25
+ "build": "tsc",
26
+ "clean": "rm -rf dist"
27
+ }
28
+ }