Skip to content

Commit d6bcc28

Browse files
authored
Merge pull request #1378 from samchon/feat/migrate
feat(migrate): enhance undefindable type expression
2 parents 1f48afc + f16044c commit d6bcc28

File tree

2 files changed

+20
-8
lines changed

2 files changed

+20
-8
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"private": true,
33
"name": "@nestia/station",
4-
"version": "8.0.2",
4+
"version": "8.0.3",
55
"description": "Nestia station",
66
"scripts": {
77
"build": "node deploy build",

packages/migrate/src/programmers/NestiaMigrateSchemaProgrammer.ts

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -371,8 +371,13 @@ export namespace NestiaMigrateSchemaProgrammer {
371371
required: string[];
372372
key: string;
373373
value: OpenApi.IJsonSchema;
374-
}) =>
375-
FilePrinter.description(
374+
}) => {
375+
const valueTypeNode: ts.TypeNode = write({
376+
components: props.components,
377+
importer: props.importer,
378+
schema: props.value,
379+
});
380+
return FilePrinter.description(
376381
ts.factory.createPropertySignature(
377382
undefined,
378383
Escaper.variable(props.key)
@@ -381,14 +386,21 @@ export namespace NestiaMigrateSchemaProgrammer {
381386
props.required.includes(props.key)
382387
? undefined
383388
: ts.factory.createToken(ts.SyntaxKind.QuestionToken),
384-
write({
385-
components: props.components,
386-
importer: props.importer,
387-
schema: props.value,
388-
}),
389+
props.required.includes(props.key)
390+
? valueTypeNode
391+
: ts.isUnionTypeNode(valueTypeNode)
392+
? ts.factory.createUnionTypeNode([
393+
...valueTypeNode.types,
394+
ts.factory.createTypeReferenceNode("undefined"),
395+
])
396+
: ts.factory.createUnionTypeNode([
397+
valueTypeNode,
398+
ts.factory.createTypeReferenceNode("undefined"),
399+
]),
389400
),
390401
writeComment(props.value),
391402
);
403+
};
392404

393405
const writeDynamicProperty = (props: {
394406
components: OpenApi.IComponents;

0 commit comments

Comments
 (0)