API โบ @builder.io/qwik-city
Action
export type Action<
  RETURN,
  INPUT = Record<string, unknown>,
  OPTIONAL extends boolean = true,
> = {
  (): ActionStore<RETURN, INPUT, OPTIONAL>;
};References: ActionStore
ActionConstructor
export type ActionConstructor = {
  <
    OBJ extends Record<string, any> | void | null,
    VALIDATOR extends TypedDataValidator,
    REST extends [DataValidator, ...DataValidator[]],
  >(
    actionQrl: (
      data: GetValidatorOutputType<VALIDATOR>,
      event: RequestEventAction,
    ) => ValueOrPromise<OBJ>,
    options: {
      readonly id?: string;
      readonly validation: [VALIDATOR, ...REST];
    },
  ): Action<
    StrictUnion<
      | OBJ
      | FailReturn<ValidatorErrorType<GetValidatorInputType<VALIDATOR>>>
      | FailReturn<FailOfRest<REST>>
    >,
    GetValidatorInputType<VALIDATOR>,
    false
  >;
  <
    OBJ extends Record<string, any> | void | null,
    VALIDATOR extends TypedDataValidator,
  >(
    actionQrl: (
      data: GetValidatorOutputType<VALIDATOR>,
      event: RequestEventAction,
    ) => ValueOrPromise<OBJ>,
    options: {
      readonly id?: string;
      readonly validation: [VALIDATOR];
    },
  ): Action<
    StrictUnion<
      OBJ | FailReturn<ValidatorErrorType<GetValidatorInputType<VALIDATOR>>>
    >,
    GetValidatorInputType<VALIDATOR>,
    false
  >;
  <
    OBJ extends Record<string, any> | void | null,
    REST extends [DataValidator, ...DataValidator[]],
  >(
    actionQrl: (
      data: JSONObject,
      event: RequestEventAction,
    ) => ValueOrPromise<OBJ>,
    options: {
      readonly id?: string;
      readonly validation: REST;
    },
  ): Action<StrictUnion<OBJ | FailReturn<FailOfRest<REST>>>>;
  <
    OBJ extends Record<string, any> | void | null,
    VALIDATOR extends TypedDataValidator,
    REST extends [DataValidator, ...DataValidator[]],
  >(
    actionQrl: (
      data: GetValidatorOutputType<VALIDATOR>,
      event: RequestEventAction,
    ) => ValueOrPromise<OBJ>,
    options: VALIDATOR,
    ...rest: REST
  ): Action<
    StrictUnion<
      | OBJ
      | FailReturn<ValidatorErrorType<GetValidatorInputType<VALIDATOR>>>
      | FailReturn<FailOfRest<REST>>
    >,
    GetValidatorInputType<VALIDATOR>,
    false
  >;
  <
    OBJ extends Record<string, any> | void | null,
    VALIDATOR extends TypedDataValidator,
  >(
    actionQrl: (
      data: GetValidatorOutputType<VALIDATOR>,
      event: RequestEventAction,
    ) => ValueOrPromise<OBJ>,
    options: VALIDATOR,
  ): Action<
    StrictUnion<
      OBJ | FailReturn<ValidatorErrorType<GetValidatorInputType<VALIDATOR>>>
    >,
    GetValidatorInputType<VALIDATOR>,
    false
  >;
  <
    OBJ extends Record<string, any> | void | null,
    REST extends [DataValidator, ...DataValidator[]],
  >(
    actionQrl: (
      form: JSONObject,
      event: RequestEventAction,
    ) => ValueOrPromise<OBJ>,
    ...rest: REST
  ): Action<StrictUnion<OBJ | FailReturn<FailOfRest<REST>>>>;
  <OBJ>(
    actionQrl: (
      form: JSONObject,
      event: RequestEventAction,
    ) => ValueOrPromise<OBJ>,
    options?: {
      readonly id?: string;
    },
  ): Action<StrictUnion<OBJ>>;
};References: TypedDataValidator, DataValidator, GetValidatorOutputType, Action, StrictUnion, FailReturn, ValidatorErrorType, GetValidatorInputType, FailOfRest, JSONObject
ActionReturn
export type ActionReturn<RETURN> = {
  readonly status?: number;
  readonly value: RETURN;
};ActionStore
export type ActionStore<RETURN, INPUT, OPTIONAL extends boolean = true> = {
  readonly actionPath: string;
  readonly isRunning: boolean;
  readonly status?: number;
  readonly formData: FormData | undefined;
  readonly value: RETURN | undefined;
  readonly submit: QRL<
    OPTIONAL extends true
      ? (form?: INPUT | FormData | SubmitEvent) => Promise<ActionReturn<RETURN>>
      : (form: INPUT | FormData | SubmitEvent) => Promise<ActionReturn<RETURN>>
  >;
  readonly submitted: boolean;
};References: ActionReturn
ContentHeading
export interface ContentHeading| Property | Modifiers | Type | Description | 
|---|---|---|---|
| 
 | string | ||
| 
 | number | ||
| 
 | string | 
ContentMenu
export interface ContentMenu| Property | Modifiers | Type | Description | 
|---|---|---|---|
| 
 | string | (Optional) | |
| 
 | (Optional) | ||
| 
 | string | 
DataValidator
export type DataValidator<T extends Record<string, any> = {}> = {
  validate(ev: RequestEvent, data: unknown): Promise<ValidatorReturn<T>>;
};References: ValidatorReturn
DocumentHead
export type DocumentHead =
  | DocumentHeadValue
  | ((props: DocumentHeadProps) => DocumentHeadValue);References: DocumentHeadValue, DocumentHeadProps
DocumentHeadProps
export interface DocumentHeadProps extends RouteLocationExtends: RouteLocation
| Property | Modifiers | Type | Description | 
|---|---|---|---|
| 
 | |||
| 
 | ResolveSyncValue | ||
| 
 | <T>(fn: () => T) => T | 
DocumentHeadValue
export interface DocumentHeadValue<FrontMatter extends Record<string, any> = Record<string, unknown>>| Property | Modifiers | Type | Description | 
|---|---|---|---|
| 
 | Readonly<FrontMatter> | (Optional) Arbitrary object containing custom data. When the document head is created from markdown files, the frontmatter attributes that are not recognized as a well-known meta names (such as title, description, author, etc...), are stored in this property. | |
| 
 | readonly DocumentLink[] | (Optional) Used to manually append  | |
| 
 | readonly DocumentMeta[] | (Optional) Used to manually set meta tags in the head. Additionally, the  | |
| 
 | readonly DocumentScript[] | (Optional) Used to manually append  | |
| 
 | readonly DocumentStyle[] | (Optional) Used to manually append  | |
| 
 | string | (Optional) Sets  | 
DocumentLink
export interface DocumentLink| Property | Modifiers | Type | Description | 
|---|---|---|---|
| string | (Optional) | ||
| string | (Optional) | ||
| boolean | (Optional) | ||
| string | (Optional) | ||
| string | (Optional) | ||
| string | (Optional) | ||
| string | (Optional) | ||
| string | (Optional) | ||
| string | (Optional) | ||
| string | (Optional) | ||
| string | (Optional) | ||
| string | (Optional) | ||
| string | (Optional) | ||
| string | (Optional) | ||
| string | (Optional) | ||
| string | (Optional) | ||
| string | (Optional) | 
DocumentMeta
export interface DocumentMeta| Property | Modifiers | Type | Description | 
|---|---|---|---|
| 
 | string | (Optional) | |
| 
 | string | (Optional) | |
| 
 | string | (Optional) | |
| 
 | string | (Optional) | |
| 
 | string | (Optional) | |
| 
 | string | (Optional) | |
| 
 | string | (Optional) | 
DocumentScript
This API is provided as an alpha preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
export interface DocumentScript| Property | Modifiers | Type | Description | 
|---|---|---|---|
| 
 | string | (ALPHA) (Optional) | |
| 
 | Readonly<QwikIntrinsicElements['script']> | (ALPHA) (Optional) | |
| 
 | string | (ALPHA) (Optional) | 
DocumentStyle
export interface DocumentStyle| Property | Modifiers | Type | Description | 
|---|---|---|---|
| 
 | string | (Optional) | |
| 
 | Readonly<QwikIntrinsicElements['style']> | (Optional) | |
| 
 | string | 
ErrorBoundary
ErrorBoundary: import("@builder.io/qwik").Component<ErrorBoundaryProps>;FailOfRest
export type FailOfRest<REST extends readonly DataValidator[]> =
  REST extends readonly DataValidator<infer ERROR>[] ? ERROR : never;References: DataValidator
FailReturn
export type FailReturn<T> = T & Failed;Form
Form: <O, I>(
  { action, spaReset, reloadDocument, onSubmit$, ...rest }: FormProps<O, I>,
  key: string | null,
) => import("@builder.io/qwik").JSXOutput;| Parameter | Type | Description | 
|---|---|---|
| { action, spaReset, reloadDocument, onSubmit$, ...rest } | FormProps<O, I> | |
| key | string | null | 
Returns:
import("@builder.io/qwik").JSXOutput
FormProps
export interface FormProps<O, I> extends Omit<QwikJSX.IntrinsicElements['form'], 'action' | 'method'>Extends: Omit<QwikJSX.IntrinsicElements['form'], 'action' | 'method'>
| Property | Modifiers | Type | Description | 
|---|---|---|---|
| ActionStore<O, I, true | false> | (Optional) Reference to the action returned by  | ||
| string | number | null | (Optional) | ||
| QRLEventHandlerMulti<SubmitEvent, HTMLFormElement> | undefined | (Optional) Event handler executed right when the form is submitted. | ||
| QRLEventHandlerMulti<CustomEvent<FormSubmitCompletedDetail<O>>, HTMLFormElement> | undefined | (Optional) Event handler executed right after the action is executed successfully and returns some data. | ||
| boolean | (Optional) When  | ||
| boolean | (Optional) When  Defaults to  | 
FormSubmitSuccessDetail
export interface FormSubmitCompletedDetail<T>| Property | Modifiers | Type | Description | 
|---|---|---|---|
| number | |||
| T | 
GetValidatorInputType
export type GetValidatorInputType<VALIDATOR extends TypedDataValidator> =
  VALIDATOR extends ValibotDataValidator<infer TYPE>
    ? v.InferInput<TYPE>
    : VALIDATOR extends ZodDataValidator<infer TYPE>
      ? z.input<TYPE>
      : never;References: TypedDataValidator
GetValidatorOutputType
export type GetValidatorOutputType<VALIDATOR extends TypedDataValidator> =
  VALIDATOR extends ValibotDataValidator<infer TYPE>
    ? v.InferOutput<TYPE>
    : VALIDATOR extends ZodDataValidator<infer TYPE>
      ? z.output<TYPE>
      : never;References: TypedDataValidator
GetValidatorType
export type GetValidatorType<VALIDATOR extends TypedDataValidator> =
  GetValidatorOutputType<VALIDATOR>;References: TypedDataValidator, GetValidatorOutputType
globalAction$
globalAction$: ActionConstructor;globalActionQrl
globalActionQrl: ActionConstructorQRL;JSONObject
export type JSONObject = {
  [x: string]: JSONValue;
};References: JSONValue
JSONValue
export type JSONValue =
  | string
  | number
  | boolean
  | {
      [x: string]: JSONValue;
    }
  | Array<JSONValue>;References: JSONValue
Link
Link: import("@builder.io/qwik").Component<LinkProps>;LinkProps
export interface LinkProps extends AnchorAttributesExtends: AnchorAttributes
| Property | Modifiers | Type | Description | 
|---|---|---|---|
| boolean | 'js' | (Optional) **Defaults to _true_.** Whether Qwik should prefetch and cache the target page of this ** This **improves UX performance** for client-side (**SPA**) navigations. Prefetching occurs when a the Link enters the viewport in production (** Prefetching will not occur if the user has the **data saver** setting enabled. Setting this value to ** | ||
| boolean | (Optional) | ||
| boolean | (Optional) | ||
| boolean | (Optional) | 
Loader_2
export type Loader<RETURN> = {
  (): LoaderSignal<RETURN>;
};References: LoaderSignal
LoaderSignal
export type LoaderSignal<TYPE> = TYPE extends () => ValueOrPromise<
  infer VALIDATOR
>
  ? ReadonlySignal<ValueOrPromise<VALIDATOR>>
  : ReadonlySignal<TYPE>;MenuData
export type MenuData = [pathname: string, menuLoader: MenuModuleLoader];NavigationType
export type NavigationType = "initial" | "form" | "link" | "popstate";PageModule
export interface PageModule extends RouteModuleExtends: RouteModule
| Property | Modifiers | Type | Description | 
|---|---|---|---|
| 
 | unknown | ||
| 
 | ContentModuleHead | (Optional) | |
| 
 | (Optional) | ||
| 
 | (Optional) | 
PathParams
export declare type PathParams = Record<string, string>;PreventNavigateCallback
export type PreventNavigateCallback = (
  url?: number | URL,
) => ValueOrPromise<boolean>;QWIK_CITY_SCROLLER
QWIK_CITY_SCROLLER = "_qCityScroller";QwikCityMockProps
export interface QwikCityMockProps| Property | Modifiers | Type | Description | 
|---|---|---|---|
| (Optional) | |||
| Record<string, string> | (Optional) | ||
| string | (Optional) | 
QwikCityMockProvider
QwikCityMockProvider: import("@builder.io/qwik").Component<QwikCityMockProps>;QwikCityPlan
export interface QwikCityPlan| Property | Modifiers | Type | Description | 
|---|---|---|---|
| 
 | string | (Optional) | |
| 
 | boolean | (Optional) | |
| 
 | MenuData[] | (Optional) | |
| 
 | |||
| 
 | RouteModule[] | (Optional) | |
| 
 | boolean | (Optional) | 
QwikCityProps
export interface QwikCityProps| Property | Modifiers | Type | Description | 
|---|---|---|---|
| boolean | (Optional) Enable the ViewTransition API Default:  | 
QwikCityProvider
QwikCityProvider: import("@builder.io/qwik").Component<QwikCityProps>;ResolvedDocumentHead
export type ResolvedDocumentHead<
  FrontMatter extends Record<string, any> = Record<string, unknown>,
> = Required<DocumentHeadValue<FrontMatter>>;References: DocumentHeadValue
routeAction$
routeAction$: ActionConstructor;routeActionQrl
routeActionQrl: ActionConstructorQRL;RouteData
export type RouteData =
  | [routeName: string, loaders: ModuleLoader[]]
  | [
      routeName: string,
      loaders: ModuleLoader[],
      originalPathname: string,
      routeBundleNames: string[],
    ];routeLoader$
routeLoader$: LoaderConstructor;routeLoaderQrl
routeLoaderQrl: LoaderConstructorQRL;RouteLocation
export interface RouteLocation| Property | Modifiers | Type | Description | 
|---|---|---|---|
| 
 | boolean | ||
| 
 | Readonly<Record<string, string>> | ||
| 
 | URL | undefined | ||
| 
 | URL | 
RouteNavigate
export type RouteNavigate = QRL<
  (
    path?: string | number | URL,
    options?:
      | {
          type?: Exclude<NavigationType, "initial">;
          forceReload?: boolean;
          replaceState?: boolean;
          scroll?: boolean;
        }
      | boolean,
  ) => Promise<void>
>;References: NavigationType
RouterOutlet
RouterOutlet: import("@builder.io/qwik").Component<unknown>;server$
server$: <T extends ServerFunction>(
  qrl: T,
  options?: ServerConfig | undefined,
) => ServerQRL<T>;| Parameter | Type | Description | 
|---|---|---|
| qrl | T | |
| options | ServerConfig | undefined | (Optional) | 
Returns:
ServerQRL<T>
ServerFunction
export type ServerFunction = {
  (this: RequestEventBase, ...args: any[]): any;
  options?: ServerConfig;
};serverQrl
You can pass an AbortSignal as the first argument of a server$ function and it will use it to abort the fetch when fired.
export type ServerQRL<T extends ServerFunction> = QRL<
  | ((abort: AbortSignal, ...args: Parameters<T>) => ReturnType<T>)
  | ((...args: Parameters<T>) => ReturnType<T>)
>;References: ServerFunction
ServerQRL
You can pass an AbortSignal as the first argument of a server$ function and it will use it to abort the fetch when fired.
export type ServerQRL<T extends ServerFunction> = QRL<
  | ((abort: AbortSignal, ...args: Parameters<T>) => ReturnType<T>)
  | ((...args: Parameters<T>) => ReturnType<T>)
>;References: ServerFunction
ServiceWorkerRegister
Loads the service workers that are defined in the routes. Any file named service-worker.* (all JS extensions are allowed) will be picked up, bundled into a separate file, and registered as a service worker.
ServiceWorkerRegister: (props: { nonce?: string }) => JSXOutput;| Parameter | Type | Description | 
|---|---|---|
| props | { nonce?: string; } | 
Returns:
JSXOutput
StaticGenerate
export interface StaticGenerate| Property | Modifiers | Type | Description | 
|---|---|---|---|
| (Optional) | 
StaticGenerateHandler
export type StaticGenerateHandler = ({
  env,
}: {
  env: EnvGetter;
}) => Promise<StaticGenerate> | StaticGenerate;References: StaticGenerate
StrictUnion
export type StrictUnion<T> = Prettify<StrictUnionHelper<T, T>>;TypedDataValidator
export type TypedDataValidator = ValibotDataValidator | ZodDataValidator;useContent
useContent: () => import("./types").ContentState;Returns:
import("./types").ContentState
useDocumentHead
Returns the document head for the current page. The generic type describes the front matter.
useDocumentHead: <
  FrontMatter extends Record<string, unknown> = Record<string, any>,
>() => Required<ResolvedDocumentHead<FrontMatter>>;Returns:
Required<ResolvedDocumentHead<FrontMatter>>
useLocation
useLocation: () => RouteLocation;Returns:
useNavigate
useNavigate: () => RouteNavigate;Returns:
usePreventNavigate$
Prevent navigation attempts. This hook registers a callback that will be called before SPA or browser navigation.
Return true to prevent navigation.
#### SPA Navigation
For Single-Page-App (SPA) navigation (via <Link />, const nav = useNavigate(), and browser backwards/forwards inside SPA history), the callback will be provided with the target, either a URL or a number. It will only be a number if nav(number) was called to navigate forwards or backwards in SPA history.
If you return a Promise, the navigation will be blocked until the promise resolves.
This can be used to show a nice dialog to the user, and wait for the user to confirm, or to record the url, prevent the navigation, and navigate there later via nav(url).
#### Browser Navigation
However, when the user navigates away by clicking on a regular <a />, reloading, or moving backwards/forwards outside SPA history, this callback will not be awaited. This is because the browser does not provide a way to asynchronously prevent these navigations.
In this case, returning returning true will tell the browser to show a confirmation dialog, which cannot be customized. You are also not able to show your own window.confirm() dialog during the callback, the browser won't allow it. If you return a Promise, it will be considered as true.
When the callback is called from the browser, no url will be provided. Use this to know whether you can show a dialog or just return true to prevent the navigation.
usePreventNavigate$: (qrl: PreventNavigateCallback) => void| Parameter | Type | Description | 
|---|---|---|
| qrl | 
Returns:
void
valibot$
This API is provided as an alpha preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
valibot$: ValibotConstructor;valibotQrl
This API is provided as an alpha preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
valibotQrl: ValibotConstructorQRL;validator$
validator$: ValidatorConstructor;ValidatorErrorKeyDotNotation
export type ValidatorErrorKeyDotNotation<T, Prefix extends string = ""> =
  IsAny<T> extends true
    ? never
    : T extends object
      ? {
          [K in keyof T & string]: IsAny<T[K]> extends true
            ? never
            : T[K] extends (infer U)[]
              ? IsAny<U> extends true
                ? never
                : U extends object
                  ?
                      | `${Prefix}${K}[]`
                      | ValidatorErrorKeyDotNotation<U, `${Prefix}${K}[].`>
                  : `${Prefix}${K}[]`
              : T[K] extends object
                ? ValidatorErrorKeyDotNotation<T[K], `${Prefix}${K}.`>
                : `${Prefix}${K}`;
        }[keyof T & string]
      : never;References: ValidatorErrorKeyDotNotation
ValidatorErrorType
export type ValidatorErrorType<T, U = string> = {
  formErrors: U[];
  fieldErrors: Partial<{
    [K in ValidatorErrorKeyDotNotation<T>]: K extends `${infer _Prefix}[]${infer _Suffix}`
      ? U[]
      : U;
  }>;
};References: ValidatorErrorKeyDotNotation
validatorQrl
validatorQrl: ValidatorConstructorQRL;ValidatorReturn
export type ValidatorReturn<T extends Record<string, any> = {}> =
  | ValidatorReturnSuccess
  | ValidatorReturnFail<T>;zod$
zod$: ZodConstructor;ZodConstructor
export type ZodConstructor = {
  <T extends z.ZodRawShape>(schema: T): ZodDataValidator<z.ZodObject<T>>;
  <T extends z.ZodRawShape>(
    schema: (zod: typeof z.z, ev: RequestEvent) => T,
  ): ZodDataValidator<z.ZodObject<T>>;
  <T extends z.Schema>(schema: T): ZodDataValidator<T>;
  <T extends z.Schema>(
    schema: (zod: typeof z.z, ev: RequestEvent) => T,
  ): ZodDataValidator<T>;
};zodQrl
zodQrl: ZodConstructorQRL;