Skip to content

Commit 45fdbd4

Browse files
committed
refactor: update getPaginationKeywordsRegExp to accept keywords directly from config input
1 parent 545fad0 commit 45fdbd4

File tree

6 files changed

+34
-31
lines changed

6 files changed

+34
-31
lines changed

packages/openapi-ts/src/ir/__tests__/pagination.test.ts

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ describe('paginationKeywordsRegExp', () => {
4646
'is $value pagination param? $output',
4747
async ({ result, value }) => {
4848
const paginationRegExp = getPaginationKeywordsRegExp();
49-
paginationRegExp.lastIndex = 0;
5049
expect(paginationRegExp.test(value)).toEqual(result);
5150
},
5251
);
@@ -64,16 +63,11 @@ describe('paginationKeywordsRegExp', () => {
6463
it.each(customScenarios)(
6564
'with custom config, $value should match? $result',
6665
async ({ result, value }) => {
67-
const config: Config = {
68-
input: {
69-
pagination: {
70-
keywords: ['customPagination', 'pageSize', 'perPage'],
71-
},
72-
},
73-
} as Config;
66+
const pagination: Config['input']['pagination'] = {
67+
keywords: ['customPagination', 'pageSize', 'perPage'],
68+
};
7469

75-
const paginationRegExp = getPaginationKeywordsRegExp(config);
76-
paginationRegExp.lastIndex = 0;
70+
const paginationRegExp = getPaginationKeywordsRegExp(pagination);
7771
expect(paginationRegExp.test(value)).toEqual(result);
7872
},
7973
);

packages/openapi-ts/src/ir/pagination.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ export const DEFAULT_PAGINATION_KEYWORDS = [
1010
'start',
1111
];
1212

13-
export function getPaginationKeywordsRegExp(config?: Config): RegExp {
14-
const configKeywords = config?.input?.pagination?.keywords;
15-
const keywords = configKeywords || DEFAULT_PAGINATION_KEYWORDS;
13+
export function getPaginationKeywordsRegExp({
14+
keywords = DEFAULT_PAGINATION_KEYWORDS,
15+
}: Config['input']['pagination'] = {}): RegExp {
1616
const pattern = `^(${keywords.join('|')})$`;
1717
return new RegExp(pattern);
1818
}

packages/openapi-ts/src/openApi/2.0.x/parser/pagination.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,9 @@ export const paginationField = ({
2929
in: undefined;
3030
};
3131
}): boolean | string => {
32-
const paginationRegExp = getPaginationKeywordsRegExp(context.config);
33-
paginationRegExp.lastIndex = 0;
32+
const paginationRegExp = getPaginationKeywordsRegExp(
33+
context.config.input.pagination,
34+
);
3435
if (paginationRegExp.test(name)) {
3536
return true;
3637
}
@@ -84,8 +85,9 @@ export const paginationField = ({
8485
}
8586

8687
for (const name in schema.properties) {
87-
const paginationRegExp = getPaginationKeywordsRegExp(context.config);
88-
paginationRegExp.lastIndex = 0;
88+
const paginationRegExp = getPaginationKeywordsRegExp(
89+
context.config.input.pagination,
90+
);
8991

9092
if (paginationRegExp.test(name)) {
9193
const property = schema.properties[name]!;

packages/openapi-ts/src/openApi/3.0.x/parser/pagination.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,9 @@ export const paginationField = ({
2828
name: string;
2929
schema: SchemaObject | ReferenceObject;
3030
}): boolean | string => {
31-
const paginationRegExp = getPaginationKeywordsRegExp(context.config);
32-
paginationRegExp.lastIndex = 0;
31+
const paginationRegExp = getPaginationKeywordsRegExp(
32+
context.config.input.pagination,
33+
);
3334
if (paginationRegExp.test(name)) {
3435
return true;
3536
}
@@ -73,8 +74,9 @@ export const paginationField = ({
7374
}
7475

7576
for (const name in schema.properties) {
76-
const paginationRegExp = getPaginationKeywordsRegExp(context.config);
77-
paginationRegExp.lastIndex = 0;
77+
const paginationRegExp = getPaginationKeywordsRegExp(
78+
context.config.input.pagination,
79+
);
7880

7981
if (paginationRegExp.test(name)) {
8082
const property = schema.properties[name]!;

packages/openapi-ts/src/openApi/3.1.x/parser/pagination.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,9 @@ export const paginationField = ({
2424
name: string;
2525
schema: SchemaObject;
2626
}): boolean | string => {
27-
const paginationRegExp = getPaginationKeywordsRegExp(context.config);
28-
paginationRegExp.lastIndex = 0;
27+
const paginationRegExp = getPaginationKeywordsRegExp(
28+
context.config.input.pagination,
29+
);
2930
if (paginationRegExp.test(name)) {
3031
return true;
3132
}
@@ -69,8 +70,9 @@ export const paginationField = ({
6970
}
7071

7172
for (const name in schema.properties) {
72-
const paginationRegExp = getPaginationKeywordsRegExp(context.config);
73-
paginationRegExp.lastIndex = 0;
73+
const paginationRegExp = getPaginationKeywordsRegExp(
74+
context.config.input.pagination,
75+
);
7476

7577
if (paginationRegExp.test(name)) {
7678
const property = schema.properties[name]!;

packages/openapi-ts/src/plugins/@tanstack/query-core/plugin-legacy.ts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -900,8 +900,9 @@ export const handlerLegacy: Plugin.LegacyHandler<
900900
let paginationField!: Model | OperationParameter;
901901

902902
const paginationParameter = operation.parameters.find((parameter) => {
903-
const paginationRegExp = getPaginationKeywordsRegExp(config);
904-
paginationRegExp.lastIndex = 0;
903+
const paginationRegExp = getPaginationKeywordsRegExp(
904+
config.input.pagination,
905+
);
905906
if (paginationRegExp.test(parameter.name)) {
906907
paginationField = parameter;
907908
return true;
@@ -917,8 +918,9 @@ export const handlerLegacy: Plugin.LegacyHandler<
917918
(model) => model.meta?.$ref === ref,
918919
);
919920
return refModel?.properties.find((property) => {
920-
const paginationRegExp = getPaginationKeywordsRegExp(config);
921-
paginationRegExp.lastIndex = 0;
921+
const paginationRegExp = getPaginationKeywordsRegExp(
922+
config.input.pagination,
923+
);
922924
if (paginationRegExp.test(property.name)) {
923925
paginationField = property;
924926
return true;
@@ -927,8 +929,9 @@ export const handlerLegacy: Plugin.LegacyHandler<
927929
}
928930

929931
return parameter.properties.find((property) => {
930-
const paginationRegExp = getPaginationKeywordsRegExp(config);
931-
paginationRegExp.lastIndex = 0;
932+
const paginationRegExp = getPaginationKeywordsRegExp(
933+
config.input.pagination,
934+
);
932935
if (paginationRegExp.test(property.name)) {
933936
paginationField = property;
934937
return true;

0 commit comments

Comments
 (0)