@@ -31,6 +31,21 @@ declare module 'astro:content' {
31
31
ContentEntryMap [ C ]
32
32
> [ 'slug' ] ;
33
33
34
+ export type ReferenceDataEntry <
35
+ C extends CollectionKey ,
36
+ E extends keyof DataEntryMap [ C ] = string ,
37
+ > = {
38
+ collection : C ;
39
+ id : E ;
40
+ } ;
41
+ export type ReferenceContentEntry <
42
+ C extends keyof ContentEntryMap ,
43
+ E extends ValidContentEntrySlug < C > | ( string & { } ) = string ,
44
+ > = {
45
+ collection : C ;
46
+ slug : E ;
47
+ } ;
48
+
34
49
/** @deprecated Use `getEntry` instead. */
35
50
export function getEntryBySlug <
36
51
C extends keyof ContentEntryMap ,
@@ -61,19 +76,17 @@ declare module 'astro:content' {
61
76
export function getEntry <
62
77
C extends keyof ContentEntryMap ,
63
78
E extends ValidContentEntrySlug < C > | ( string & { } ) ,
64
- > ( entry : {
65
- collection : C ;
66
- slug : E ;
67
- } ) : E extends ValidContentEntrySlug < C >
79
+ > (
80
+ entry : ReferenceContentEntry < C , E > ,
81
+ ) : E extends ValidContentEntrySlug < C >
68
82
? Promise < CollectionEntry < C > >
69
83
: Promise < CollectionEntry < C > | undefined > ;
70
84
export function getEntry <
71
85
C extends keyof DataEntryMap ,
72
86
E extends keyof DataEntryMap [ C ] | ( string & { } ) ,
73
- > ( entry : {
74
- collection : C ;
75
- id : E ;
76
- } ) : E extends keyof DataEntryMap [ C ]
87
+ > (
88
+ entry : ReferenceDataEntry < C , E > ,
89
+ ) : E extends keyof DataEntryMap [ C ]
77
90
? Promise < DataEntryMap [ C ] [ E ] >
78
91
: Promise < CollectionEntry < C > | undefined > ;
79
92
export function getEntry <
@@ -99,16 +112,10 @@ declare module 'astro:content' {
99
112
100
113
/** Resolve an array of entry references from the same collection */
101
114
export function getEntries < C extends keyof ContentEntryMap > (
102
- entries : {
103
- collection : C ;
104
- slug : ValidContentEntrySlug < C > ;
105
- } [ ] ,
115
+ entries : ReferenceContentEntry < C , ValidContentEntrySlug < C > > [ ] ,
106
116
) : Promise < CollectionEntry < C > [ ] > ;
107
117
export function getEntries < C extends keyof DataEntryMap > (
108
- entries : {
109
- collection : C ;
110
- id : keyof DataEntryMap [ C ] ;
111
- } [ ] ,
118
+ entries : ReferenceDataEntry < C , keyof DataEntryMap [ C ] > [ ] ,
112
119
) : Promise < CollectionEntry < C > [ ] > ;
113
120
114
121
export function render < C extends keyof AnyEntryMap > (
@@ -120,14 +127,8 @@ declare module 'astro:content' {
120
127
) : import ( 'astro/zod' ) . ZodEffects <
121
128
import ( 'astro/zod' ) . ZodString ,
122
129
C extends keyof ContentEntryMap
123
- ? {
124
- collection : C ;
125
- slug : ValidContentEntrySlug < C > ;
126
- }
127
- : {
128
- collection : C ;
129
- id : keyof DataEntryMap [ C ] ;
130
- }
130
+ ? ReferenceContentEntry < C , ValidContentEntrySlug < C > >
131
+ : ReferenceDataEntry < C , keyof DataEntryMap [ C ] >
131
132
> ;
132
133
// Allow generic `string` to avoid excessive type errors in the config
133
134
// if `dev` is not running to update as you edit.
0 commit comments