7
7
parseReadme ,
8
8
formatAuthor ,
9
9
convertDistRemoteToLocalTarballUrls ,
10
+ getLocalRegistryTarballUri ,
10
11
isVersionValid
11
12
} from '../../../lib/utils' ;
12
13
import { allow } from '../../middleware' ;
@@ -21,7 +22,7 @@ const getOrder = (order = 'asc') => {
21
22
return order === 'asc' ;
22
23
} ;
23
24
24
- export type PackcageAuthor = Package & { author : any } ;
25
+ export type PackcageExt = Package & { author : any , dist ?: { tarball : string } } ;
25
26
26
27
function addPackageWebApi ( route : Router , storage : IStorageHandler , auth : IAuth , config : Config ) : void {
27
28
const can = allow ( auth ) ;
@@ -53,8 +54,8 @@ function addPackageWebApi(route: Router, storage: IStorageHandler, auth: IAuth,
53
54
throw err ;
54
55
}
55
56
56
- async function processPermissionsPackages ( packages : PackcageAuthor [ ] = [ ] ) : Promise < any > {
57
- const permissions : PackcageAuthor [ ] = [ ] ;
57
+ async function processPackages ( packages : PackcageExt [ ] = [ ] ) : Promise < any > {
58
+ const permissions : PackcageExt [ ] = [ ] ;
58
59
const packgesCopy = packages . slice ( ) ;
59
60
for ( const pkg of packgesCopy ) {
60
61
const pkgCopy = { ...pkg } ;
@@ -64,6 +65,9 @@ function addPackageWebApi(route: Router, storage: IStorageHandler, auth: IAuth,
64
65
if ( config . web ) {
65
66
pkgCopy . author . avatar = generateGravatarUrl ( pkgCopy . author . email , config . web . gravatar ) ;
66
67
}
68
+ if ( ! _ . isNil ( pkgCopy . dist ) && ! _ . isNull ( pkgCopy . dist . tarball ) ) {
69
+ pkgCopy . dist . tarball = getLocalRegistryTarballUri ( pkgCopy . dist . tarball , pkg . name , req , config . url_prefix ) ;
70
+ }
67
71
permissions . push ( pkgCopy ) ;
68
72
}
69
73
} catch ( err ) {
@@ -79,7 +83,7 @@ function addPackageWebApi(route: Router, storage: IStorageHandler, auth: IAuth,
79
83
// @ts -ignore
80
84
const order : boolean = config . web ? getOrder ( web . sort_packages ) : true ;
81
85
82
- next ( sortByName ( await processPermissionsPackages ( packages ) , order ) ) ;
86
+ next ( sortByName ( await processPackages ( packages ) , order ) ) ;
83
87
} ) ;
84
88
} ) ;
85
89
0 commit comments