@@ -157,6 +157,72 @@ export const getFakePackageListingDetails = async (
157
157
} ;
158
158
} ;
159
159
160
+ // Content used to render Package's detail view.
161
+ export const getFakePackageVersionDetails = async (
162
+ namespace : string ,
163
+ name : string ,
164
+ version : string
165
+ ) => {
166
+ const seed = `${ namespace } -${ name } -${ version } ` ;
167
+ setSeed ( seed ) ;
168
+
169
+ // Generate a base icon (nullable 10% of time)
170
+ const iconUrl =
171
+ faker . helpers . maybe ( ( ) => getFakeImg ( ) , {
172
+ probability : 0.9 ,
173
+ } ) ?? null ;
174
+
175
+ // Fake dependencies (reuse logic but need extra flags)
176
+ const dependencyCount = faker . number . int ( { min : 0 , max : 6 } ) ;
177
+ const dependencies = await Promise . all (
178
+ range ( dependencyCount ) . map ( async ( ) => {
179
+ const depSeed = `${ seed } -dep-${ faker . string . alpha ( 8 ) } ` ;
180
+ setSeed ( depSeed ) ;
181
+ const isActive = faker . datatype . boolean ( 0.8 ) ;
182
+ const removed = faker . datatype . boolean ( 0.1 ) ;
183
+ const unavailable = ! removed && faker . datatype . boolean ( 0.05 ) ;
184
+ return {
185
+ description : isActive
186
+ ? faker . company . buzzPhrase ( )
187
+ : "This package has been removed." ,
188
+ icon_url : isActive
189
+ ? faker . helpers . maybe ( ( ) => getFakeImg ( 256 , 256 ) , {
190
+ probability : 0.85 ,
191
+ } ) ?? null
192
+ : null ,
193
+ is_active : isActive ,
194
+ name : faker . word . words ( 3 ) . split ( " " ) . join ( "_" ) ,
195
+ namespace : faker . word . sample ( ) ,
196
+ version_number : getVersionNumber ( ) ,
197
+ is_removed : removed ,
198
+ is_unavailable : unavailable ,
199
+ } ;
200
+ } )
201
+ ) ;
202
+
203
+ return {
204
+ description : faker . company . buzzPhrase ( ) ,
205
+ download_count : faker . number . int ( { min : 0 , max : 5_000_000 } ) ,
206
+ icon_url : iconUrl ,
207
+ name,
208
+ namespace,
209
+ size : faker . number . int ( { min : 20_000 , max : 4_000_000_000 } ) ,
210
+ datetime_created : faker . date . past ( { years : 2 } ) . toISOString ( ) ,
211
+ dependencies,
212
+ dependency_count : dependencies . length ,
213
+ download_url : `https://thunderstore.io/package/download/${ namespace } /${ name } /${ version } /` ,
214
+ full_version_name : `${ namespace } -${ name } -${ version } ` ,
215
+ team : {
216
+ name : faker . word . words ( 3 ) ,
217
+ members : await getFakeTeamMembers ( seed ) ,
218
+ } ,
219
+ website_url :
220
+ faker . helpers . maybe ( ( ) => faker . internet . url ( ) , {
221
+ probability : 0.9 ,
222
+ } ) ?? null ,
223
+ } ;
224
+ } ;
225
+
160
226
// Shown on a tab on Package's detail view.
161
227
export const getFakePackageVersions = async (
162
228
namespace : string ,
0 commit comments