feat: include member names in generated tuple type definitions
- Update schemaToTypeString to include names for named tuple elements - Generates [current: number, max: number] instead of [number, number] - Uses TypeScript 4.0+ tuple parameter labels syntax Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
parent
4e841be4f0
commit
cf55295ce7
|
|
@ -408,12 +408,18 @@ function schemaToTypeString(schema) {
|
||||||
return "boolean";
|
return "boolean";
|
||||||
case "array":
|
case "array":
|
||||||
if (schema.element.type === "tuple") {
|
if (schema.element.type === "tuple") {
|
||||||
const tupleElements2 = schema.element.elements.map((el) => schemaToTypeString(el.schema));
|
const tupleElements2 = schema.element.elements.map((el) => {
|
||||||
|
const typeStr = schemaToTypeString(el.schema);
|
||||||
|
return el.name ? `${el.name}: ${typeStr}` : typeStr;
|
||||||
|
});
|
||||||
return `[${tupleElements2.join(", ")}]`;
|
return `[${tupleElements2.join(", ")}]`;
|
||||||
}
|
}
|
||||||
return `${schemaToTypeString(schema.element)}[]`;
|
return `${schemaToTypeString(schema.element)}[]`;
|
||||||
case "tuple":
|
case "tuple":
|
||||||
const tupleElements = schema.elements.map((el) => schemaToTypeString(el.schema));
|
const tupleElements = schema.elements.map((el) => {
|
||||||
|
const typeStr = schemaToTypeString(el.schema);
|
||||||
|
return el.name ? `${el.name}: ${typeStr}` : typeStr;
|
||||||
|
});
|
||||||
return `[${tupleElements.join(", ")}]`;
|
return `[${tupleElements.join(", ")}]`;
|
||||||
default:
|
default:
|
||||||
return "unknown";
|
return "unknown";
|
||||||
|
|
|
||||||
|
|
@ -374,12 +374,18 @@ function schemaToTypeString(schema) {
|
||||||
return "boolean";
|
return "boolean";
|
||||||
case "array":
|
case "array":
|
||||||
if (schema.element.type === "tuple") {
|
if (schema.element.type === "tuple") {
|
||||||
const tupleElements2 = schema.element.elements.map((el) => schemaToTypeString(el.schema));
|
const tupleElements2 = schema.element.elements.map((el) => {
|
||||||
|
const typeStr = schemaToTypeString(el.schema);
|
||||||
|
return el.name ? `${el.name}: ${typeStr}` : typeStr;
|
||||||
|
});
|
||||||
return `[${tupleElements2.join(", ")}]`;
|
return `[${tupleElements2.join(", ")}]`;
|
||||||
}
|
}
|
||||||
return `${schemaToTypeString(schema.element)}[]`;
|
return `${schemaToTypeString(schema.element)}[]`;
|
||||||
case "tuple":
|
case "tuple":
|
||||||
const tupleElements = schema.elements.map((el) => schemaToTypeString(el.schema));
|
const tupleElements = schema.elements.map((el) => {
|
||||||
|
const typeStr = schemaToTypeString(el.schema);
|
||||||
|
return el.name ? `${el.name}: ${typeStr}` : typeStr;
|
||||||
|
});
|
||||||
return `[${tupleElements.join(", ")}]`;
|
return `[${tupleElements.join(", ")}]`;
|
||||||
default:
|
default:
|
||||||
return "unknown";
|
return "unknown";
|
||||||
|
|
|
||||||
|
|
@ -40,12 +40,18 @@ function schemaToTypeString(schema: Schema): string {
|
||||||
return 'boolean';
|
return 'boolean';
|
||||||
case 'array':
|
case 'array':
|
||||||
if (schema.element.type === 'tuple') {
|
if (schema.element.type === 'tuple') {
|
||||||
const tupleElements = schema.element.elements.map((el) => schemaToTypeString(el.schema));
|
const tupleElements = schema.element.elements.map((el) => {
|
||||||
|
const typeStr = schemaToTypeString(el.schema);
|
||||||
|
return el.name ? `${el.name}: ${typeStr}` : typeStr;
|
||||||
|
});
|
||||||
return `[${tupleElements.join(', ')}]`;
|
return `[${tupleElements.join(', ')}]`;
|
||||||
}
|
}
|
||||||
return `${schemaToTypeString(schema.element)}[]`;
|
return `${schemaToTypeString(schema.element)}[]`;
|
||||||
case 'tuple':
|
case 'tuple':
|
||||||
const tupleElements = schema.elements.map((el) => schemaToTypeString(el.schema));
|
const tupleElements = schema.elements.map((el) => {
|
||||||
|
const typeStr = schemaToTypeString(el.schema);
|
||||||
|
return el.name ? `${el.name}: ${typeStr}` : typeStr;
|
||||||
|
});
|
||||||
return `[${tupleElements.join(', ')}]`;
|
return `[${tupleElements.join(', ')}]`;
|
||||||
default:
|
default:
|
||||||
return 'unknown';
|
return 'unknown';
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue