revojs 0.0.20 → 0.0.22

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.
@@ -1,10 +1,11 @@
1
- import { type EventListener, type HtmlAttributes } from "../jsx";
1
+ import { type HtmlAttributes } from "../jsx";
2
2
  import { type Descriptor, Hooks, Scope, type State, type Value } from "../signals";
3
3
  export type TypeOf<T> = {
4
4
  (): T;
5
5
  };
6
6
  export type Infer<T> = T extends TypeOf<infer U> ? U : unknown;
7
7
  export type Slot = unknown | Template | Array<Slot> | (() => Slot);
8
+ export type EventListener<T extends Event> = ((event: T) => void) | Array<(event: T) => void>;
8
9
  export type Template = {
9
10
  tag: string;
10
11
  attributes: Record<string, unknown>;
@@ -16,7 +17,7 @@ export type EventInput<T extends Events> = {
16
17
  export type AttributeInput<T extends Attributes> = {
17
18
  [K in keyof T]?: Value<Infer<T[K]["type"]> | undefined>;
18
19
  };
19
- export type Input<TEvents extends Events, TAttributes extends Attributes> = EventInput<TEvents> & AttributeInput<TAttributes> & HtmlAttributes;
20
+ export type Input<TEvents extends Events, TAttributes extends Attributes> = EventInput<TEvents> | AttributeInput<TAttributes> | HtmlAttributes;
20
21
  export type EventOutput<T extends Events> = {
21
22
  [K in keyof T]?: (event: Infer<T[K]["type"]>) => void;
22
23
  };
@@ -78,6 +79,7 @@ export declare const toCustomElement: <TEvents extends Events = {}, TAttributes
78
79
  export declare const registerComponent: <TEvents extends Events = {}, TAttributes extends Attributes = {}>(component: ComponentConstructor<TEvents, TAttributes>) => ComponentConstructor<TEvents, TAttributes>;
79
80
  export declare const getGlobalStyles: () => CSSStyleSheet[];
80
81
  export declare const getCustomElement: (node: Node | null) => CustomElement<Events, Attributes> | undefined;
82
+ export declare const eventListener: <T extends Event>(event: T, invoke?: EventListener<T>) => void;
81
83
  export declare const isClient: () => boolean;
82
84
  export declare const isServer: () => boolean;
83
85
  export declare const preventDefault: (event: Event) => void;
package/dist/index.js CHANGED
@@ -324,11 +324,7 @@ const renderToNode = async (scope, slot) => {
324
324
  if (name.startsWith("on")) {
325
325
  const event = name.substring(2).toLowerCase();
326
326
  const controller = new AbortController();
327
- element.addEventListener(event, (event$1) => {
328
- const invoke = value;
329
- if (Array.isArray(invoke)) for (const target of invoke) target?.(event$1);
330
- else invoke?.(event$1);
331
- }, { signal: controller.signal });
327
+ element.addEventListener(event, (event$1) => eventListener(event$1, value), { signal: controller.signal });
332
328
  scope.dispose.push(() => controller.abort());
333
329
  } else createCompute(scope, () => {
334
330
  const set = toString(value);
@@ -457,6 +453,10 @@ const getCustomElement = (node) => {
457
453
  return getCustomElement(node.parentNode);
458
454
  }
459
455
  };
456
+ const eventListener = (event, invoke) => {
457
+ if (Array.isArray(invoke)) for (const target of invoke) target?.(event);
458
+ else invoke?.(event);
459
+ };
460
460
  const isClient = () => typeof window !== "undefined";
461
461
  const isServer = () => typeof window === "undefined";
462
462
  const preventDefault = (event) => event.preventDefault();
@@ -789,4 +789,4 @@ const anchorNavigate = (event) => {
789
789
  };
790
790
 
791
791
  //#endregion
792
- export { $fetch, Compute, Handler, Hooks, MOUNTED_HOOK, Outlet, RUNTIME_CONTEXT, Radix, Scope, activeCompute, anchorNavigate, components, createApp, createCompute, createElement, createEvent, createMemo, createRuntime, createState, defineComponent, defineContext, defineHook, defineRoute, fileName, fromValue, getAssets, getCookies, getCustomElement, getGlobalStyles, getMimeType, getRequestUrl, getRoutes, getSetCookies, getVariables, isClient, isServer, isTemplate, markdownToSlot, navigate, preventDefault, registerComponent, renderToNode, renderToString, sendBadRequest, sendHtml, sendJson, sendRedirect, sendText, sendUnauthorized, setCookie, stopImmediatePropagation, stopPropagation, targets, toCustomElement, toFragment, toPath, toString };
792
+ export { $fetch, Compute, Handler, Hooks, MOUNTED_HOOK, Outlet, RUNTIME_CONTEXT, Radix, Scope, activeCompute, anchorNavigate, components, createApp, createCompute, createElement, createEvent, createMemo, createRuntime, createState, defineComponent, defineContext, defineHook, defineRoute, eventListener, fileName, fromValue, getAssets, getCookies, getCustomElement, getGlobalStyles, getMimeType, getRequestUrl, getRoutes, getSetCookies, getVariables, isClient, isServer, isTemplate, markdownToSlot, navigate, preventDefault, registerComponent, renderToNode, renderToString, sendBadRequest, sendHtml, sendJson, sendRedirect, sendText, sendUnauthorized, setCookie, stopImmediatePropagation, stopPropagation, targets, toCustomElement, toFragment, toPath, toString };
@@ -1,5 +1,4 @@
1
- import { type Slot } from "../html";
2
- export type EventListener<T extends Event> = ((event: T) => void) | Array<(event: T) => void>;
1
+ import { type EventListener, type Slot } from "../html";
3
2
  export type EventAttributes = {
4
3
  onScroll?: EventListener<Event>;
5
4
  onScrollCapture?: EventListener<Event>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "revojs",
3
- "version": "0.0.20",
3
+ "version": "0.0.22",
4
4
  "type": "module",
5
5
  "repository": "coverbase/revojs",
6
6
  "license": "MIT",