@@ -31,17 +31,18 @@ function sortExtensionVersions(extension: Extension) {
3131}
3232
3333class ExtensionList {
34- constructor ( public extensions : Extension [ ] ) {
34+ constructor ( public tags : string [ ] , public extensions : Extension [ ] ) {
35+ this . tags = tags ;
3536 this . extensions = extensions ;
3637 }
3738
3839 static fromFile ( path : string ) {
39- const extensions = JSON . parse ( fs . readFileSync ( path , "utf8" ) ) . extensions ;
40- return new ExtensionList ( extensions ) ;
40+ const file = JSON . parse ( fs . readFileSync ( path , "utf8" ) ) ;
41+ return new ExtensionList ( file . tags , file . extensions ) ;
4142 }
4243
4344 public addRelease ( manifest : ExtensionManifest , githubRelease ) {
44- const { name, title, description, homepage, version } = manifest . extension ;
45+ const { name, title, description, homepage, version, tags } = manifest . extension ;
4546 const { assets, published_at } = githubRelease ;
4647
4748 const { browser_download_url } = assets . find (
@@ -55,10 +56,10 @@ class ExtensionList {
5556 } ;
5657
5758 if ( this . getExtension ( name ) ) {
58- this . updateExtensionDetails ( name , title , description , homepage ) ;
59+ this . updateExtensionDetails ( name , title , description , homepage , tags ) ;
5960 this . addExtensionVersion ( name , newVersion ) ;
6061 } else {
61- this . addNewExtension ( name , title , description , homepage , newVersion ) ;
62+ this . addNewExtension ( name , title , description , homepage , newVersion , tags ) ;
6263 }
6364 }
6465
@@ -70,13 +71,15 @@ class ExtensionList {
7071 name : string ,
7172 title : string ,
7273 description : string ,
73- homepage : string
74+ homepage : string ,
75+ tags : string [ ] = [ ]
7476 ) {
7577 this . updateExtension ( name , {
7678 ...this . getExtension ( name ) ,
7779 title,
7880 description,
7981 homepage,
82+ tags,
8083 } ) ;
8184 }
8285
@@ -109,7 +112,8 @@ class ExtensionList {
109112 title : string ,
110113 description : string ,
111114 homepage : string ,
112- initialVersion : ExtensionVersion
115+ initialVersion : ExtensionVersion ,
116+ tags : string [ ] = [ ]
113117 ) {
114118 if ( this . getExtension ( name ) !== undefined ) {
115119 throw new Error ( `Extension ${ name } already exists in the list` ) ;
@@ -121,6 +125,7 @@ class ExtensionList {
121125 homepage,
122126 latestVersion : initialVersion ,
123127 versions : [ initialVersion ] ,
128+ tags,
124129 } ) ;
125130 this . sortExtensions ( ) ;
126131 }
@@ -134,7 +139,11 @@ class ExtensionList {
134139 }
135140
136141 public stringify ( ) {
137- return JSON . stringify ( { extensions : this . extensions } , null , 2 ) ;
142+ const output = {
143+ tags : this . tags ,
144+ extensions : this . extensions
145+ }
146+ return JSON . stringify ( output , null , 2 ) ;
138147 }
139148
140149 private sortExtensions ( ) {
0 commit comments