UNPKG

1.97 kBTypeScriptView Raw
1import { AkteFiles, type FilesBulkDataFn, type FilesDataFn, type FilesDefinition } from "./AkteFiles";
2import type { Empty } from "./types";
3/**
4 * Creates an Akte files instance.
5 *
6 * @example
7 * const posts = defineAkteFiles().from({
8 * path: "/posts/:slug",
9 * bulkData() {
10 * return {
11 * "/posts/foo": {},
12 * "/posts/bar": {},
13 * "/posts/baz": {},
14 * };
15 * },
16 * render(context) {
17 * return "...";
18 * },
19 * });
20 *
21 * @typeParam TGlobalData - Global data the Akte files expects.
22 * @typeParam TParams - Parameters the Akte files expects.
23 * @typeParam TData - Data the Akte files expects (inferred by default)
24 * @returns A factory to create the Akte files from.
25 */
26export declare const defineAkteFiles: <TGlobalData, TParams extends Empty | string[] = Empty, TData = Empty>() => {
27 /**
28 * Creates an Akte files instance from a definition.
29 *
30 * @param definition - The definition to create the instance from.
31 * @returns The created Akte files.
32 */
33 from: <_TGlobalData extends TGlobalData, _TParams extends TParams extends Empty ? _TDataFn extends FilesDataFn<_TGlobalData, string[], unknown> ? Exclude<keyof Parameters<_TDataFn>[0]["params"], number | Symbol>[] : string[] : TParams, _TData extends TData extends Empty ? _TDataFn extends FilesDataFn<_TGlobalData, string[], unknown> ? Awaited<ReturnType<_TDataFn>> : _TBulkDataFn extends FilesBulkDataFn<_TGlobalData, unknown> ? Awaited<ReturnType<_TBulkDataFn>>[keyof Awaited<ReturnType<_TBulkDataFn>>] : undefined : TData, _TDataFn extends FilesDataFn<_TGlobalData, string[], unknown> | undefined, _TBulkDataFn extends _TDataFn extends FilesDataFn<_TGlobalData, string[], unknown> ? FilesBulkDataFn<_TGlobalData, Awaited<ReturnType<_TDataFn>>> | undefined : FilesBulkDataFn<_TGlobalData, unknown> | undefined>(definition: FilesDefinition<_TGlobalData, _TParams, _TData>) => AkteFiles<_TGlobalData, _TParams, _TData>;
34};