|
1 | | -declare module 'astro:content' { |
2 | | - interface Render { |
3 | | - '.mdx': Promise<{ |
4 | | - Content: import('astro').MarkdownInstance<{}>['Content']; |
5 | | - headings: import('astro').MarkdownHeading[]; |
6 | | - remarkPluginFrontmatter: Record<string, any>; |
7 | | - }>; |
8 | | - } |
9 | | -} |
10 | | - |
11 | | -declare module 'astro:content' { |
12 | | - interface RenderResult { |
13 | | - Content: import('astro/runtime/server/index.js').AstroComponentFactory; |
14 | | - headings: import('astro').MarkdownHeading[]; |
15 | | - remarkPluginFrontmatter: Record<string, any>; |
16 | | - } |
17 | | - interface Render { |
18 | | - '.md': Promise<RenderResult>; |
19 | | - } |
20 | | - |
21 | | - export interface RenderedContent { |
22 | | - html: string; |
23 | | - metadata?: { |
24 | | - imagePaths: Array<string>; |
25 | | - [key: string]: unknown; |
26 | | - }; |
27 | | - } |
28 | | -} |
29 | | - |
30 | | -declare module 'astro:content' { |
31 | | - type Flatten<T> = T extends { [K: string]: infer U } ? U : never; |
32 | | - |
33 | | - export type CollectionKey = keyof AnyEntryMap; |
34 | | - export type CollectionEntry<C extends CollectionKey> = Flatten<AnyEntryMap[C]>; |
35 | | - |
36 | | - export type ContentCollectionKey = keyof ContentEntryMap; |
37 | | - export type DataCollectionKey = keyof DataEntryMap; |
38 | | - |
39 | | - type AllValuesOf<T> = T extends any ? T[keyof T] : never; |
40 | | - type ValidContentEntrySlug<C extends keyof ContentEntryMap> = AllValuesOf< |
41 | | - ContentEntryMap[C] |
42 | | - >['slug']; |
43 | | - |
44 | | - /** @deprecated Use `getEntry` instead. */ |
45 | | - export function getEntryBySlug< |
46 | | - C extends keyof ContentEntryMap, |
47 | | - E extends ValidContentEntrySlug<C> | (string & {}), |
48 | | - >( |
49 | | - collection: C, |
50 | | - // Note that this has to accept a regular string too, for SSR |
51 | | - entrySlug: E, |
52 | | - ): E extends ValidContentEntrySlug<C> |
53 | | - ? Promise<CollectionEntry<C>> |
54 | | - : Promise<CollectionEntry<C> | undefined>; |
55 | | - |
56 | | - /** @deprecated Use `getEntry` instead. */ |
57 | | - export function getDataEntryById<C extends keyof DataEntryMap, E extends keyof DataEntryMap[C]>( |
58 | | - collection: C, |
59 | | - entryId: E, |
60 | | - ): Promise<CollectionEntry<C>>; |
61 | | - |
62 | | - export function getCollection<C extends keyof AnyEntryMap, E extends CollectionEntry<C>>( |
63 | | - collection: C, |
64 | | - filter?: (entry: CollectionEntry<C>) => entry is E, |
65 | | - ): Promise<E[]>; |
66 | | - export function getCollection<C extends keyof AnyEntryMap>( |
67 | | - collection: C, |
68 | | - filter?: (entry: CollectionEntry<C>) => unknown, |
69 | | - ): Promise<CollectionEntry<C>[]>; |
70 | | - |
71 | | - export function getEntry< |
72 | | - C extends keyof ContentEntryMap, |
73 | | - E extends ValidContentEntrySlug<C> | (string & {}), |
74 | | - >(entry: { |
75 | | - collection: C; |
76 | | - slug: E; |
77 | | - }): E extends ValidContentEntrySlug<C> |
78 | | - ? Promise<CollectionEntry<C>> |
79 | | - : Promise<CollectionEntry<C> | undefined>; |
80 | | - export function getEntry< |
81 | | - C extends keyof DataEntryMap, |
82 | | - E extends keyof DataEntryMap[C] | (string & {}), |
83 | | - >(entry: { |
84 | | - collection: C; |
85 | | - id: E; |
86 | | - }): E extends keyof DataEntryMap[C] |
87 | | - ? Promise<DataEntryMap[C][E]> |
88 | | - : Promise<CollectionEntry<C> | undefined>; |
89 | | - export function getEntry< |
90 | | - C extends keyof ContentEntryMap, |
91 | | - E extends ValidContentEntrySlug<C> | (string & {}), |
92 | | - >( |
93 | | - collection: C, |
94 | | - slug: E, |
95 | | - ): E extends ValidContentEntrySlug<C> |
96 | | - ? Promise<CollectionEntry<C>> |
97 | | - : Promise<CollectionEntry<C> | undefined>; |
98 | | - export function getEntry< |
99 | | - C extends keyof DataEntryMap, |
100 | | - E extends keyof DataEntryMap[C] | (string & {}), |
101 | | - >( |
102 | | - collection: C, |
103 | | - id: E, |
104 | | - ): E extends keyof DataEntryMap[C] |
105 | | - ? Promise<DataEntryMap[C][E]> |
106 | | - : Promise<CollectionEntry<C> | undefined>; |
107 | | - |
108 | | - /** Resolve an array of entry references from the same collection */ |
109 | | - export function getEntries<C extends keyof ContentEntryMap>( |
110 | | - entries: { |
111 | | - collection: C; |
112 | | - slug: ValidContentEntrySlug<C>; |
113 | | - }[], |
114 | | - ): Promise<CollectionEntry<C>[]>; |
115 | | - export function getEntries<C extends keyof DataEntryMap>( |
116 | | - entries: { |
117 | | - collection: C; |
118 | | - id: keyof DataEntryMap[C]; |
119 | | - }[], |
120 | | - ): Promise<CollectionEntry<C>[]>; |
121 | | - |
122 | | - export function render<C extends keyof AnyEntryMap>( |
123 | | - entry: AnyEntryMap[C][string], |
124 | | - ): Promise<RenderResult>; |
125 | | - |
126 | | - export function reference<C extends keyof AnyEntryMap>( |
127 | | - collection: C, |
128 | | - ): import('astro/zod').ZodEffects< |
129 | | - import('astro/zod').ZodString, |
130 | | - C extends keyof ContentEntryMap |
131 | | - ? { |
132 | | - collection: C; |
133 | | - slug: ValidContentEntrySlug<C>; |
134 | | - } |
135 | | - : { |
136 | | - collection: C; |
137 | | - id: keyof DataEntryMap[C]; |
138 | | - } |
139 | | - >; |
140 | | - // Allow generic `string` to avoid excessive type errors in the config |
141 | | - // if `dev` is not running to update as you edit. |
142 | | - // Invalid collection names will be caught at build time. |
143 | | - export function reference<C extends string>( |
144 | | - collection: C, |
145 | | - ): import('astro/zod').ZodEffects<import('astro/zod').ZodString, never>; |
146 | | - |
147 | | - type ReturnTypeOrOriginal<T> = T extends (...args: any[]) => infer R ? R : T; |
148 | | - type InferEntrySchema<C extends keyof AnyEntryMap> = import('astro/zod').infer< |
149 | | - ReturnTypeOrOriginal<Required<ContentConfig['collections'][C]>['schema']> |
150 | | - >; |
151 | | - |
152 | | - type ContentEntryMap = { |
153 | | - "blog": { |
154 | | -"release-0.0.2-schwindlig.mdx": { |
155 | | - id: "release-0.0.2-schwindlig.mdx"; |
156 | | - slug: "release-002-schwindlig"; |
157 | | - body: string; |
158 | | - collection: "blog"; |
159 | | - data: InferEntrySchema<"blog"> |
160 | | -} & { render(): Render[".mdx"] }; |
161 | | -"release-0.0.2.1-stuermisch.mdx": { |
162 | | - id: "release-0.0.2.1-stuermisch.mdx"; |
163 | | - slug: "release-0021-stuermisch"; |
164 | | - body: string; |
165 | | - collection: "blog"; |
166 | | - data: InferEntrySchema<"blog"> |
167 | | -} & { render(): Render[".mdx"] }; |
168 | | -"release-0.0.3-maelstrom.mdx": { |
169 | | - id: "release-0.0.3-maelstrom.mdx"; |
170 | | - slug: "release-003-maelstrom"; |
171 | | - body: string; |
172 | | - collection: "blog"; |
173 | | - data: InferEntrySchema<"blog"> |
174 | | -} & { render(): Render[".mdx"] }; |
175 | | -"release-0.0.4-gischt.mdx": { |
176 | | - id: "release-0.0.4-gischt.mdx"; |
177 | | - slug: "release-004-gischt"; |
178 | | - body: string; |
179 | | - collection: "blog"; |
180 | | - data: InferEntrySchema<"blog"> |
181 | | -} & { render(): Render[".mdx"] }; |
182 | | -"release-0.3.0-donauwelle.mdx": { |
183 | | - id: "release-0.3.0-donauwelle.mdx"; |
184 | | - slug: "release-030-donauwelle"; |
185 | | - body: string; |
186 | | - collection: "blog"; |
187 | | - data: InferEntrySchema<"blog"> |
188 | | -} & { render(): Render[".mdx"] }; |
189 | | -"release-0.4.0-brandung.mdx": { |
190 | | - id: "release-0.4.0-brandung.mdx"; |
191 | | - slug: "release-040-brandung"; |
192 | | - body: string; |
193 | | - collection: "blog"; |
194 | | - data: InferEntrySchema<"blog"> |
195 | | -} & { render(): Render[".mdx"] }; |
196 | | -"release-0.5.0-wirbel.mdx": { |
197 | | - id: "release-0.5.0-wirbel.mdx"; |
198 | | - slug: "release-050-wirbel"; |
199 | | - body: string; |
200 | | - collection: "blog"; |
201 | | - data: InferEntrySchema<"blog"> |
202 | | -} & { render(): Render[".mdx"] }; |
203 | | -"release-0.6.0-zimtschnecke.mdx": { |
204 | | - id: "release-0.6.0-zimtschnecke.mdx"; |
205 | | - slug: "release-060-zimtschnecke"; |
206 | | - body: string; |
207 | | - collection: "blog"; |
208 | | - data: InferEntrySchema<"blog"> |
209 | | -} & { render(): Render[".mdx"] }; |
210 | | -"release-0.7.0-zuckerguss.mdx": { |
211 | | - id: "release-0.7.0-zuckerguss.mdx"; |
212 | | - slug: "release-070-zuckerguss"; |
213 | | - body: string; |
214 | | - collection: "blog"; |
215 | | - data: InferEntrySchema<"blog"> |
216 | | -} & { render(): Render[".mdx"] }; |
217 | | -"release-0.8.0-himbeermuffin.mdx": { |
218 | | - id: "release-0.8.0-himbeermuffin.mdx"; |
219 | | - slug: "release-080-himbeermuffin"; |
220 | | - body: string; |
221 | | - collection: "blog"; |
222 | | - data: InferEntrySchema<"blog"> |
223 | | -} & { render(): Render[".mdx"] }; |
224 | | -"release-0.9.0-bananenbrot.mdx": { |
225 | | - id: "release-0.9.0-bananenbrot.mdx"; |
226 | | - slug: "release-090-bananenbrot"; |
227 | | - body: string; |
228 | | - collection: "blog"; |
229 | | - data: InferEntrySchema<"blog"> |
230 | | -} & { render(): Render[".mdx"] }; |
231 | | -"release-1.0.0-geburtstagskuchen.mdx": { |
232 | | - id: "release-1.0.0-geburtstagskuchen.mdx"; |
233 | | - slug: "release-100-geburtstagskuchen"; |
234 | | - body: string; |
235 | | - collection: "blog"; |
236 | | - data: InferEntrySchema<"blog"> |
237 | | -} & { render(): Render[".mdx"] }; |
238 | | -"year-2.mdx": { |
239 | | - id: "year-2.mdx"; |
240 | | - slug: "year-2"; |
241 | | - body: string; |
242 | | - collection: "blog"; |
243 | | - data: InferEntrySchema<"blog"> |
244 | | -} & { render(): Render[".mdx"] }; |
245 | | -}; |
246 | | - |
247 | | - }; |
248 | | - |
249 | | - type DataEntryMap = { |
250 | | - |
251 | | - }; |
252 | | - |
253 | | - type AnyEntryMap = ContentEntryMap & DataEntryMap; |
254 | | - |
255 | | - export type ContentConfig = typeof import("../../src/content/config.js"); |
256 | | -} |
0 commit comments