@dudousxd/nestjs-codegen 0.7.1 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1535,14 +1535,33 @@ function extractQueryType(method, sourceFile, project) {
1535
1535
  for (const param of method.getParameters()) {
1536
1536
  const queryDecorator = param.getDecorators().find((d) => d.getName() === "Query");
1537
1537
  if (!queryDecorator) continue;
1538
- const queryArgs = queryDecorator.getArguments();
1539
- if (queryArgs.length > 0) continue;
1538
+ if (queryDecorator.getArguments().length > 0) continue;
1540
1539
  const typeNode = param.getTypeNode();
1541
1540
  if (typeNode) {
1542
1541
  return resolveTypeNodeToString(typeNode, sourceFile, project, 3);
1543
1542
  }
1544
1543
  }
1545
- return null;
1544
+ const entries = [];
1545
+ for (const param of method.getParameters()) {
1546
+ const queryDecorator = param.getDecorators().find((d) => d.getName() === "Query");
1547
+ if (!queryDecorator) continue;
1548
+ const queryArgs = queryDecorator.getArguments();
1549
+ const nameArg = queryArgs[0];
1550
+ if (!nameArg || !import_ts_morph5.Node.isStringLiteral(nameArg)) continue;
1551
+ const queryName = nameArg.getLiteralValue();
1552
+ const typeNode = param.getTypeNode();
1553
+ const queryType = typeNode ? resolveTypeNodeToString(typeNode, sourceFile, project, 3) : "string";
1554
+ entries.push(`${queryName}${isParamOptional(param) ? "?" : ""}: ${queryType}`);
1555
+ }
1556
+ return entries.length > 0 ? `{ ${entries.join("; ")} }` : null;
1557
+ }
1558
+ function isParamOptional(param) {
1559
+ if (param.hasQuestionToken() || param.hasInitializer()) return true;
1560
+ const typeNode = param.getTypeNode();
1561
+ if (typeNode && import_ts_morph5.Node.isUnionTypeNode(typeNode)) {
1562
+ return typeNode.getTypeNodes().some((t) => t.getKind() === import_ts_morph5.SyntaxKind.UndefinedKeyword);
1563
+ }
1564
+ return false;
1546
1565
  }
1547
1566
  function extractParamsType(method, sourceFile, project) {
1548
1567
  const entries = [];