frontend-hamroun 1.2.85 → 1.2.89
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/batch.d.ts +4 -0
- package/dist/batch.d.ts.map +1 -0
- package/dist/batch.js +22 -0
- package/dist/client-router.d.ts +61 -0
- package/dist/client-router.d.ts.map +1 -0
- package/dist/client-router.js +209 -0
- package/dist/component.d.ts +15 -0
- package/dist/component.d.ts.map +1 -0
- package/dist/component.js +84 -0
- package/dist/components/Counter.d.ts +1 -0
- package/dist/components/Counter.d.ts.map +1 -0
- package/dist/components/Counter.js +2 -0
- package/dist/context.d.ts +5 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +23 -0
- package/dist/event-bus.d.ts +24 -0
- package/dist/event-bus.d.ts.map +1 -0
- package/dist/event-bus.js +74 -0
- package/dist/forms.d.ts +41 -0
- package/dist/forms.d.ts.map +1 -0
- package/dist/forms.js +147 -0
- package/dist/hooks.d.ts +12 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +142 -0
- package/dist/index.cjs +1231 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.client.d.ts +13 -0
- package/dist/index.client.d.ts.map +1 -0
- package/dist/index.client.js +12 -25
- package/dist/index.d.ts +68 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1153 -265
- package/dist/index.js.map +1 -1
- package/dist/jsx-dev-runtime.cjs +102 -0
- package/dist/jsx-dev-runtime.cjs.map +1 -0
- package/dist/jsx-dev-runtime.d.ts +3 -0
- package/dist/jsx-dev-runtime.d.ts.map +1 -0
- package/dist/jsx-dev-runtime.js +96 -0
- package/dist/jsx-dev-runtime.js.map +1 -0
- package/dist/jsx-runtime/jsx-runtime.d.ts +5 -0
- package/dist/jsx-runtime/jsx-runtime.d.ts.map +1 -0
- package/dist/jsx-runtime/jsx-runtime.js +40 -0
- package/dist/jsx-runtime.cjs +112 -1
- package/dist/jsx-runtime.cjs.map +1 -1
- package/dist/jsx-runtime.d.ts +18 -0
- package/dist/jsx-runtime.d.ts.map +1 -0
- package/dist/jsx-runtime.js +90 -79
- package/dist/jsx-runtime.js.map +1 -1
- package/dist/lifecycle-events.d.ts +109 -0
- package/dist/lifecycle-events.d.ts.map +1 -0
- package/dist/lifecycle-events.js +176 -0
- package/dist/renderComponent.d.ts +14 -0
- package/dist/renderComponent.d.ts.map +1 -0
- package/dist/renderComponent.js +29 -0
- package/dist/renderer.d.ts +4 -0
- package/dist/renderer.d.ts.map +1 -0
- package/dist/renderer.js +49 -0
- package/dist/router.d.ts +56 -0
- package/dist/router.d.ts.map +1 -0
- package/dist/router.js +165 -0
- package/dist/server-renderer.d.ts +2 -0
- package/dist/server-renderer.d.ts.map +1 -0
- package/dist/server-renderer.js +111 -5
- package/dist/server-types.d.ts +43 -0
- package/dist/server-types.d.ts.map +1 -0
- package/dist/server-types.js +5 -0
- package/dist/store.d.ts +42 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +98 -0
- package/dist/types.d.ts +272 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/utils.d.ts +47 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +143 -0
- package/dist/vdom.d.ts +9 -0
- package/dist/vdom.d.ts.map +1 -0
- package/dist/vdom.js +21 -0
- package/dist/wasm.d.ts +37 -0
- package/dist/wasm.d.ts.map +1 -0
- package/dist/wasm.js +158 -0
- package/package.json +54 -83
- package/dist/index.client.cjs +0 -2
- package/dist/index.client.cjs.map +0 -1
- package/dist/index.client.js.map +0 -1
- package/dist/renderer-DaVfBeVi.cjs +0 -2
- package/dist/renderer-DaVfBeVi.cjs.map +0 -1
- package/dist/renderer-nfT7XSpo.js +0 -61
- package/dist/renderer-nfT7XSpo.js.map +0 -1
- package/dist/server-renderer-B5b0Q0ck.cjs +0 -2
- package/dist/server-renderer-B5b0Q0ck.cjs.map +0 -1
- package/dist/server-renderer-C4MB-jAp.js +0 -248
- package/dist/server-renderer-C4MB-jAp.js.map +0 -1
- package/dist/server-renderer.cjs +0 -2
- package/dist/server-renderer.cjs.map +0 -1
- package/dist/server-renderer.js.map +0 -1
package/dist/types.d.ts
ADDED
@@ -0,0 +1,272 @@
|
|
1
|
+
export interface VNode {
|
2
|
+
type: string | Function;
|
3
|
+
props: Record<string, any>;
|
4
|
+
key?: string | number;
|
5
|
+
ref?: any;
|
6
|
+
}
|
7
|
+
export interface ComponentProps {
|
8
|
+
children?: any;
|
9
|
+
key?: string | number;
|
10
|
+
ref?: any;
|
11
|
+
[key: string]: any;
|
12
|
+
}
|
13
|
+
export interface FunctionComponent<P = {}> {
|
14
|
+
(props: P): VNode | null;
|
15
|
+
displayName?: string;
|
16
|
+
}
|
17
|
+
export interface ClassComponent<P = {}, S = {}> {
|
18
|
+
new (props: P): Component<P, S>;
|
19
|
+
}
|
20
|
+
export type ComponentType<P = {}> = FunctionComponent<P> | ClassComponent<P>;
|
21
|
+
export interface RefObject<T> {
|
22
|
+
current: T;
|
23
|
+
}
|
24
|
+
export interface MutableRefObject<T> {
|
25
|
+
current: T;
|
26
|
+
}
|
27
|
+
export type Ref<T> = RefObject<T> | MutableRefObject<T> | null;
|
28
|
+
export type Key = string | number;
|
29
|
+
export interface ReactElement<P = any, T extends string | Function = string | Function> {
|
30
|
+
type: T;
|
31
|
+
props: P;
|
32
|
+
key: Key | null;
|
33
|
+
ref: any;
|
34
|
+
}
|
35
|
+
export interface HTMLAttributes<T> {
|
36
|
+
className?: string;
|
37
|
+
id?: string;
|
38
|
+
style?: Record<string, string | number>;
|
39
|
+
onClick?: (event: MouseEvent) => void;
|
40
|
+
onChange?: (event: Event) => void;
|
41
|
+
onSubmit?: (event: Event) => void;
|
42
|
+
onKeyPress?: (event: KeyboardEvent) => void;
|
43
|
+
onKeyDown?: (event: KeyboardEvent) => void;
|
44
|
+
onKeyUp?: (event: KeyboardEvent) => void;
|
45
|
+
onFocus?: (event: FocusEvent) => void;
|
46
|
+
onBlur?: (event: FocusEvent) => void;
|
47
|
+
onMouseEnter?: (event: MouseEvent) => void;
|
48
|
+
onMouseLeave?: (event: MouseEvent) => void;
|
49
|
+
[key: string]: any;
|
50
|
+
}
|
51
|
+
export interface InputHTMLAttributes<T> extends HTMLAttributes<T> {
|
52
|
+
type?: string;
|
53
|
+
value?: string | number;
|
54
|
+
placeholder?: string;
|
55
|
+
disabled?: boolean;
|
56
|
+
required?: boolean;
|
57
|
+
checked?: boolean;
|
58
|
+
defaultValue?: string | number;
|
59
|
+
defaultChecked?: boolean;
|
60
|
+
min?: string | number;
|
61
|
+
max?: string | number;
|
62
|
+
step?: string | number;
|
63
|
+
name?: string;
|
64
|
+
}
|
65
|
+
export interface ButtonHTMLAttributes<T> extends HTMLAttributes<T> {
|
66
|
+
type?: 'button' | 'submit' | 'reset';
|
67
|
+
disabled?: boolean;
|
68
|
+
form?: string;
|
69
|
+
}
|
70
|
+
export interface SelectHTMLAttributes<T> extends HTMLAttributes<T> {
|
71
|
+
value?: string | number;
|
72
|
+
disabled?: boolean;
|
73
|
+
multiple?: boolean;
|
74
|
+
required?: boolean;
|
75
|
+
size?: number;
|
76
|
+
name?: string;
|
77
|
+
}
|
78
|
+
export interface TextareaHTMLAttributes<T> extends HTMLAttributes<T> {
|
79
|
+
value?: string;
|
80
|
+
placeholder?: string;
|
81
|
+
disabled?: boolean;
|
82
|
+
required?: boolean;
|
83
|
+
rows?: number;
|
84
|
+
cols?: number;
|
85
|
+
name?: string;
|
86
|
+
}
|
87
|
+
export interface FormHTMLAttributes<T> extends HTMLAttributes<T> {
|
88
|
+
action?: string;
|
89
|
+
method?: string;
|
90
|
+
encType?: string;
|
91
|
+
target?: string;
|
92
|
+
noValidate?: boolean;
|
93
|
+
}
|
94
|
+
export type StateSetter<T> = (value: T | ((prev: T) => T)) => void;
|
95
|
+
export type StateHook<T> = [T, StateSetter<T>];
|
96
|
+
export type EffectCallback = () => void | (() => void);
|
97
|
+
export type DependencyList = ReadonlyArray<any>;
|
98
|
+
export type MemoFactory<T> = () => T;
|
99
|
+
export interface Context<T> {
|
100
|
+
Provider: ComponentType<{
|
101
|
+
value: T;
|
102
|
+
children?: any;
|
103
|
+
}>;
|
104
|
+
Consumer: ComponentType<{
|
105
|
+
children: (value: T) => any;
|
106
|
+
}>;
|
107
|
+
displayName?: string;
|
108
|
+
}
|
109
|
+
export interface Component<P = {}, S = {}> {
|
110
|
+
props: P;
|
111
|
+
state: S;
|
112
|
+
setState(partialState: Partial<S>): void;
|
113
|
+
render(): VNode | null;
|
114
|
+
componentDidMount?(): void;
|
115
|
+
componentDidUpdate?(prevProps: P, prevState: S): void;
|
116
|
+
componentWillUnmount?(): void;
|
117
|
+
}
|
118
|
+
export interface SyntheticEvent<T = Element> {
|
119
|
+
currentTarget: T;
|
120
|
+
target: EventTarget & T;
|
121
|
+
preventDefault(): void;
|
122
|
+
stopPropagation(): void;
|
123
|
+
nativeEvent: Event;
|
124
|
+
}
|
125
|
+
export interface MouseEvent<T = Element> extends SyntheticEvent<T> {
|
126
|
+
button: number;
|
127
|
+
buttons: number;
|
128
|
+
clientX: number;
|
129
|
+
clientY: number;
|
130
|
+
ctrlKey: boolean;
|
131
|
+
metaKey: boolean;
|
132
|
+
shiftKey: boolean;
|
133
|
+
altKey: boolean;
|
134
|
+
}
|
135
|
+
export interface KeyboardEvent<T = Element> extends SyntheticEvent<T> {
|
136
|
+
key: string;
|
137
|
+
code: string;
|
138
|
+
ctrlKey: boolean;
|
139
|
+
metaKey: boolean;
|
140
|
+
shiftKey: boolean;
|
141
|
+
altKey: boolean;
|
142
|
+
}
|
143
|
+
export interface FocusEvent<T = Element> extends SyntheticEvent<T> {
|
144
|
+
relatedTarget: EventTarget | null;
|
145
|
+
}
|
146
|
+
export interface ChangeEvent<T = Element> extends SyntheticEvent<T> {
|
147
|
+
target: EventTarget & T;
|
148
|
+
}
|
149
|
+
export interface FormEvent<T = Element> extends SyntheticEvent<T> {
|
150
|
+
}
|
151
|
+
declare global {
|
152
|
+
namespace JSX {
|
153
|
+
interface IntrinsicElements {
|
154
|
+
div: HTMLAttributes<HTMLDivElement>;
|
155
|
+
span: HTMLAttributes<HTMLSpanElement>;
|
156
|
+
p: HTMLAttributes<HTMLParagraphElement>;
|
157
|
+
h1: HTMLAttributes<HTMLHeadingElement>;
|
158
|
+
h2: HTMLAttributes<HTMLHeadingElement>;
|
159
|
+
h3: HTMLAttributes<HTMLHeadingElement>;
|
160
|
+
h4: HTMLAttributes<HTMLHeadingElement>;
|
161
|
+
h5: HTMLAttributes<HTMLHeadingElement>;
|
162
|
+
h6: HTMLAttributes<HTMLHeadingElement>;
|
163
|
+
a: HTMLAttributes<HTMLAnchorElement> & {
|
164
|
+
href?: string;
|
165
|
+
target?: string;
|
166
|
+
};
|
167
|
+
img: HTMLAttributes<HTMLImageElement> & {
|
168
|
+
src?: string;
|
169
|
+
alt?: string;
|
170
|
+
width?: number;
|
171
|
+
height?: number;
|
172
|
+
};
|
173
|
+
input: InputHTMLAttributes<HTMLInputElement>;
|
174
|
+
button: ButtonHTMLAttributes<HTMLButtonElement>;
|
175
|
+
select: SelectHTMLAttributes<HTMLSelectElement>;
|
176
|
+
option: HTMLAttributes<HTMLOptionElement> & {
|
177
|
+
value?: string | number;
|
178
|
+
selected?: boolean;
|
179
|
+
};
|
180
|
+
textarea: TextareaHTMLAttributes<HTMLTextAreaElement>;
|
181
|
+
form: FormHTMLAttributes<HTMLFormElement>;
|
182
|
+
label: HTMLAttributes<HTMLLabelElement> & {
|
183
|
+
htmlFor?: string;
|
184
|
+
};
|
185
|
+
ul: HTMLAttributes<HTMLUListElement>;
|
186
|
+
ol: HTMLAttributes<HTMLOListElement>;
|
187
|
+
li: HTMLAttributes<HTMLLIElement>;
|
188
|
+
table: HTMLAttributes<HTMLTableElement>;
|
189
|
+
thead: HTMLAttributes<HTMLTableSectionElement>;
|
190
|
+
tbody: HTMLAttributes<HTMLTableSectionElement>;
|
191
|
+
tr: HTMLAttributes<HTMLTableRowElement>;
|
192
|
+
td: HTMLAttributes<HTMLTableCellElement>;
|
193
|
+
th: HTMLAttributes<HTMLTableCellElement>;
|
194
|
+
nav: HTMLAttributes<HTMLElement>;
|
195
|
+
header: HTMLAttributes<HTMLElement>;
|
196
|
+
footer: HTMLAttributes<HTMLElement>;
|
197
|
+
main: HTMLAttributes<HTMLElement>;
|
198
|
+
section: HTMLAttributes<HTMLElement>;
|
199
|
+
article: HTMLAttributes<HTMLElement>;
|
200
|
+
aside: HTMLAttributes<HTMLElement>;
|
201
|
+
pre: HTMLAttributes<HTMLPreElement>;
|
202
|
+
code: HTMLAttributes<HTMLElement>;
|
203
|
+
strong: HTMLAttributes<HTMLElement>;
|
204
|
+
em: HTMLAttributes<HTMLElement>;
|
205
|
+
br: HTMLAttributes<HTMLBRElement>;
|
206
|
+
hr: HTMLAttributes<HTMLHRElement>;
|
207
|
+
iframe: HTMLAttributes<HTMLIFrameElement> & {
|
208
|
+
src?: string;
|
209
|
+
width?: number;
|
210
|
+
height?: number;
|
211
|
+
};
|
212
|
+
svg: HTMLAttributes<SVGSVGElement> & {
|
213
|
+
viewBox?: string;
|
214
|
+
width?: number;
|
215
|
+
height?: number;
|
216
|
+
};
|
217
|
+
path: HTMLAttributes<SVGPathElement> & {
|
218
|
+
d?: string;
|
219
|
+
fill?: string;
|
220
|
+
stroke?: string;
|
221
|
+
};
|
222
|
+
circle: HTMLAttributes<SVGCircleElement> & {
|
223
|
+
cx?: number;
|
224
|
+
cy?: number;
|
225
|
+
r?: number;
|
226
|
+
fill?: string;
|
227
|
+
stroke?: string;
|
228
|
+
};
|
229
|
+
rect: HTMLAttributes<SVGRectElement> & {
|
230
|
+
x?: number;
|
231
|
+
y?: number;
|
232
|
+
width?: number;
|
233
|
+
height?: number;
|
234
|
+
fill?: string;
|
235
|
+
stroke?: string;
|
236
|
+
};
|
237
|
+
}
|
238
|
+
interface Element extends VNode {
|
239
|
+
}
|
240
|
+
interface ElementClass extends Component {
|
241
|
+
}
|
242
|
+
interface ElementAttributesProperty {
|
243
|
+
props: {};
|
244
|
+
}
|
245
|
+
interface ElementChildrenAttribute {
|
246
|
+
children: {};
|
247
|
+
}
|
248
|
+
}
|
249
|
+
}
|
250
|
+
export declare namespace React {
|
251
|
+
type FC<P = {}> = FunctionComponent<P>;
|
252
|
+
type ReactNode = any;
|
253
|
+
interface MouseEvent<T = Element> extends SyntheticEvent<T> {
|
254
|
+
button: number;
|
255
|
+
buttons: number;
|
256
|
+
clientX: number;
|
257
|
+
clientY: number;
|
258
|
+
ctrlKey: boolean;
|
259
|
+
metaKey: boolean;
|
260
|
+
shiftKey: boolean;
|
261
|
+
altKey: boolean;
|
262
|
+
}
|
263
|
+
interface KeyboardEvent<T = Element> extends SyntheticEvent<T> {
|
264
|
+
key: string;
|
265
|
+
code: string;
|
266
|
+
ctrlKey: boolean;
|
267
|
+
metaKey: boolean;
|
268
|
+
shiftKey: boolean;
|
269
|
+
altKey: boolean;
|
270
|
+
}
|
271
|
+
}
|
272
|
+
//# sourceMappingURL=types.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
package/dist/utils.d.ts
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
/**
|
2
|
+
* Common utility functions for the framework
|
3
|
+
*/
|
4
|
+
export interface DebouncedFunction<T extends (...args: any[]) => any> {
|
5
|
+
(...args: Parameters<T>): void;
|
6
|
+
cancel: () => void;
|
7
|
+
}
|
8
|
+
/**
|
9
|
+
* Creates a debounced function that delays invoking the provided function
|
10
|
+
* until after the specified wait time has elapsed since the last time it was invoked.
|
11
|
+
*/
|
12
|
+
export declare function debounce<T extends (...args: any[]) => any>(func: T, wait: number): DebouncedFunction<T>;
|
13
|
+
export interface ThrottledFunction<T extends (...args: any[]) => any> {
|
14
|
+
(...args: Parameters<T>): void;
|
15
|
+
cancel: () => void;
|
16
|
+
}
|
17
|
+
/**
|
18
|
+
* Creates a throttled function that only invokes the provided function
|
19
|
+
* at most once per every wait milliseconds.
|
20
|
+
*/
|
21
|
+
export declare function throttle<T extends (...args: any[]) => any>(func: T, wait: number): ThrottledFunction<T>;
|
22
|
+
/**
|
23
|
+
* Deep clones an object by using JSON serialization
|
24
|
+
*/
|
25
|
+
export declare function deepClone<T>(obj: T): T;
|
26
|
+
/**
|
27
|
+
* Creates a memoized version of a function that caches results based on arguments
|
28
|
+
*/
|
29
|
+
export declare function memoize<T extends (...args: any[]) => any>(func: T): T;
|
30
|
+
/**
|
31
|
+
* Creates a UUID v4 string
|
32
|
+
*/
|
33
|
+
export declare function uuid(): string;
|
34
|
+
/**
|
35
|
+
* Formats a date according to the specified format
|
36
|
+
*/
|
37
|
+
export declare function formatDate(date: Date, format: string): string;
|
38
|
+
declare const _default: {
|
39
|
+
debounce: typeof debounce;
|
40
|
+
throttle: typeof throttle;
|
41
|
+
deepClone: typeof deepClone;
|
42
|
+
memoize: typeof memoize;
|
43
|
+
uuid: typeof uuid;
|
44
|
+
formatDate: typeof formatDate;
|
45
|
+
};
|
46
|
+
export default _default;
|
47
|
+
//# sourceMappingURL=utils.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG;IAClE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACxD,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,MAAM,GACX,iBAAiB,CAAC,CAAC,CAAC,CAuBtB;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG;IAClE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACxD,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,MAAM,GACX,iBAAiB,CAAC,CAAC,CAAC,CAiCtB;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAMtC;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAarE;AAED;;GAEG;AACH,wBAAgB,IAAI,IAAI,MAAM,CAM7B;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAyC7D;;;;;;;;;AAED,wBAOE"}
|
package/dist/utils.js
ADDED
@@ -0,0 +1,143 @@
|
|
1
|
+
/**
|
2
|
+
* Common utility functions for the framework
|
3
|
+
*/
|
4
|
+
/**
|
5
|
+
* Creates a debounced function that delays invoking the provided function
|
6
|
+
* until after the specified wait time has elapsed since the last time it was invoked.
|
7
|
+
*/
|
8
|
+
export function debounce(func, wait) {
|
9
|
+
let timeout = null;
|
10
|
+
const debounced = function (...args) {
|
11
|
+
const later = () => {
|
12
|
+
timeout = null;
|
13
|
+
func.apply(this, args);
|
14
|
+
};
|
15
|
+
if (timeout !== null) {
|
16
|
+
clearTimeout(timeout);
|
17
|
+
}
|
18
|
+
timeout = setTimeout(later, wait);
|
19
|
+
};
|
20
|
+
debounced.cancel = function () {
|
21
|
+
if (timeout !== null) {
|
22
|
+
clearTimeout(timeout);
|
23
|
+
timeout = null;
|
24
|
+
}
|
25
|
+
};
|
26
|
+
return debounced;
|
27
|
+
}
|
28
|
+
/**
|
29
|
+
* Creates a throttled function that only invokes the provided function
|
30
|
+
* at most once per every wait milliseconds.
|
31
|
+
*/
|
32
|
+
export function throttle(func, wait) {
|
33
|
+
let timeout = null;
|
34
|
+
let previous = 0;
|
35
|
+
const throttled = function (...args) {
|
36
|
+
const now = Date.now();
|
37
|
+
const remaining = wait - (now - previous);
|
38
|
+
if (remaining <= 0 || remaining > wait) {
|
39
|
+
if (timeout !== null) {
|
40
|
+
clearTimeout(timeout);
|
41
|
+
timeout = null;
|
42
|
+
}
|
43
|
+
previous = now;
|
44
|
+
func.apply(this, args);
|
45
|
+
}
|
46
|
+
else if (timeout === null) {
|
47
|
+
timeout = setTimeout(() => {
|
48
|
+
previous = Date.now();
|
49
|
+
timeout = null;
|
50
|
+
func.apply(this, args);
|
51
|
+
}, remaining);
|
52
|
+
}
|
53
|
+
};
|
54
|
+
throttled.cancel = function () {
|
55
|
+
if (timeout !== null) {
|
56
|
+
clearTimeout(timeout);
|
57
|
+
timeout = null;
|
58
|
+
}
|
59
|
+
previous = 0;
|
60
|
+
};
|
61
|
+
return throttled;
|
62
|
+
}
|
63
|
+
/**
|
64
|
+
* Deep clones an object by using JSON serialization
|
65
|
+
*/
|
66
|
+
export function deepClone(obj) {
|
67
|
+
if (obj === null || typeof obj !== 'object') {
|
68
|
+
return obj;
|
69
|
+
}
|
70
|
+
return JSON.parse(JSON.stringify(obj));
|
71
|
+
}
|
72
|
+
/**
|
73
|
+
* Creates a memoized version of a function that caches results based on arguments
|
74
|
+
*/
|
75
|
+
export function memoize(func) {
|
76
|
+
const cache = new Map();
|
77
|
+
return ((...args) => {
|
78
|
+
const key = JSON.stringify(args);
|
79
|
+
if (cache.has(key)) {
|
80
|
+
return cache.get(key);
|
81
|
+
}
|
82
|
+
const result = func(...args);
|
83
|
+
cache.set(key, result);
|
84
|
+
return result;
|
85
|
+
});
|
86
|
+
}
|
87
|
+
/**
|
88
|
+
* Creates a UUID v4 string
|
89
|
+
*/
|
90
|
+
export function uuid() {
|
91
|
+
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
|
92
|
+
const r = Math.random() * 16 | 0;
|
93
|
+
const v = c === 'x' ? r : (r & 0x3 | 0x8);
|
94
|
+
return v.toString(16);
|
95
|
+
});
|
96
|
+
}
|
97
|
+
/**
|
98
|
+
* Formats a date according to the specified format
|
99
|
+
*/
|
100
|
+
export function formatDate(date, format) {
|
101
|
+
const months = [
|
102
|
+
'January', 'February', 'March', 'April', 'May', 'June',
|
103
|
+
'July', 'August', 'September', 'October', 'November', 'December'
|
104
|
+
];
|
105
|
+
const shortMonths = months.map(m => m.slice(0, 3));
|
106
|
+
const days = [
|
107
|
+
'Sunday', 'Monday', 'Tuesday', 'Wednesday',
|
108
|
+
'Thursday', 'Friday', 'Saturday'
|
109
|
+
];
|
110
|
+
const shortDays = days.map(d => d.slice(0, 3));
|
111
|
+
const tokens = {
|
112
|
+
'YYYY': () => date.getFullYear().toString(),
|
113
|
+
'YY': () => (date.getFullYear() % 100).toString().padStart(2, '0'),
|
114
|
+
'MMMM': () => months[date.getMonth()],
|
115
|
+
'MMM': () => shortMonths[date.getMonth()],
|
116
|
+
'MM': () => (date.getMonth() + 1).toString().padStart(2, '0'),
|
117
|
+
'M': () => (date.getMonth() + 1).toString(),
|
118
|
+
'DDDD': () => days[date.getDay()],
|
119
|
+
'DDD': () => shortDays[date.getDay()],
|
120
|
+
'DD': () => date.getDate().toString().padStart(2, '0'),
|
121
|
+
'D': () => date.getDate().toString(),
|
122
|
+
'HH': () => date.getHours().toString().padStart(2, '0'),
|
123
|
+
'H': () => date.getHours().toString(),
|
124
|
+
'hh': () => (date.getHours() % 12 || 12).toString().padStart(2, '0'),
|
125
|
+
'h': () => (date.getHours() % 12 || 12).toString(),
|
126
|
+
'mm': () => date.getMinutes().toString().padStart(2, '0'),
|
127
|
+
'm': () => date.getMinutes().toString(),
|
128
|
+
'ss': () => date.getSeconds().toString().padStart(2, '0'),
|
129
|
+
's': () => date.getSeconds().toString(),
|
130
|
+
'a': () => date.getHours() < 12 ? 'am' : 'pm',
|
131
|
+
'A': () => date.getHours() < 12 ? 'AM' : 'PM'
|
132
|
+
};
|
133
|
+
const tokenRegex = new RegExp(Object.keys(tokens).join('|'), 'g');
|
134
|
+
return format.replace(tokenRegex, (match) => tokens[match]());
|
135
|
+
}
|
136
|
+
export default {
|
137
|
+
debounce,
|
138
|
+
throttle,
|
139
|
+
deepClone,
|
140
|
+
memoize,
|
141
|
+
uuid,
|
142
|
+
formatDate
|
143
|
+
};
|
package/dist/vdom.d.ts
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
interface VNode {
|
2
|
+
type: string | Function;
|
3
|
+
props: Record<string, any>;
|
4
|
+
key?: string | number;
|
5
|
+
}
|
6
|
+
export declare function diff(oldNode: VNode | any, newNode: VNode | any): boolean;
|
7
|
+
export declare function shouldComponentUpdate(oldProps: any, newProps: any): boolean;
|
8
|
+
export {};
|
9
|
+
//# sourceMappingURL=vdom.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"vdom.d.ts","sourceRoot":"","sources":["../src/vdom.ts"],"names":[],"mappings":"AAAA,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAUD,wBAAgB,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,GAAG,GAAG,GAAG,OAAO,CAOxE;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAE3E"}
|
package/dist/vdom.js
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
function arePropsEqual(oldProps, newProps) {
|
2
|
+
const oldKeys = Object.keys(oldProps).filter(k => k !== 'children');
|
3
|
+
const newKeys = Object.keys(newProps).filter(k => k !== 'children');
|
4
|
+
if (oldKeys.length !== newKeys.length)
|
5
|
+
return false;
|
6
|
+
return oldKeys.every(key => oldProps[key] === newProps[key]);
|
7
|
+
}
|
8
|
+
export function diff(oldNode, newNode) {
|
9
|
+
if (oldNode == null || newNode == null)
|
10
|
+
return oldNode !== newNode;
|
11
|
+
if (typeof oldNode !== typeof newNode)
|
12
|
+
return true;
|
13
|
+
if (typeof newNode === 'string' || typeof newNode === 'number')
|
14
|
+
return oldNode !== newNode;
|
15
|
+
if (newNode.type !== oldNode.type)
|
16
|
+
return true;
|
17
|
+
return !arePropsEqual(oldNode.props, newNode.props);
|
18
|
+
}
|
19
|
+
export function shouldComponentUpdate(oldProps, newProps) {
|
20
|
+
return !arePropsEqual(oldProps, newProps);
|
21
|
+
}
|
package/dist/wasm.d.ts
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
/**
|
2
|
+
* Go WebAssembly Integration Utilities
|
3
|
+
*
|
4
|
+
* This module provides tools for loading and interacting with Go WASM modules
|
5
|
+
* in browser and server environments.
|
6
|
+
*/
|
7
|
+
export interface GoWasmInstance {
|
8
|
+
instance: WebAssembly.Instance;
|
9
|
+
module: WebAssembly.Module;
|
10
|
+
exports: any;
|
11
|
+
functions: Record<string, Function>;
|
12
|
+
}
|
13
|
+
export interface GoWasmOptions {
|
14
|
+
importObject?: WebAssembly.Imports;
|
15
|
+
goWasmPath?: string;
|
16
|
+
loadGo?: boolean;
|
17
|
+
onLoad?: (instance: GoWasmInstance) => void;
|
18
|
+
debug?: boolean;
|
19
|
+
}
|
20
|
+
/**
|
21
|
+
* Load a Go WASM module from a URL
|
22
|
+
*/
|
23
|
+
export declare function loadGoWasm(wasmUrl: string, options?: GoWasmOptions): Promise<GoWasmInstance>;
|
24
|
+
/**
|
25
|
+
* Create a TypeScript-friendly wrapper for Go WASM functions
|
26
|
+
*/
|
27
|
+
export declare function createTypedWasmFunction<T extends (...args: any[]) => any>(instance: GoWasmInstance, functionName: string): T;
|
28
|
+
/**
|
29
|
+
* Helper to convert JavaScript values to Go-compatible formats
|
30
|
+
*/
|
31
|
+
export declare const goValues: {
|
32
|
+
stringToGo: (instance: GoWasmInstance, str: string) => number;
|
33
|
+
stringFromGo: (instance: GoWasmInstance, ptr: number) => string;
|
34
|
+
objectToGo: (instance: GoWasmInstance, obj: any) => number;
|
35
|
+
objectFromGo: (instance: GoWasmInstance, ptr: number) => any;
|
36
|
+
};
|
37
|
+
//# sourceMappingURL=wasm.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"wasm.d.ts","sourceRoot":"","sources":["../src/wasm.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC;IAC3B,OAAO,EAAE,GAAG,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IAC5C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAID;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,cAAc,CAAC,CA0GzB;AAuBD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACvE,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,MAAM,GACnB,CAAC,CAMH;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ;2BAEI,cAAc,OAAO,MAAM,KAAG,MAAM;6BAQlC,cAAc,OAAO,MAAM,KAAG,MAAM;2BAQtC,cAAc,OAAO,GAAG,KAAG,MAAM;6BAQ/B,cAAc,OAAO,MAAM,KAAG,GAAG;CAO3D,CAAC"}
|