@@ -3,21 +3,11 @@ interface LicenseChangeRecord {
33 to : string
44}
55
6- interface NpmRegistryVersion {
7- version : string
8- license ?: string
9- }
10-
11- interface NpmRegistryResponse {
12- time : Record < string , string >
13- versions : Record < string , NpmRegistryVersion >
14- }
15-
166export default defineCachedEventHandler (
177 async event => {
188 // 1. Extract the package name from the catch-all parameter
19- const rawPkg = getRouterParam ( event , 'pkg' )
20- if ( ! rawPkg ) {
9+ const packageName = getRouterParam ( event , 'pkg' )
10+ if ( ! packageName ) {
2111 throw createError ( {
2212 statusCode : 400 ,
2313 statusMessage : 'Package name is required' ,
@@ -26,12 +16,10 @@ export default defineCachedEventHandler(
2616 const query = getQuery ( event )
2717 const version = query . version || 'latest'
2818
29- const packageName = decodeURIComponent ( rawPkg ) . replace ( / \/ + $ / , '' ) . trim ( )
30-
3119 try {
3220 // 2. Fetch the "Packument" on the server
3321 // This stays on the server, so the client never downloads this massive JSON
34- const data = await $fetch < NpmRegistryResponse > ( `https://registry.npmjs.org/ ${ packageName } ` )
22+ const data = await fetchNpmPackage ( packageName )
3523
3624 if ( ! data . versions || ! data . time ) {
3725 throw createError ( {
@@ -59,8 +47,8 @@ export default defineCachedEventHandler(
5947
6048 if ( currentLicense !== previousLicense ) {
6149 change = {
62- from : previousLicense as string ,
63- to : currentLicense as string ,
50+ from : previousLicense ,
51+ to : currentLicense ,
6452 }
6553 }
6654 return { change }
0 commit comments