import { FetchOptions } from "./check.mjs"; import { Arguments } from "./util.mjs"; import { ComponentOrFieldName, IsographEnvironment, StoreLink } from "./IsographEnvironment.mjs"; import { ExtractParameters, FragmentReference, UnknownTReadFromStore } from "./FragmentReference.mjs"; import { IsographEntrypoint, IsographEntrypointLoader, RefetchQueryNormalizationArtifact, RefetchQueryNormalizationArtifactWrapper } from "./entrypoint.mjs"; import { Factory } from "@isograph/disposable-types"; //#region src/core/reader.d.ts type TopLevelReaderArtifact> = EagerReaderArtifact | ComponentReaderArtifact; type EagerReaderArtifact = { readonly kind: 'EagerReaderArtifact'; readonly fieldName: ComponentOrFieldName; readonly readerAst: ReaderAst; readonly resolver: (data: ResolverFirstParameter) => TClientFieldValue; readonly hasUpdatable: boolean; }; type ComponentReaderArtifact = Record> = { readonly kind: 'ComponentReaderArtifact'; readonly fieldName: ComponentOrFieldName; readonly readerAst: ReaderAst; readonly resolver: (data: ResolverFirstParameter, runtimeProps: TComponentProps) => React.ReactNode; readonly hasUpdatable: boolean; }; type ResolverFirstParameter = Pick; type StartUpdate = (updater: (startUpdateParams: { updatableData: UpdatableData; }) => void) => void; type RefetchReaderArtifact = { readonly kind: 'RefetchReaderArtifact'; readonly readerAst: ReaderAst; readonly resolver: (environment: IsographEnvironment, artifact: RefetchQueryNormalizationArtifact, variables: any, filteredVariables: any, rootLink: StoreLink, readerArtifact: TopLevelReaderArtifact | null, nestedRefetchQueries: RefetchQueryNormalizationArtifactWrapper[]) => () => void; }; type ReaderAstNode = ReaderScalarField | ReaderLinkedField | ReaderNonLoadableResolverField | ReaderImperativelyLoadedField | LoadablySelectedField | ReaderLinkField; type ReaderAst = ReadonlyArray; type ReaderScalarField = { readonly kind: 'Scalar'; readonly fieldName: string; readonly alias: string | null; readonly arguments: Arguments | null; readonly isUpdatable: boolean; }; type ReaderLinkField = { readonly kind: 'Link'; readonly alias: string; }; type ReaderLinkedField = { readonly kind: 'Linked'; readonly fieldName: string; readonly alias: string | null; readonly selections: ReaderAst; readonly arguments: Arguments | null; readonly condition: EagerReaderArtifact<{ data: any; parameters: any; startUpdate?: StartUpdate; }, StoreLink | null | (StoreLink | null)[] | StoreLink[]> | null; readonly isUpdatable: boolean; /** * If refetchQueryIndex != null, then the linked field is a client pointer. */ readonly refetchQueryIndex: number | null; }; type ReaderNonLoadableResolverField = { readonly kind: 'Resolver'; readonly alias: string; readonly readerArtifact: TopLevelReaderArtifact; readonly arguments: Arguments | null; readonly usedRefetchQueries: number[]; }; type ReaderImperativelyLoadedField = { readonly kind: 'ImperativelyLoadedField'; readonly alias: string; readonly refetchReaderArtifact: RefetchReaderArtifact; readonly refetchQueryIndex: number; readonly name: string; }; type LoadablySelectedField = { readonly kind: 'LoadablySelectedField'; readonly alias: string; readonly name: string; readonly queryArguments: Arguments | null; readonly refetchReaderAst: ReaderAst; readonly entrypoint: IsographEntrypoint | IsographEntrypointLoader; }; type StableId = string; type LoadableField> = (args: TArgs | void, fetchOptions: FetchOptions) => [StableId, Factory>]; //#endregion export { ComponentReaderArtifact, EagerReaderArtifact, LoadableField, LoadablySelectedField, ReaderAst, ReaderAstNode, ReaderImperativelyLoadedField, ReaderLinkField, ReaderLinkedField, ReaderNonLoadableResolverField, ReaderScalarField, RefetchReaderArtifact, ResolverFirstParameter, StableId, StartUpdate, TopLevelReaderArtifact }; //# sourceMappingURL=reader.d.mts.map