15
15
*/
16
16
package org .commonjava .indy .pkg .npm .model ;
17
17
18
- import com .fasterxml .jackson .annotation .JsonIgnoreProperties ;
19
18
import com .fasterxml .jackson .annotation .JsonProperty ;
20
19
import com .fasterxml .jackson .databind .annotation .JsonDeserialize ;
21
20
import io .swagger .annotations .ApiModel ;
22
21
import io .swagger .annotations .ApiModelProperty ;
22
+ import org .commonjava .indy .pkg .npm .model .converter .ObjectToBinConverter ;
23
23
import org .commonjava .indy .pkg .npm .model .converter .ObjectToLicenseConverter ;
24
24
25
25
import java .io .Serializable ;
26
26
import java .util .List ;
27
27
import java .util .Map ;
28
28
29
+ import static org .commonjava .indy .pkg .npm .model .converter .ObjectToBinConverter .SINGLE_BIN ;
30
+
29
31
@ ApiModel ( description = "Specify all the corresponding versions metadata for the package." )
30
32
public class VersionMetadata
31
- implements Serializable , Comparable <VersionMetadata >
33
+ implements Serializable , Comparable <VersionMetadata >
32
34
{
33
35
private static final long serialVersionUID = 1L ;
34
36
35
- @ ApiModelProperty ( required = true , dataType = "String" , value = "The name and version together form an identifier that is assumed to be completely unique." )
37
+ @ ApiModelProperty ( required = true , dataType = "String" ,
38
+ value = "The name and version together form an identifier that is assumed to be completely unique." )
36
39
private String name ;
37
40
38
41
private String title ;
@@ -41,7 +44,8 @@ public class VersionMetadata
41
44
42
45
private String main ;
43
46
44
- @ ApiModelProperty ( required = true , dataType = "String" , value = "The name and version together form an identifier that is assumed to be completely unique." )
47
+ @ ApiModelProperty ( required = true , dataType = "String" ,
48
+ value = "The name and version together form an identifier that is assumed to be completely unique." )
45
49
private String version ;
46
50
47
51
private String url ;
@@ -59,25 +63,28 @@ public class VersionMetadata
59
63
@ ApiModelProperty ( required = false , dataType = "Repository" , value = "Specify the place where your code lives." )
60
64
private Repository repository ;
61
65
62
- @ ApiModelProperty ( required = false , dataType = "Bugs" , value = "The issue tracker and / or the email address to which issues should be reported." )
66
+ @ ApiModelProperty ( required = false , dataType = "Bugs" ,
67
+ value = "The issue tracker and / or the email address to which issues should be reported." )
63
68
private Bugs bugs ;
64
69
65
70
@ Deprecated
66
71
@ ApiModelProperty ( value = "These styles are now deprecated. Instead, use SPDX expressions." )
67
72
private List <License > licenses ;
68
73
69
- @ JsonDeserialize (converter = ObjectToLicenseConverter .class )
74
+ @ JsonDeserialize ( converter = ObjectToLicenseConverter .class )
70
75
private License license ;
71
76
72
77
private Map <String , String > dependencies ;
73
78
74
79
private Map <String , Object > devDependencies ;
75
80
81
+ @ JsonDeserialize ( converter = ObjectToBinConverter .class )
76
82
private Map <String , String > bin ;
77
83
78
84
private Map <String , String > jsdomVersions ;
79
85
80
- @ ApiModelProperty ( required = false , dataType = "Map" , allowableValues = "prepare:<script>, build:<script>, start:<script>, test:<script>, precommit:<script>, commitmsg:<script>, etc." )
86
+ @ ApiModelProperty ( required = false , dataType = "Map" ,
87
+ allowableValues = "prepare:<script>, build:<script>, start:<script>, test:<script>, precommit:<script>, commitmsg:<script>, etc." )
81
88
private Map <String , Object > scripts ;
82
89
83
90
private Dist dist ;
@@ -308,8 +315,24 @@ public Map<String, Object> getDevDependencies()
308
315
return devDependencies ;
309
316
}
310
317
318
+ public void setDevDependencies ( Map <String , Object > devDependencies )
319
+ {
320
+ this .devDependencies = devDependencies ;
321
+ }
322
+
311
323
public Map <String , String > getBin ()
312
324
{
325
+ if ( null == bin )
326
+ {
327
+ return null ;
328
+ }
329
+ String value = bin .get ( SINGLE_BIN );
330
+ if ( null != value )
331
+ {
332
+ bin .remove ( SINGLE_BIN );
333
+ // ref https://docs.npmjs.com/cli/v7/configuring-npm/package-json#bin
334
+ bin .put ( name , value );
335
+ }
313
336
return bin ;
314
337
}
315
338
@@ -318,11 +341,6 @@ public void setBin( Map<String, String> bin )
318
341
this .bin = bin ;
319
342
}
320
343
321
- public void setDevDependencies ( Map <String , Object > devDependencies )
322
- {
323
- this .devDependencies = devDependencies ;
324
- }
325
-
326
344
public Map <String , String > getJsdomVersions ()
327
345
{
328
346
return jsdomVersions ;
0 commit comments