--- import { SchemaTools } from "@/util/schema_utils"; import type { Schema } from "@/util/schema_utils"; export interface Props { schema: Schema; level: number; isDef?: boolean; } // Makes TS Happy type HeadingType = "h2" | "h3" | "h4" | "h5" | "h6"; const levelMap: HeadingType[] = ["h2", "h2", "h3", "h4", "h5", "h6"]; const { schema, level, isDef } = Astro.props; const description = SchemaTools.getDescription(schema); const type = SchemaTools.getType(schema); const link = `https://raw.githubusercontent.com/Outer-Wilds-New-Horizons/new-horizons/main/NewHorizons/Schemas/${schema.fileName}`; const refSlug = SchemaTools.getRefSlug(schema); const enumVals = SchemaTools.getEnumValues(schema); const props = SchemaTools.getProps(schema, level); const descSplit = description?.toString().split(" \n").map(l => l.trim()).filter(l => l.length !== 0); const HeadingTag = levelMap[level] ?? "h6"; ---
{ level !== 0 && ( {level !== 0 && ( )} {SchemaTools.getTitle(schema)} ) }
{level === 0 && Schema Type: {schema.internalSchema.type}} { SchemaTools.getRequired(schema) && level !== 0 && ( Required ) } {type && Type: {type}} {SchemaTools.getAdditionalBadges(schema).map((b) => {b})}
{ level === 0 && !isDef && ( ) } {descSplit?.map(l =>

{l}

) ??

No Description Found

} { enumVals.length !== 0 && ( <>

Must be equal to any of the following:

) } { refSlug && ( See Definitions/{refSlug} ) } { props.length !== 0 && (
{props.map(([_, child], i) => ( <> {i !== 0 &&
} ))}
) }