@@ -16,7 +16,12 @@ const args = require('minimist')(process.argv.slice(2));
1616/** @typedef {import('./types').ExtensionWithFileInfo } ExtensionWithFileInfo */
1717/** @typedef {import('./types').ExtensionTier } ExtensionTier */
1818/** @typedef {import('./types').Extension } Extension */
19+ /** @typedef {import('./types').EventsBasedObject } EventsBasedObject */
20+ /** @typedef {import('./types').EventsBasedObjectInsideExtensionShortHeader } EventsBasedObjectInsideExtensionShortHeader */
1921/** @typedef {import('./types').EventsBasedBehavior } EventsBasedBehavior */
22+ /** @typedef {import('./types').EventsBasedBehaviorInsideExtensionShortHeader } EventsBasedBehaviorInsideExtensionShortHeader */
23+ /** @typedef {import('./types').EventsFunction } EventsFunction */
24+ /** @typedef {import('./types').EventsFunctionInsideExtensionShortHeader } EventsFunctionInsideExtensionShortHeader */
2025
2126const extensionsBasePath = path . join ( __dirname , '..' , 'extensions' ) ;
2227const reviewedExtensionsTier = 'reviewed' ;
@@ -130,6 +135,70 @@ const findAllRequiredBehaviorTypes = (
130135 return requiredBehaviorTypes ;
131136} ;
132137
138+ /**
139+ * @param {EventsFunction } eventFunction
140+ * @returns {EventsFunctionInsideExtensionShortHeader }
141+ */
142+ const formatEventFunctionInsideExtensionShortHeader = ( eventFunction ) => {
143+ // TODO: Empty fullname => remove.
144+ return {
145+ description : eventFunction . description ,
146+ fullName : eventFunction . fullName ,
147+ functionType : eventFunction . functionType ,
148+ name : eventFunction . name ,
149+ } ;
150+ } ;
151+
152+ /**
153+ * @param {EventsBasedBehavior } eventsBasedBehavior
154+ * @returns {EventsBasedBehaviorInsideExtensionShortHeader }
155+ */
156+ const formatEventsBasedBehaviorInsideExtensionShortHeader = (
157+ eventsBasedBehavior
158+ ) => {
159+ return {
160+ description : eventsBasedBehavior . description ,
161+ fullName : eventsBasedBehavior . fullName ,
162+ name : eventsBasedBehavior . name ,
163+ objectType : eventsBasedBehavior . objectType ,
164+ eventsFunctions : filterEventsFunctions (
165+ eventsBasedBehavior . eventsFunctions
166+ ) . map ( formatEventFunctionInsideExtensionShortHeader ) ,
167+ } ;
168+ } ;
169+
170+ /**
171+ * @param {EventsBasedObject } eventsBasedObject
172+ * @returns {EventsBasedObjectInsideExtensionShortHeader }
173+ */
174+ const formatEventsBasedObjectInsideExtensionShortHeader = (
175+ eventsBasedObject
176+ ) => {
177+ return {
178+ description : eventsBasedObject . description ,
179+ fullName : eventsBasedObject . fullName ,
180+ name : eventsBasedObject . name ,
181+ defaultName : eventsBasedObject . defaultName ,
182+ eventsFunctions : filterEventsFunctions (
183+ eventsBasedObject . eventsFunctions
184+ ) . map ( formatEventFunctionInsideExtensionShortHeader ) ,
185+ } ;
186+ } ;
187+
188+ /** @param {Array<EventsBasedBehavior> } behaviors */
189+ const filterEventsBasedBehaviors = ( behaviors ) =>
190+ behaviors . filter ( ( behavior ) => ! behavior . private ) ;
191+
192+ /** @param {Array<EventsBasedObject> } objects */
193+ const filterEventsBasedObjects = ( objects ) =>
194+ objects . filter ( ( object ) => ! object . private ) ;
195+
196+ /** @param {Array<EventsFunction> } eventsFunctions */
197+ const filterEventsFunctions = ( eventsFunctions ) =>
198+ eventsFunctions . filter (
199+ ( eventFunction ) => ! eventFunction . fullName || eventFunction . private
200+ ) ;
201+
133202( async ( ) => {
134203 try {
135204 shell . mkdir ( '-p' , distBasePath ) ;
@@ -235,16 +304,39 @@ const findAllRequiredBehaviorTypes = (
235304 gdevelopVersion : extension . gdevelopVersion ,
236305 } ;
237306
307+ // Some part of the extension are filtered if private or internal.
308+ const eventsBasedBehaviors = filterEventsBasedBehaviors (
309+ extension . eventsBasedBehaviors
310+ ) ;
311+ const eventsFunctions = filterEventsFunctions (
312+ extension . eventsFunctions
313+ ) ;
314+ const eventsBasedObjects = filterEventsBasedObjects (
315+ extension . eventsBasedObjects || [ ]
316+ ) ;
317+
238318 /** @type {ExtensionShortHeader } */
239319 const extensionShortHeader = {
240320 ...registryItem ,
241321 shortDescription : extension . shortDescription ,
242322 fullName : extension . fullName ,
243323 name,
244- eventsBasedBehaviorsCount : extension . eventsBasedBehaviors . length ,
245- eventsFunctionsCount : extension . eventsFunctions . length ,
324+ eventsBasedBehaviorsCount : eventsBasedBehaviors . length ,
325+ eventsFunctionsCount : eventsFunctions . length ,
246326 } ;
247327
328+ if ( tier === 'reviewed' ) {
329+ extensionShortHeader . eventsBasedBehaviors = eventsBasedBehaviors . map (
330+ formatEventsBasedBehaviorInsideExtensionShortHeader
331+ ) ;
332+ extensionShortHeader . eventsFunctions = eventsFunctions . map (
333+ formatEventFunctionInsideExtensionShortHeader
334+ ) ;
335+ extensionShortHeader . eventsBasedObjects = eventsBasedObjects . map (
336+ formatEventsBasedObjectInsideExtensionShortHeader
337+ ) ;
338+ }
339+
248340 extensionShortHeaders . push ( extensionShortHeader ) ;
249341
250342 /** @type {ExtensionHeader } */
@@ -260,24 +352,20 @@ const findAllRequiredBehaviorTypes = (
260352 /** @type {Array<BehaviorShortHeader> } */
261353 behaviorShortHeaders . push . apply (
262354 behaviorShortHeaders ,
263- extension . eventsBasedBehaviors
264- . map ( ( behavior ) =>
265- behavior . private
266- ? null
267- : {
268- ...registryItem ,
269- extensionName : name ,
270- name : behavior . name ,
271- fullName : behavior . fullName ,
272- description : behavior . description ,
273- objectType : behavior . objectType ,
274- allRequiredBehaviorTypes : findAllRequiredBehaviorTypes (
275- extension ,
276- behavior
277- ) ,
278- }
279- )
280- . filter ( Boolean )
355+ filterEventsBasedBehaviors ( extension . eventsBasedBehaviors ) . map (
356+ ( behavior ) => ( {
357+ ...registryItem ,
358+ extensionName : name ,
359+ name : behavior . name ,
360+ fullName : behavior . fullName ,
361+ description : behavior . description ,
362+ objectType : behavior . objectType ,
363+ allRequiredBehaviorTypes : findAllRequiredBehaviorTypes (
364+ extension ,
365+ behavior
366+ ) ,
367+ } )
368+ )
281369 ) ;
282370
283371 /** @type {Array<ObjectShortHeader> } */
0 commit comments