Skip to content

Commit 44b05bd

Browse files
authored
Merge pull request #3733 from hey-api/copilot/fix-bigint-transformer-output
2 parents d54995e + 43ff064 commit 44b05bd

9 files changed

Lines changed: 46 additions & 5 deletions

File tree

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@hey-api/openapi-ts": patch
3+
---
4+
5+
**plugin(@hey-api/transformers)**: fix: return value for primitive array entries

packages/openapi-ts-tests/main/test/__snapshots__/3.0.x/transformers-array/transformers.gen.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,7 @@ export const getFooResponseTransformer = async (data: any): Promise<GetFooRespon
77
item.baz = new Date(item.baz);
88
return item;
99
});
10+
data.bar = data.bar.map((item: any) => BigInt(item.toString()));
11+
data.baz = data.baz.map((item: any) => new Date(item));
1012
return data;
1113
};

packages/openapi-ts-tests/main/test/__snapshots__/3.0.x/transformers-array/types.gen.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ export type GetFooResponses = {
1919
foo: Array<{
2020
baz: Date;
2121
}>;
22+
bar: Array<bigint>;
23+
baz: Array<Date>;
2224
};
2325
};
2426

packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/transformers-array/transformers.gen.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,7 @@ export const getFooResponseTransformer = async (data: any): Promise<GetFooRespon
77
item.baz = new Date(item.baz);
88
return item;
99
});
10+
data.bar = data.bar.map((item: any) => BigInt(item.toString()));
11+
data.baz = data.baz.map((item: any) => new Date(item));
1012
return data;
1113
};

packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/transformers-array/types.gen.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ export type GetFooResponses = {
1919
foo: Array<{
2020
baz: Date;
2121
}>;
22+
bar: Array<bigint>;
23+
baz: Array<Date>;
2224
};
2325
};
2426

packages/openapi-ts/src/plugins/@hey-api/transformers/expressions.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export const bigIntExpressions: ExpressionTransformer = ({ dataExpression, schem
1313

1414
if (bigIntCallExpression) {
1515
if (typeof dataExpression === 'string') {
16-
return [bigIntCallExpression];
16+
return [$.return(bigIntCallExpression)];
1717
}
1818

1919
if (dataExpression) {
@@ -30,7 +30,7 @@ export const dateExpressions: ExpressionTransformer = ({ dataExpression, schema
3030
}
3131

3232
if (typeof dataExpression === 'string') {
33-
return [$.new('Date').arg(dataExpression)];
33+
return [$.return($.new('Date').arg(dataExpression))];
3434
}
3535

3636
if (dataExpression) {

packages/openapi-ts/src/plugins/@hey-api/transformers/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export type ExpressionTransformer = (
1515
config: Omit<UserConfig, 'name'>;
1616
dataExpression?: ts.Expression | ReturnType<typeof $.attr | typeof $.expr> | string;
1717
},
18-
) => Array<TsDsl<ts.Expression>> | undefined;
18+
) => Array<TsDsl<ts.Expression> | ReturnType<typeof $.return>> | undefined;
1919

2020
/**
2121
* Returns the TypeScript type node for a schema with a specific format.

specs/3.0.x/transformers-array.json

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,23 @@
2727
},
2828
"required": ["baz"]
2929
}
30+
},
31+
"bar": {
32+
"type": "array",
33+
"items": {
34+
"type": "integer",
35+
"format": "int64"
36+
}
37+
},
38+
"baz": {
39+
"type": "array",
40+
"items": {
41+
"type": "string",
42+
"format": "date-time"
43+
}
3044
}
3145
},
32-
"required": ["foo"]
46+
"required": ["foo", "bar", "baz"]
3347
}
3448
}
3549
}

specs/3.1.x/transformers-array.json

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,23 @@
2727
},
2828
"required": ["baz"]
2929
}
30+
},
31+
"bar": {
32+
"type": "array",
33+
"items": {
34+
"type": "integer",
35+
"format": "int64"
36+
}
37+
},
38+
"baz": {
39+
"type": "array",
40+
"items": {
41+
"type": "string",
42+
"format": "date-time"
43+
}
3044
}
3145
},
32-
"required": ["foo"]
46+
"required": ["foo", "bar", "baz"]
3347
}
3448
}
3549
}

0 commit comments

Comments
 (0)