@@ -11,6 +11,7 @@ const schema = Joi.object({
1111
1212const queryParamSchema = Joi . object ( {
1313 exports : Joi . string ( ) ,
14+ externals : Joi . string ( ) ,
1415} ) . required ( )
1516
1617const esbuild =
@@ -49,6 +50,10 @@ export default class BundlejsPackage extends BaseJsonService {
4950 name : 'exports' ,
5051 example : 'isVal,val' ,
5152 } ) ,
53+ queryParam ( {
54+ name : 'externals' ,
55+ example : 'lodash,axios' ,
56+ } ) ,
5257 ] ,
5358 } ,
5459 } ,
@@ -71,20 +76,29 @@ export default class BundlejsPackage extends BaseJsonService {
7176 name : 'exports' ,
7277 example : 'randEmail,randFullName' ,
7378 } ) ,
79+ queryParam ( {
80+ name : 'externals' ,
81+ example : 'lodash,axios' ,
82+ } ) ,
7483 ] ,
7584 } ,
7685 } ,
7786 }
7887
7988 static defaultBadgeData = { label : 'bundlejs' , color : 'informational' }
8089
81- async fetch ( { scope, packageName, exports } ) {
90+ async fetch ( { scope, packageName, exports, externals } ) {
8291 const searchParams = {
8392 q : `${ scope ? `${ scope } /` : '' } ${ packageName } ` ,
8493 }
8594 if ( exports ) {
8695 searchParams . treeshake = `[{${ exports } }]`
8796 }
97+ if ( externals ) {
98+ searchParams . config = JSON . stringify ( {
99+ esbuild : { external : externals . split ( ',' ) } ,
100+ } )
101+ }
88102 return this . _requestJson ( {
89103 schema,
90104 url : 'https://deno.bundlejs.com' ,
@@ -103,8 +117,8 @@ export default class BundlejsPackage extends BaseJsonService {
103117 } )
104118 }
105119
106- async handle ( { scope, packageName } , { exports } ) {
107- const json = await this . fetch ( { scope, packageName, exports } )
120+ async handle ( { scope, packageName } , { exports, externals } ) {
121+ const json = await this . fetch ( { scope, packageName, exports, externals } )
108122 const size = json . size . rawCompressedSize
109123 return renderSizeBadge ( size , 'metric' , 'minified size (gzip)' )
110124 }
0 commit comments