@@ -4,6 +4,12 @@ const { generateReadMoreLink } = require('./WikiHelpLink');
4
4
5
5
// Types definitions used in this script:
6
6
7
+ /** @typedef {import('../../../../GDevelop.js/types').PlatformExtension } PlatformExtension */
8
+ /** @typedef {import('../../../../GDevelop.js/types').MapStringExpressionMetadata } MapStringExpressionMetadata */
9
+ /** @typedef {import('../../../../GDevelop.js/types').ExpressionMetadata } ExpressionMetadata */
10
+ /** @typedef {import('../../../../GDevelop.js/types').ObjectMetadata } ObjectMetadata */
11
+ /** @typedef {import('../../../../GDevelop.js/types').BehaviorMetadata } BehaviorMetadata */
12
+
7
13
/**
8
14
* @typedef {Object } RawText A text to be shown on a page
9
15
* @prop {string } text The text to render (in Markdown/Dokuwiki syntax)
@@ -17,23 +23,23 @@ const { generateReadMoreLink } = require('./WikiHelpLink');
17
23
18
24
/**
19
25
* @typedef {Object } ObjectReference
20
- * @prop {any } objectMetadata The object.
26
+ * @prop {ObjectMetadata } objectMetadata The object.
21
27
* @prop {Array<ReferenceText> } actionsReferenceTexts Reference texts for the object actions.
22
28
* @prop {Array<ReferenceText> } conditionsReferenceTexts Reference texts for the object conditions.
23
29
* @prop {Array<ReferenceText> } expressionsReferenceTexts Reference texts for the object expressions.
24
30
*/
25
31
26
32
/**
27
33
* @typedef {Object } BehaviorReference
28
- * @prop {any } behaviorMetadata The behavior.
34
+ * @prop {BehaviorMetadata } behaviorMetadata The behavior.
29
35
* @prop {Array<ReferenceText> } actionsReferenceTexts Reference texts for the behavior actions.
30
36
* @prop {Array<ReferenceText> } conditionsReferenceTexts Reference texts for the behavior conditions.
31
37
* @prop {Array<ReferenceText> } expressionsReferenceTexts Reference texts for the behavior expressions.
32
38
*/
33
39
34
40
/**
35
41
* @typedef {Object } ExtensionReference
36
- * @prop {any } extension The extension.
42
+ * @prop {PlatformExtension } extension The extension.
37
43
* @prop {Array<ReferenceText> } freeExpressionsReferenceTexts Reference texts for free expressions.
38
44
* @prop {Array<ReferenceText> } freeActionsReferenceTexts Reference texts for free actions.
39
45
* @prop {Array<ReferenceText> } freeConditionsReferenceTexts Reference texts for free conditions.
@@ -252,7 +258,10 @@ const generateInstructionReferenceRowsText = ({
252
258
} ;
253
259
} ;
254
260
255
- /** @returns {ReferenceText } */
261
+ /**
262
+ * @param {{ expressionType: string, expressionMetadata: ExpressionMetadata, objectMetadata?: ObjectMetadata, behaviorMetadata?: BehaviorMetadata } } options
263
+ * @returns {ReferenceText }
264
+ */
256
265
const generateExpressionReferenceRowsText = ( {
257
266
expressionType,
258
267
expressionMetadata,
@@ -261,11 +270,13 @@ const generateExpressionReferenceRowsText = ({
261
270
} ) => {
262
271
let parameterRows = [ ] ;
263
272
let parameterStrings = [ ] ;
264
- mapFor ( 0 , expressionMetadata . getParameters ( ) , index => {
273
+ mapFor ( 0 , expressionMetadata . getParameters ( ) . getParametersCount ( ) , index => {
265
274
if ( ( ! ! objectMetadata && index < 1 ) || ( ! ! behaviorMetadata && index < 2 ) ) {
266
275
return ; // Skip the first (or first twos) parameters by convention.
267
276
}
268
- const parameterMetadata = expressionMetadata . getParameter ( index ) ;
277
+ const parameterMetadata = expressionMetadata
278
+ . getParameters ( )
279
+ . getParameterAt ( index ) ;
269
280
if ( parameterMetadata . isCodeOnly ( ) ) return ;
270
281
271
282
const sanitizedDescription = sanitizeExpressionDescription (
@@ -345,7 +356,7 @@ const generateInstructionsReferenceRowsTexts = ({
345
356
} ;
346
357
347
358
/**
348
- * @param {{ expressionsMetadata?: any , objectMetadata?: any , behaviorMetadata?: any } } metadata
359
+ * @param {{ expressionsMetadata: MapStringExpressionMetadata , objectMetadata?: ObjectMetadata , behaviorMetadata?: BehaviorMetadata } } options
349
360
* @returns {Array<ReferenceText> }
350
361
*/
351
362
const generateExpressionsReferenceRowsTexts = ( {
@@ -387,7 +398,7 @@ const sortReferenceTexts = (referenceText1, referenceText2) => {
387
398
} ;
388
399
389
400
/**
390
- * @type { any } platformExtension
401
+ * @param { PlatformExtension } extension
391
402
* @returns {ExtensionReference }
392
403
*/
393
404
const generateExtensionReference = extension => {
@@ -401,42 +412,44 @@ const generateExtensionReference = extension => {
401
412
402
413
// Object expressions
403
414
/** @type {Array<ObjectReference> } */
404
- let objectReferences = objectTypes . map ( objectType => {
405
- const objectMetadata = extension . getObjectMetadata ( objectType ) ;
406
- if ( objectMetadata . isPrivate ( ) ) {
407
- return null ;
408
- }
409
- const actionsReferenceTexts = generateInstructionsReferenceRowsTexts ( {
410
- areConditions : false ,
411
- instructionsMetadata : extension . getAllActionsForObject ( objectType ) ,
412
- objectMetadata,
413
- } ) ;
414
- const conditionsReferenceTexts = generateInstructionsReferenceRowsTexts ( {
415
- areConditions : true ,
416
- instructionsMetadata : extension . getAllConditionsForObject ( objectType ) ,
417
- objectMetadata,
418
- } ) ;
419
- const expressionsReferenceTexts = [
420
- ...generateExpressionsReferenceRowsTexts ( {
421
- expressionsMetadata : extension . getAllExpressionsForObject ( objectType ) ,
415
+ let objectReferences = objectTypes
416
+ . map ( objectType => {
417
+ const objectMetadata = extension . getObjectMetadata ( objectType ) ;
418
+ if ( objectMetadata . isPrivate ( ) ) {
419
+ return null ;
420
+ }
421
+ const actionsReferenceTexts = generateInstructionsReferenceRowsTexts ( {
422
+ areConditions : false ,
423
+ instructionsMetadata : extension . getAllActionsForObject ( objectType ) ,
422
424
objectMetadata,
423
- } ) ,
424
- ...generateExpressionsReferenceRowsTexts ( {
425
- expressionsMetadata : extension . getAllStrExpressionsForObject (
426
- objectType
427
- ) ,
425
+ } ) ;
426
+ const conditionsReferenceTexts = generateInstructionsReferenceRowsTexts ( {
427
+ areConditions : true ,
428
+ instructionsMetadata : extension . getAllConditionsForObject ( objectType ) ,
428
429
objectMetadata,
429
- } ) ,
430
- ] ;
431
- expressionsReferenceTexts . sort ( sortReferenceTexts ) ;
432
-
433
- return {
434
- objectMetadata,
435
- actionsReferenceTexts,
436
- conditionsReferenceTexts,
437
- expressionsReferenceTexts,
438
- } ;
439
- } ) . filter ( Boolean ) ;
430
+ } ) ;
431
+ const expressionsReferenceTexts = [
432
+ ...generateExpressionsReferenceRowsTexts ( {
433
+ expressionsMetadata : extension . getAllExpressionsForObject ( objectType ) ,
434
+ objectMetadata,
435
+ } ) ,
436
+ ...generateExpressionsReferenceRowsTexts ( {
437
+ expressionsMetadata : extension . getAllStrExpressionsForObject (
438
+ objectType
439
+ ) ,
440
+ objectMetadata,
441
+ } ) ,
442
+ ] ;
443
+ expressionsReferenceTexts . sort ( sortReferenceTexts ) ;
444
+
445
+ return {
446
+ objectMetadata,
447
+ actionsReferenceTexts,
448
+ conditionsReferenceTexts,
449
+ expressionsReferenceTexts,
450
+ } ;
451
+ } )
452
+ . filter ( Boolean ) ;
440
453
441
454
// Behavior expressions
442
455
/** @type {Array<BehaviorReference> } */
0 commit comments