@jhxdev/hono 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.
package/index.d.ts ADDED
@@ -0,0 +1,133 @@
1
+ import { Stream } from 'node:stream';
2
+ import { ElementType, ComponentPropsWithoutRef, PropsWithChildren, JSX, ReactNode } from 'react';
3
+ import { ErrorHandler, TypedResponse, Context, Hono } from 'hono';
4
+ import * as jhx from 'jhx';
5
+ import { JhxError, JhxConfig, JhxProps as JhxProps$1, JhxDomProps as JhxDomProps$1 } from 'jhx';
6
+ export { ConditionalFunction, DomEventProps, DomObjects, Duration, HtmxAbortEvent, HtmxAfterOnLoadEvent, HtmxAfterProcessNodeEvent, HtmxAfterRequestEvent, HtmxAfterSettleEvent, HtmxAfterSwapEvent, HtmxAjaxEtc, HtmxAjaxHandler, HtmxAttribute, HtmxBeforeCleanupElementEvent, HtmxBeforeHistorySaveEvent, HtmxBeforeOnLoadEvent, HtmxBeforeProcessNodeEvent, HtmxBeforeRequestEvent, HtmxBeforeSendEvent, HtmxBeforeSwapEvent, HtmxBeforeTransitionEvent, HtmxCacheItem, HtmxClass, HtmxConfig, HtmxConfigRequestEvent, HtmxConfirmEvent, HtmxDefaultExtension, HtmxDomEvent, HtmxElementValidationError, HtmxEvent, HtmxEventAttribute, HtmxEventDetail, HtmxEventName, HtmxEventProps, HtmxExtension, HtmxExtensionMetadata, HtmxHistoryCacheErrorEvent, HtmxHistoryCacheHitEvent, HtmxHistoryCacheMissEvent, HtmxHistoryCacheMissLoadErrorEvent, HtmxHistoryCacheMissLoadEvent, HtmxHistoryRestoreEvent, HtmxHttpMethod, HtmxHttpVerb, HtmxInstance, HtmxIssueRequest, HtmxLoadEvent, HtmxMethodAttribute, HtmxNoSseSourceErrorEvent, HtmxOnLoadErrorEvent, HtmxOobAfterSwapEvent, HtmxOobBeforeSwapEvent, HtmxOobErrorNoTargetEvent, HtmxPathInfo, HtmxPromptEvent, HtmxProps, HtmxPushedIntoHistoryEvent, HtmxReplacedInHistoryEvent, HtmxRequestConfig, HtmxRequestHeader, HtmxResponseErrorEvent, HtmxResponseHandlingConfig, HtmxResponseHeader, HtmxSendAbortEvent, HtmxSendErrorEvent, HtmxSettleInfo, HtmxSseErrorEvent, HtmxSseOpenEvent, HtmxSwapErrorEvent, HtmxSwapSpec, HtmxSwapStyle, HtmxSyncStrategy, HtmxTargetErrorEvent, HtmxTimeoutEvent, HtmxValidateUrlEvent, HtmxValidationFailedEvent, HtmxValidationHaltedEvent, HtmxValidationValidateEvent, HtmxXhrAbortEvent, HtmxXhrLoadendEvent, HtmxXhrLoadstartEvent, HtmxXhrProgressEvent, JhxDefaultConfig, JhxError, JhxEvaluableAttribute, JhxExtensionAttribute, JhxIndicatorAttribute, JhxInheritAttribute, JhxParamsAttribute, JhxRequestArgs, JhxRequestAttribute, JhxRequestError, JhxRouteProps, JhxSelectOobAttribute, JhxSwapAttribute, JhxSwapOobAttribute, JhxSwapScroll, JhxSwapShow, JhxSyncAttribute, JhxTargetAttribute, JhxTriggerAttribute, JhxTriggerAttribute_Intersect, JhxTriggerAttribute_Poll, JhxTriggerAttribute_Standard, JhxTriggerFrom, JhxTriggerQueue, JhxValsError, Logger, applyAttributes, attributesToString, htmx } from 'jhx';
7
+
8
+ type JhxServerErrorType = 'routes:invalid' | 'route:invalid-method' | 'route:invalid-path' | 'route:invalid-handler' | 'route:duplicate' | 'endpoint:invalid' | 'endpoint:malformed' | 'hash:invalid' | 'handler:error' | 'middleware:error';
9
+ interface JhxServerError extends Error {
10
+ type: JhxServerErrorType;
11
+ info: string;
12
+ message: string;
13
+ method?: string;
14
+ route?: string;
15
+ cause?: unknown;
16
+ }
17
+
18
+ type HttpMethodUpperCase = 'DELETE' | 'GET' | 'HEAD' | 'PATCH' | 'POST' | 'PUT' | 'OPTIONS' | 'PROPFIND' | 'PROPPATCH' | 'MKCOL' | 'COPY' | 'MOVE' | 'LOCK' | 'UNLOCK' | 'TRACE' | 'SEARCH' | 'REPORT' | 'MKCALENDAR' | (Uppercase<string> & {});
19
+ type HttpMethodLowerCase = Lowercase<HttpMethodUpperCase> | (Lowercase<string> & {});
20
+ type HttpMethod = HttpMethodUpperCase | HttpMethodLowerCase;
21
+ type JhxOnRegistered = (method: string, route: string) => void;
22
+ type JhxErrorType$1 = Error | JhxError | JhxServerError;
23
+ type ServerResolved<T> = Awaited<T>;
24
+ type ServerJhxHandler<TReturn, TReq, TRes> = TRes extends undefined ? (context: TReq, _?: TRes) => TReturn : (req: TReq, res: TRes) => TReturn;
25
+ type ServerJhxErrorHandler<TError extends JhxErrorType$1, TReturn, TReq, TRes> = TRes extends undefined ? (error: TError, context: TReq, _?: TRes) => TReturn : (error: TError, req: TReq, res: TRes) => TReturn;
26
+ type ServerJhxRenderHandler<TResolved, TRendered, TReq, TRes> = TRes extends undefined ? (payload: TResolved, context: TReq, _?: TRes) => TRendered : (payload: TResolved, request: TReq, response: TRes) => TRendered;
27
+ type ServerJhxRoute<TReturn, TReq, TRes, THandler extends ServerJhxHandler<TReturn, TReq, TRes>> = {
28
+ method: HttpMethodUpperCase;
29
+ route: string;
30
+ handler: THandler;
31
+ };
32
+ type ServerJhxPartialRoute<TReturn, TReq, TRes, THandler extends ServerJhxHandler<TReturn, TReq, TRes>> = {
33
+ method?: HttpMethod;
34
+ route: string;
35
+ handler: THandler;
36
+ };
37
+ type ServerCreateJhxConfig<TReturn, TResolved, TRendered, TError extends JhxErrorType$1, TReq, TRes, THandler extends ServerJhxHandler<TReturn, TReq, TRes>, TErrorHandler extends ServerJhxErrorHandler<TError, TReturn, TReq, TRes>, TRenderHandler extends ServerJhxRenderHandler<TResolved, TRendered, TReq, TRes>, TPartialRoute extends ServerJhxPartialRoute<TReturn, TReq, TRes, THandler>, TInstanceOptions = undefined> = JhxConfig & {
38
+ contentType?: string | false;
39
+ debug?: boolean;
40
+ errorHandler?: TErrorHandler;
41
+ middleware?: THandler | Array<THandler>;
42
+ notFoundHandler?: THandler;
43
+ onRegistered?: JhxOnRegistered;
44
+ prefix?: string;
45
+ renderError?: boolean;
46
+ renderMiddleware?: boolean;
47
+ renderNotFound?: boolean;
48
+ render?: 'static' | 'string' | TRenderHandler | false;
49
+ routes?: TPartialRoute | Array<TPartialRoute>;
50
+ trailingSlash?: 'slash' | 'no-slash' | 'both';
51
+ instanceOptions?: TInstanceOptions;
52
+ };
53
+ type ServerJhxProps<TDom extends object, TReturn, TReq, TRes, THandler extends ServerJhxHandler<TReturn, TReq, TRes>> = JhxProps$1<TDom> & {
54
+ handler?: THandler;
55
+ };
56
+ type ServerJhxDomProps<TDom extends object, TReturn, TReq, TRes, THandler extends ServerJhxHandler<TReturn, TReq, TRes>> = JhxDomProps$1<TDom> & {
57
+ handler?: THandler;
58
+ };
59
+
60
+ type NativeProps<TTag extends ElementType> = Omit<ComponentPropsWithoutRef<TTag>, 'children' | keyof ServerJhxProps<any, any, any, any, any>>;
61
+ type ServerJhxComponentProps<TDom extends object, TReturn, TReq, TRes, THandler extends ServerJhxHandler<TReturn, TReq, TRes>, TTag extends ElementType = 'div'> = ServerJhxProps<TDom, TReturn, TReq, TRes, THandler> & NativeProps<TTag> & {
62
+ jhxConfig?: Omit<JhxConfig, 'stringify'>;
63
+ as?: TTag;
64
+ };
65
+ type ServerJhxComponentType<TDom extends object, TReturn, TReq, TRes, THandler extends ServerJhxHandler<TReturn, TReq, TRes>> = <TTag extends ElementType = 'div'>(props: PropsWithChildren<ServerJhxComponentProps<TDom, TReturn, TReq, TRes, THandler, TTag>>) => JSX.Element;
66
+
67
+ declare const serverDefaultConfig: {
68
+ readonly contentType: "text/html";
69
+ readonly debug: false;
70
+ readonly middleware: readonly [];
71
+ readonly onRegistered: JhxOnRegistered;
72
+ readonly prefix: "/_jhx";
73
+ readonly render: (data: any, ..._args: any[]) => any;
74
+ readonly renderError: true;
75
+ readonly renderMiddleware: true;
76
+ readonly renderNotFound: true;
77
+ readonly trailingSlash: "both";
78
+ readonly logger: jhx.Logger;
79
+ readonly stringify: boolean;
80
+ readonly escape: boolean;
81
+ };
82
+
83
+ type HonoError = Parameters<ErrorHandler>[0];
84
+ type RenderReturn = ArrayBuffer | ArrayBufferView | Buffer | Blob | Record<string, unknown> | ReadableStream | Stream | Response | (Response & TypedResponse<any, any, any>) | string | number | boolean | null | void;
85
+ type JhxRenderReturn = RenderReturn | Promise<RenderReturn>;
86
+ type JhxHandlerReturn = JhxRenderReturn | ReactNode | Promise<ReactNode>;
87
+ type JhxErrorType = Error | JhxError | JhxServerError | HonoError;
88
+ type Resolved<TReturn = JhxHandlerReturn> = ServerResolved<TReturn>;
89
+ type JhxHandler<TReturn extends JhxHandlerReturn = JhxHandlerReturn, TContext extends Context = Context> = ServerJhxHandler<TReturn, TContext, undefined>;
90
+ type JhxErrorHandler<TError extends JhxErrorType = JhxErrorType, TReturn extends JhxHandlerReturn = JhxHandlerReturn, TContext extends Context = Context> = ServerJhxErrorHandler<TError, TReturn, TContext, undefined>;
91
+ type JhxRenderHandler<TResolved extends Resolved = Resolved, TReturn extends JhxRenderReturn = JhxRenderReturn, TContext extends Context = Context> = ServerJhxRenderHandler<TResolved, TReturn, TContext, undefined>;
92
+ type JhxRoute<TReturn extends JhxHandlerReturn = JhxHandlerReturn, TContext extends Context = Context> = ServerJhxRoute<TReturn, TContext, undefined, JhxHandler<TReturn, TContext>>;
93
+ type JhxPartialRoute<TReturn extends JhxHandlerReturn = JhxHandlerReturn, TContext extends Context = Context> = ServerJhxPartialRoute<TReturn, TContext, undefined, JhxHandler<TReturn, TContext>>;
94
+ type CreateJhxConfig<TReturn extends JhxHandlerReturn = JhxHandlerReturn, TRendered extends JhxRenderReturn = JhxRenderReturn, TError extends JhxErrorType = JhxErrorType, TContext extends Context = Context> = ServerCreateJhxConfig<TReturn, Resolved<TReturn>, TRendered, TError, TContext, undefined, JhxHandler<TReturn, TContext>, JhxErrorHandler<TError, TReturn, TContext>, JhxRenderHandler<Resolved<TReturn>, TRendered, TContext>, JhxPartialRoute<TReturn, TContext>> & {};
95
+ type JhxProps<TDom extends object = object, TReturn extends JhxHandlerReturn = JhxHandlerReturn, TContext extends Context = Context> = ServerJhxProps<TDom, TReturn, TContext, undefined, JhxHandler<TReturn, TContext>>;
96
+ type JhxDomProps<TDom extends object = object, TReturn extends JhxHandlerReturn = JhxHandlerReturn, TContext extends Context = Context> = ServerJhxDomProps<TDom, TReturn, TContext, undefined, JhxHandler<TReturn, TContext>>;
97
+ interface Jhx<TDomBase extends object = object, TReturn extends JhxHandlerReturn = JhxHandlerReturn, TContext extends Context = Context, TBaseStringify extends boolean | undefined = undefined> {
98
+ <TDom extends object | TDomBase = TDomBase>(options: JhxDomProps<TDom, TReturn, TContext>, config: JhxConfig & {
99
+ stringify: true;
100
+ }): string;
101
+ <TDom extends object | TDomBase = TDomBase>(options: JhxProps<TDom, TReturn, TContext>, config: JhxConfig & {
102
+ stringify: false;
103
+ }): Record<string, string>;
104
+ <TDom extends object | TDomBase = TDomBase>(options: TBaseStringify extends true ? JhxDomProps<TDom, TReturn, TContext> : JhxProps<TDom, TReturn, TContext>, config?: JhxConfig): TBaseStringify extends true ? string : Record<string, string>;
105
+ <TDom extends object | TDomBase = TDomBase>(options: JhxProps<TDom, TReturn, TContext> | JhxDomProps<TDom, TReturn, TContext>, config?: JhxConfig): string | Record<string, string>;
106
+ addRoute(newRoute: JhxPartialRoute<TReturn, TContext>): void;
107
+ addRoutes(newRoutes: Array<JhxPartialRoute<TReturn, TContext>>): void;
108
+ clearRoutes(): void;
109
+ getRoute(method: string, path: string): JhxRoute<TReturn, TContext> | null;
110
+ getRoutes(): Array<JhxRoute<TReturn, TContext>>;
111
+ hasRoute(method: string, path: string): boolean;
112
+ removeRoute(method: string, path: string): boolean;
113
+ }
114
+ type JhxComponentProps<TDom extends object = object, TReturn extends JhxHandlerReturn = JhxHandlerReturn, TContext extends Context = Context, TTag extends ElementType = 'div'> = ServerJhxComponentProps<TDom, TReturn, TContext, undefined, JhxHandler<TReturn, TContext>, TTag>;
115
+ type JhxComponentType<TDom extends object = object, TReturn extends JhxHandlerReturn = JhxHandlerReturn, TContext extends Context = Context> = ServerJhxComponentType<TDom, TReturn, TContext, undefined, JhxHandler<TReturn, TContext>>;
116
+
117
+ declare const createJhx: <TDomBase extends object = object, TError extends JhxErrorType = JhxErrorType, TReturn extends JhxHandlerReturn = JhxHandlerReturn, TContext extends Context = Context, TBaseStringify extends boolean | undefined = undefined>(hono: Hono, config?: CreateJhxConfig<TReturn, JhxRenderReturn, TError, TContext> & {
118
+ stringify?: TBaseStringify;
119
+ }) => {
120
+ jhx: Jhx<TDomBase, TReturn, TContext, TBaseStringify>;
121
+ JhxComponent: JhxComponentType<TDomBase, TReturn, TContext>;
122
+ };
123
+
124
+ declare function createJhxComponent<TDom extends object = object, TReturn extends JhxHandlerReturn = JhxHandlerReturn, TContext extends Context = Context>(jhx: Jhx<TDom, TReturn, TContext, any>): JhxComponentType<TDom, TReturn, TContext>;
125
+
126
+ type CreateJhxDefaultConfig = Omit<typeof serverDefaultConfig, 'render'> & {
127
+ notFoundHandler: JhxHandler;
128
+ render: JhxRenderHandler;
129
+ };
130
+ declare const defaultConfig: CreateJhxDefaultConfig;
131
+
132
+ export { createJhx, createJhxComponent, defaultConfig };
133
+ export type { CreateJhxConfig, CreateJhxDefaultConfig, HonoError, HttpMethod, HttpMethodLowerCase, HttpMethodUpperCase, Jhx, JhxComponentProps, JhxComponentType, JhxDomProps, JhxErrorHandler, JhxErrorType, JhxHandler, JhxHandlerReturn, JhxOnRegistered, JhxPartialRoute, JhxProps, JhxRenderHandler, JhxRenderReturn, JhxRoute, JhxServerError, JhxServerErrorType, Resolved };