88const args = require ( 'minimist' ) ( process . argv . slice ( 2 ) ) ;
99
1010/** @typedef {import('./types').ExtensionShortHeader } ExtensionShortHeader */
11+ /** @typedef {import('./types').BehaviorShortHeader } BehaviorShortHeader */
12+ /** @typedef {import('./types').ObjectShortHeader } ObjectShortHeader */
13+ /** @typedef {import('./types').RegistryItem } RegistryItem */
1114/** @typedef {import('./types').ExtensionsDatabase } ExtensionsDatabase */
1215/** @typedef {import('./types').ExtensionHeader } ExtensionHeader */
1316/** @typedef {import('./types').ExtensionWithFileInfo } ExtensionWithFileInfo */
@@ -99,6 +102,10 @@ const readExtensionsFromFolder = async (folderPath, tier) => {
99102
100103 /** @type {ExtensionShortHeader[] } */
101104 const extensionShortHeaders = [ ] ;
105+ /** @type {Array<BehaviorShortHeader> } */
106+ const behaviorShortHeaders = [ ] ;
107+ /** @type {Array<ObjectShortHeader> } */
108+ const objectShortHeaders = [ ] ;
102109
103110 let totalErrors = 0 ;
104111 let fixableErrors = 0 ;
@@ -159,11 +166,10 @@ const readExtensionsFromFolder = async (folderPath, tier) => {
159166 }
160167
161168 // Generate the headers of the extension
162- /** @type {ExtensionShortHeader } */
163- const extensionShortHeader = {
169+ /** @type {RegistryItem } */
170+ const registryItem = {
164171 tier,
165172 authorIds : extension . authorIds ,
166- shortDescription : extension . shortDescription ,
167173 extensionNamespace : extension . extensionNamespace ,
168174 fullName : extension . fullName ,
169175 name,
@@ -174,6 +180,13 @@ const readExtensionsFromFolder = async (folderPath, tier) => {
174180 tags : extension . tags ,
175181 category : extension . category || 'General' ,
176182 previewIconUrl : extension . previewIconUrl ,
183+ } ;
184+ /** @type {ExtensionShortHeader } */
185+ const extensionShortHeader = {
186+ ...registryItem ,
187+ shortDescription : extension . shortDescription ,
188+ fullName : extension . fullName ,
189+ name,
177190 eventsBasedBehaviorsCount : extension . eventsBasedBehaviors . length ,
178191 eventsFunctionsCount : extension . eventsFunctions . length ,
179192 } ;
@@ -190,7 +203,40 @@ const readExtensionsFromFolder = async (folderPath, tier) => {
190203 iconUrl : extension . iconUrl ,
191204 } ;
192205
193- extension . tags . split ( ',' ) . map (
206+ /** @type {Array<BehaviorShortHeader> } */
207+ behaviorShortHeaders . push . apply (
208+ behaviorShortHeaders ,
209+ extension . eventsBasedBehaviors
210+ . map ( ( behavior ) =>
211+ behavior . private
212+ ? null
213+ : {
214+ ...registryItem ,
215+ extensionName : name ,
216+ name : behavior . name ,
217+ fullName : behavior . fullName ,
218+ description : behavior . description ,
219+ objectType : behavior . objectType ,
220+ }
221+ )
222+ . filter ( Boolean )
223+ ) ;
224+
225+ /** @type {Array<ObjectShortHeader> } */
226+ objectShortHeaders . push . apply (
227+ objectShortHeaders ,
228+ extension . eventsBasedObjects
229+ ? extension . eventsBasedObjects . map ( ( object ) => ( {
230+ ...registryItem ,
231+ extensionName : name ,
232+ name : object . name ,
233+ fullName : object . fullName ,
234+ description : object . description ,
235+ } ) )
236+ : [ ]
237+ ) ;
238+
239+ extension . tags . split ( ',' ) . forEach (
194240 /** @param {string } tag */
195241 ( tag ) => {
196242 allTagsSet . add ( tag . trim ( ) . toLowerCase ( ) ) ;
@@ -240,6 +286,12 @@ const readExtensionsFromFolder = async (folderPath, tier) => {
240286 allTags : Array . from ( allTagsSet ) ,
241287 allCategories : Array . from ( allCategoriesSet ) ,
242288 extensionShortHeaders,
289+ behavior : {
290+ headers : behaviorShortHeaders ,
291+ } ,
292+ object : {
293+ headers : objectShortHeaders ,
294+ } ,
243295 views,
244296 } ;
245297
0 commit comments