Skip to content

Svelte API

createAsyncSignal

Импорт

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

TypeScript сигнатура

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 можно передавать как значение или как closure (() => value), когда нужна отложенная инициализация для реактивности.


refreshAsyncSignal

Импорт

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

TypeScript сигнатура

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

Обновляет один сигнал, зарегистрированный с options.key.


refreshAllAsyncSignals

Импорт

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

TypeScript сигнатура

ts
refreshAllAsyncSignals(): Promise<void>

Обновляет все зарегистрированные async-сигналы.


createActiveForm

Импорт

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

TypeScript сигнатура

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>>;
}

Помощник формы с реактивными data/errors, асинхронной отправкой и маппингом ошибок валидации.


createQuery

Импорт

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

TypeScript сигнатура

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;
}

Реактивное состояние query для фильтров/пагинации. Может автоматически вызывать signal.refresh() при изменении отслеживаемых ключей.