Skip to content

Commit c30d49e

Browse files
authored
Merge pull request #836 from processing/rest-types
Support rest types in Syntax section of reference
2 parents efe015b + 41035d9 commit c30d49e

File tree

4 files changed

+16
-4
lines changed

4 files changed

+16
-4
lines changed

src/components/MethodSignature/index.astro

+7-2
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,13 @@ import { CopyCodeButton } from "../CopyCodeButton";
1414
1515
const { params, name, overloads } = Astro.props;
1616
17-
const formatParam = (param: ReferenceParam) =>
18-
param.optional ? `[${param.name}]` : `${param.name}`;
17+
const formatParam = (param: ReferenceParam) => {
18+
let formatted = param.optional ? `[${param.name}]` : `${param.name}`;
19+
if (param.rest) {
20+
formatted = `${param.name}1, ${param.name}2, ..., ${param.name}n`;
21+
}
22+
return formatted;
23+
};
1924
2025
const signatures = params
2126
? [`${name}(${params.map(formatParam).join(", ")})`]

src/content/reference/config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ const paramSchema = z.object({
2828
description: z.string().optional(),
2929
type: z.string().optional(),
3030
optional: z.coerce.boolean().optional(),
31+
rest: z.coerce.boolean().optional(),
3132
});
3233

3334
const returnSchema = z.object({

src/layouts/ReferenceItemLayout.astro

+7-2
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,10 @@ const descriptionParts = description.split(
181181
{entry.data.params &&
182182
entry.data.params.map((param: ReferenceParam) => (
183183
<div class="grid grid-cols-6 gap-gutter-md text-body">
184-
<span class="col-span-1 text-body whitespace-normal break-words overflow-wrap-break-word">{param.name}</span>
184+
<span class="col-span-1 text-body whitespace-normal break-words overflow-wrap-break-word">
185+
186+
{param.rest ? `${param.name}1, ..., ${param.name}n` : param.name}
187+
</span>
185188
<div
186189
class="col-span-5 [&_p]:m-0 [&_p]:inline [&_a]:underline"
187190
>
@@ -197,7 +200,9 @@ const descriptionParts = description.split(
197200
seenParams[param.name] = true;
198201
return (
199202
<div class="grid grid-cols-6 gap-gutter-md text-body">
200-
<span class="col-span-1">{param.name}</span>
203+
<span class="col-span-1">
204+
{param.rest ? `${param.name}1, ..., ${param.name}n` : param.name}
205+
</span>
201206
<div
202207
class="col-span-5 [&_p]:m-0 [&_p]:inline [&_a]:underline"
203208
>

types/parsers.interface.ts

+1
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ export interface ReferenceParam {
4040
description: string; // A description of the parameter.
4141
type: string; // The data type of the parameter.
4242
optional?: boolean; // Indicates if the parameter is optional.
43+
rest?: boolean; // Whether or not this is a variadic parameter at the end of the arg list
4344
}
4445

4546
export type ReferenceOverload = {

0 commit comments

Comments
 (0)