Skip to content

Commit 0891e56

Browse files
Fix api-docs-generator removeDuplicateVariantTypes filter to allow variants with multiple arrays (#95)
1 parent 6974f7b commit 0891e56

File tree

4 files changed

+78
-2
lines changed

4 files changed

+78
-2
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"type": "patch",
3+
"comment": "Fix docs generator removeDuplicateVariantTypes filter for variants with multiple arrays",
4+
"packageName": "@minecraft/api-docs-generator",
5+
"email": "zachary.campbell@skyboxlabs.com",
6+
"dependentChangeType": "patch"
7+
}

tools/api-docs-generator-test-snapshots/test/variants/__snapshots__/variants.spec.ts.snap

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ Notes:
4444
4545
## Methods
4646
- [exampleMethod](#examplemethod)
47+
- [methodWithVariantOfArrays](#methodwithvariantofarrays)
4748
4849
### **exampleMethod**
4950
\`
@@ -54,6 +55,19 @@ exampleMethod(arg1: (arg0: number) => ((arg0: number) => (number | string) | str
5455
- **arg1**: (arg0: *number*) => ((arg0: *number*) => (*number* | *string*) | *string*)
5556
- **arg2**: *number*
5657
58+
Notes:
59+
- This function can't be called in read-only mode.
60+
61+
### **methodWithVariantOfArrays**
62+
\`
63+
methodWithVariantOfArrays(arrays: number[] | string[]): boolean
64+
\`
65+
66+
#### **Parameters**
67+
- **arrays**: *number*[] | *string*[]
68+
69+
**Returns** *boolean*
70+
5771
Notes:
5872
- This function can't be called in read-only mode.
5973
"
@@ -131,6 +145,12 @@ export class ExampleClass {
131145
*
132146
*/
133147
exampleMethod(arg1: (arg0: number) => (arg0: number) => (number | string) | string, arg2: number): void;
148+
/**
149+
* @remarks
150+
* This function can't be called in read-only mode.
151+
*
152+
*/
153+
methodWithVariantOfArrays(arrays: number[] | string[]): boolean;
134154
}
135155
"
136156
`;

tools/api-docs-generator-test-snapshots/test/variants/input/test-module.json

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,49 @@
8585
"name": "undefined",
8686
"valid_range": null
8787
}
88+
},
89+
{
90+
"arguments": [
91+
{
92+
"details": null,
93+
"name": "arrays",
94+
"type": {
95+
"is_bind_type": false,
96+
"is_errorable": false,
97+
"name": "variant",
98+
"variant_types": [
99+
{
100+
"element_type": {
101+
"is_bind_type": false,
102+
"is_errorable": false,
103+
"name": "number"
104+
},
105+
"is_bind_type": false,
106+
"is_errorable": false,
107+
"name": "array"
108+
},
109+
{
110+
"element_type": {
111+
"is_bind_type": false,
112+
"is_errorable": false,
113+
"name": "string"
114+
},
115+
"is_bind_type": false,
116+
"is_errorable": false,
117+
"name": "array"
118+
}
119+
]
120+
}
121+
}
122+
],
123+
"is_constructor": false,
124+
"is_static": false,
125+
"name": "methodWithVariantOfArrays",
126+
"return_type": {
127+
"is_bind_type": false,
128+
"is_errorable": false,
129+
"name": "boolean"
130+
}
88131
}
89132
],
90133
"name": "ExampleClass",

tools/api-docs-generator/src/filters/TypeScriptFilters.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,14 @@ function removeDuplicateVariantTypes(releases: MinecraftRelease[]) {
175175
jsonObject.variant_types = jsonObject.variant_types.filter((item, index, self) => {
176176
return (
177177
index ===
178-
self.findIndex(value => {
179-
return value.name === item.name;
178+
self.findIndex(other => {
179+
if (item.name === 'array') {
180+
return other.element_type?.name === item.element_type.name;
181+
} else if (item.name === 'optional') {
182+
return other.optional_type?.name === item.optional_type.name;
183+
} else {
184+
return other.name === item.name;
185+
}
180186
})
181187
);
182188
});

0 commit comments

Comments
 (0)