Skip to content

Svelte API

createAsyncSignal

Import

ts
import { createAsyncSignal } from '@azure-net/kit';

TypeScript signature

ts
createAsyncSignal<TData, TError = Error>(
  handler: (signal?: AbortSignal) => Promise<TData>,
  options?: {
    server?: boolean;
    immediate?: boolean;
    watch?: (() => unknown)[];
    initialData?: TData | (() => TData);
    beforeSend?: (meta: { initial: boolean; source: 'auto' | 'manual' | 'global' }) => void | Promise<void>;
    onSuccess?: (data: TData) => void | Promise<void>;
    onError?: (error: TError) => void | Promise<void>;
    key?: string;
  }
): {
  data?: TData;
  error?: TError;
  status: 'idle' | 'pending' | 'success' | 'error';
  pending: boolean;
  execute: () => Promise<void>;
  refresh: () => Promise<void>;
  ready: Promise<TData | undefined>;
  reset: () => void;
  abort: () => void;
}

initialData can be passed as a value or as a closure (() => value) when you need deferred initialization for reactivity.


refreshAsyncSignal

Import

ts
import { refreshAsyncSignal } from '@azure-net/kit';

TypeScript signature

ts
refreshAsyncSignal(key: string): Promise<void>

Refreshes one signal registered with options.key.


refreshAllAsyncSignals

Import

ts
import { refreshAllAsyncSignals } from '@azure-net/kit';

TypeScript signature

ts
refreshAllAsyncSignals(): Promise<void>

Refreshes all registered async signals.


createActiveForm

Import

ts
import { createActiveForm } from '@azure-net/kit';

TypeScript signature

ts
createActiveForm<
  SubmitReturn extends Promise<AsyncActionResponse<unknown, unknown, unknown>>,
  RequiredPath extends string = never
>(
  onSubmit: (formData: Partial<FormData>) => SubmitReturn,
  config?: {
    initialData?: Partial<FormData> | Promise<Partial<FormData>> | (() => Partial<FormData> | Promise<Partial<FormData>>);
    required?: readonly RequiredPath[];
    onSuccess?: (response: Response) => void | Promise<void>;
    onError?: () => void | Promise<void>;
    beforeSubmit?: (form, abort: () => void) => void | Promise<void>;
    waitForInitialData?: boolean;
  }
): {
  data: Partial<FormData>;
  errors: RequestErrors<FormData>;
  submit: () => Promise<AsyncActionResponse<Response, FormData, Custom>>;
  reset: (toInitial?: boolean) => void;
  pending: boolean;
  dirty: boolean;
  ready: Promise<Partial<FormData>>;
}

Form helper with reactive data/errors, async submit flow, and schema-aware error mapping.


createQuery

Import

ts
import { createQuery } from '@azure-net/kit';

TypeScript signature

ts
createQuery<T extends Record<string, unknown>>(options: {
  initial: T;
  signal?: { refresh: () => Promise<void> };
  excludeKeys?: (keyof T)[];
  debounceMs?: number;
  autoRefresh?: boolean;
}): {
  data: T;
  patch: (values: Partial<T>) => void;
  set: <K extends keyof T>(key: K, value: T[K]) => void;
  reset: () => void;
  snapshot: () => T;
  initial: () => T;
  attachSignal: (signal?: { refresh: () => Promise<void> }) => void;
}

Reactive query state for list filtering/pagination. Can auto-call signal.refresh() when tracked keys change.