Skip to content

Commit b384ff4

Browse files
authoredMar 2, 2023
fix(jsdoc): add jsDoc to query parameters (#741)
1 parent e480184 commit b384ff4

File tree

2 files changed

+41
-12
lines changed

2 files changed

+41
-12
lines changed
 

‎packages/core/src/getters/query-params.test.ts

+30-2
Original file line numberDiff line numberDiff line change
@@ -114,10 +114,38 @@ describe('getQueryParams getter', () => {
114114
});
115115

116116
expect(result?.schema.model.trim()).toBe(
117-
`export type Params = { ${parameter.name}${
117+
`export type Params = {\n${parameter.name}${
118118
optional ? '?' : ''
119-
}: string };`,
119+
}: string;\n};`,
120120
);
121121
});
122122
});
123+
124+
it('queryParamWithDescription should be documented', () => {
125+
const result = getQueryParams({
126+
queryParams: [
127+
{
128+
parameter: {
129+
name: 'queryParamWithDescription',
130+
in: 'query',
131+
description: 'Parameter description.',
132+
schema: {
133+
type: 'string',
134+
},
135+
},
136+
imports: [],
137+
},
138+
],
139+
operationName: '',
140+
context,
141+
});
142+
expect(result?.schema.model.trim()).toBe([
143+
'export type Params = {',
144+
'/**',
145+
' * Parameter description.',
146+
' */',
147+
'queryParamWithDescription?: string;',
148+
'};',
149+
].join('\n'));
150+
});
123151
});

‎packages/core/src/getters/query-params.ts

+11-10
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
GetterParameters,
88
GetterQueryParam,
99
} from '../types';
10-
import { pascal, sanitize } from '../utils';
10+
import { jsDoc, pascal, sanitize } from '../utils';
1111
import { getEnum } from './enum';
1212
import { getKey } from './keys';
1313

@@ -52,12 +52,13 @@ const getQueryParamsTypes = (
5252
});
5353

5454
const key = getKey(name);
55+
const doc = jsDoc(parameter);
5556

5657
if (parameterImports.length) {
5758
return {
58-
definition: `${key}${!required || schema.default ? '?' : ''}: ${
59+
definition: `${doc}${key}${!required || schema.default ? '?' : ''}: ${
5960
parameterImports[0].name
60-
}`,
61+
};`,
6162
imports: parameterImports,
6263
schemas: [],
6364
};
@@ -73,9 +74,9 @@ const getQueryParamsTypes = (
7374
);
7475

7576
return {
76-
definition: `${key}${
77+
definition: `${doc}${key}${
7778
!required || schema.default ? '?' : ''
78-
}: ${enumName}`,
79+
}: ${enumName};`,
7980
imports: [{ name: enumName }],
8081
schemas: [
8182
...resolvedeValue.schemas,
@@ -84,9 +85,9 @@ const getQueryParamsTypes = (
8485
};
8586
}
8687

87-
const definition = `${key}${!required || schema.default ? '?' : ''}: ${
88-
resolvedeValue.value
89-
}`;
88+
const definition = `${doc}${key}${
89+
!required || schema.default ? '?' : ''
90+
}: ${resolvedeValue.value};`;
9091

9192
return {
9293
definition,
@@ -115,12 +116,12 @@ export const getQueryParams = ({
115116
const schemas = types.flatMap(({ schemas }) => schemas);
116117
const name = `${pascal(operationName)}${pascal(suffix)}`;
117118

118-
const type = types.map(({ definition }) => definition).join('; ');
119+
const type = types.map(({ definition }) => definition).join('\n');
119120
const allOptional = queryParams.every(({ parameter }) => !parameter.required);
120121

121122
const schema = {
122123
name,
123-
model: `export type ${name} = { ${type} };\n`,
124+
model: `export type ${name} = {\n${type}\n};\n`,
124125
imports,
125126
};
126127

1 commit comments

Comments
 (1)

vercel[bot] commented on Mar 2, 2023

@vercel[bot]
Please sign in to comment.