diff --git a/scripts/markdown/api/configuration.mjs b/scripts/markdown/api/configuration.mjs index fa50c6d4..5f40b54e 100644 --- a/scripts/markdown/api/configuration.mjs +++ b/scripts/markdown/api/configuration.mjs @@ -268,12 +268,24 @@ const isDeprecated = (schema, definitions) => schema.deprecated ?? definitions[definitionName(schema.$ref)]?.deprecated ); +const addedInVersion = (schema, definitions) => + schema.added ?? definitions[definitionName(schema.$ref)]?.added; + +const defaultOf = (schema, definitions) => + schema.default ?? definitions[definitionName(schema.$ref)]?.default; + const propertyBullet = (name, schema, definitions) => { const description = descriptionOf(schema, definitions); const type = summarize(schema, definitions); + const added = addedInVersion(schema, definitions); + const defaultValue = defaultOf(schema, definitions); const notes = [ + added ? `**Added in: v${added}**` : '', isDeprecated(schema, definitions) ? '**Deprecated.**' : '', description ?? '', + defaultValue !== undefined + ? `**Default:** \`${JSON.stringify(defaultValue)}\`` + : '', ] .filter(Boolean) .join(' '); @@ -283,6 +295,11 @@ const propertyBullet = (name, schema, definitions) => { const renderOption = (path, schema, definitions, depth, exampleExtras = []) => { const lines = [`${'#'.repeat(depth + 2)} \`${formatPath(path)}\``, '']; + const added = addedInVersion(schema, definitions); + if (added) { + lines.push('', ''); + } + if (isDeprecated(schema, definitions)) { lines.push('> Stability: 0 - Deprecated', ''); } @@ -292,6 +309,11 @@ const renderOption = (path, schema, definitions, depth, exampleExtras = []) => { lines.push(`* Type: {${summarize(schema, definitions)}}`); + const defaultValue = defaultOf(schema, definitions); + if (defaultValue !== undefined) { + lines.push(`* Default: \`${JSON.stringify(defaultValue)}\``); + } + const shapes = expandableObjects(schema, definitions); const discriminator = discriminatorOf(shapes);