@@ -12,60 +12,76 @@ import { DapperTs } from "@thunderstore/dapper-ts";
1212
1313export async function loader ( { params, request } : LoaderFunctionArgs ) {
1414 if ( params . namespaceId && params . packageId && params . packageVersion ) {
15- const publicEnvVariables = getPublicEnvVariables ( [ "VITE_API_URL" ] ) ;
16- const dapper = new DapperTs ( ( ) => {
17- return {
18- apiHost : publicEnvVariables . VITE_API_URL ,
19- sessionId : undefined ,
20- } ;
21- } ) ;
15+ const { dapper } = getLoaderTools ( ) ;
2216 const searchParams = new URL ( request . url ) . searchParams ;
23- const page = searchParams . get ( "page" ) ;
17+ const page = parseIntegerSearchParam ( searchParams . get ( "page" ) ) ;
2418
25- return {
26- version : await dapper . getPackageVersionDetails (
19+ try {
20+ const version = await dapper . getPackageVersionDetails (
2721 params . namespaceId ,
2822 params . packageId ,
2923 params . packageVersion
30- ) ,
31- dependencies : await dapper . getPackageVersionDependencies (
24+ ) ;
25+ const dependencies = await dapper . getPackageVersionDependencies (
3226 params . namespaceId ,
3327 params . packageId ,
3428 params . packageVersion ,
35- page === null ? undefined : Number ( page )
36- ) ,
37- } ;
29+ page
30+ ) ;
31+
32+ return {
33+ version,
34+ dependencies,
35+ } ;
36+ } catch ( error ) {
37+ handleLoaderError ( error , { mappings : packageDependenciesErrorMappings } ) ;
38+ }
3839 }
39- throw new Response ( "Package version dependencies not found" , { status : 404 } ) ;
40+ throwUserFacingPayloadResponse ( {
41+ headline : "Dependencies not found." ,
42+ description : "We could not find the requested version dependencies." ,
43+ category : "not_found" ,
44+ status : 404 ,
45+ } ) ;
4046}
4147
42- export async function clientLoader ( { params, request } : LoaderFunctionArgs ) {
48+ export function clientLoader ( { params, request } : LoaderFunctionArgs ) {
4349 if ( params . namespaceId && params . packageId && params . packageVersion ) {
44- const tools = getSessionTools ( ) ;
45- const dapper = new DapperTs ( ( ) => {
46- return {
47- apiHost : tools ?. getConfig ( ) . apiHost ,
48- sessionId : tools ?. getConfig ( ) . sessionId ,
49- } ;
50- } ) ;
50+ const { dapper } = getLoaderTools ( ) ;
5151 const searchParams = new URL ( request . url ) . searchParams ;
52- const page = searchParams . get ( "page" ) ;
52+ const page = parseIntegerSearchParam ( searchParams . get ( "page" ) ) ;
5353
54- return {
55- version : dapper . getPackageVersionDetails (
54+ const version = dapper
55+ . getPackageVersionDetails (
5656 params . namespaceId ,
5757 params . packageId ,
5858 params . packageVersion
59- ) ,
60- dependencies : dapper . getPackageVersionDependencies (
59+ )
60+ . catch ( ( error ) =>
61+ handleLoaderError ( error , { mappings : packageDependenciesErrorMappings } )
62+ ) ;
63+ const dependencies = dapper
64+ . getPackageVersionDependencies (
6165 params . namespaceId ,
6266 params . packageId ,
6367 params . packageVersion ,
64- page === null ? undefined : Number ( page )
65- ) ,
68+ page
69+ )
70+ . catch ( ( error ) =>
71+ handleLoaderError ( error , { mappings : packageDependenciesErrorMappings } )
72+ ) ;
73+
74+ return {
75+ version,
76+ dependencies,
6677 } ;
6778 }
68- throw new Response ( "Package version dependencies not found" , { status : 404 } ) ;
79+ throwUserFacingPayloadResponse ( {
80+ headline : "Dependencies not found." ,
81+ description : "We could not find the requested version dependencies." ,
82+ category : "not_found" ,
83+ status : 404 ,
84+ } ) ;
6985}
7086
7187export default function PackageVersionWithoutCommunityRequired ( ) {
@@ -88,3 +104,7 @@ export default function PackageVersionWithoutCommunityRequired() {
88104 </ Suspense >
89105 ) ;
90106}
107+
108+ export function ErrorBoundary ( ) {
109+ return < NimbusDefaultRouteErrorBoundary /> ;
110+ }
0 commit comments