Skip to content

Commit 532877b

Browse files
committed
fix: controller groupping
1 parent 96ecab7 commit 532877b

File tree

3 files changed

+9
-8
lines changed

3 files changed

+9
-8
lines changed

src/language/typescript.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import {
2525
} from '../utils';
2626
import { none, Option, some } from 'fp-ts/lib/Option';
2727
import { getArrayMonoid, getRecordMonoid, monoidString, fold, monoidAny } from 'fp-ts/lib/Monoid';
28-
import { camelize } from '@devexperts/utils/dist/string/string';
28+
import { decapitalize } from '@devexperts/utils/dist/string/string';
2929
import { intercalate } from 'fp-ts/lib/Foldable2v';
3030
import { collect, lookup } from 'fp-ts/lib/Record';
3131
import { identity } from 'fp-ts/lib/function';
@@ -123,7 +123,7 @@ export const serialize: TSerializer = (name: string, swaggerObject: TSwaggerObje
123123
const serializeDefinitions = (definitions: TDefinitionsObject): TDirectory =>
124124
directory('definitions', [...serializeDictionary(definitions, serializeDefinition)]);
125125
const serializePaths = (paths: TPathsObject): TDirectory =>
126-
directory('paths', serializeDictionary(groupPathsByTag(paths), serializePathGroup));
126+
directory('controllers', serializeDictionary(groupPathsByTag(paths), serializePathGroup));
127127

128128
const serializeDefinition = (name: string, definition: TSchemaObject): TFile => {
129129
const serialized = serializeSchemaObject(definition, './');
@@ -153,7 +153,7 @@ const serializePathGroup = (name: string, group: Record<string, TPathItemObject>
153153
dependency('asks', 'fp-ts/lib/Reader'),
154154
dependency('TAPIClient', '../client/client'),
155155
]);
156-
const groupName = name || 'Unknown';
156+
const groupName = `${name}Controller`;
157157
return file(
158158
`${groupName}.ts`,
159159
`
@@ -164,7 +164,7 @@ const serializePathGroup = (name: string, group: Record<string, TPathItemObject>
164164
${serialized.type}
165165
};
166166
167-
export const ${camelize(groupName, true)} = asks((e: { apiClient: TAPIClient }): ${groupName} => ({
167+
export const ${decapitalize(groupName)} = asks((e: { apiClient: TAPIClient }): ${groupName} => ({
168168
${serialized.io}
169169
}));
170170
`,

src/utils.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,15 @@ import { tuple } from 'fp-ts/lib/function';
1414
import { setoidString } from 'fp-ts/lib/Setoid';
1515
import { TQueryParameterObject } from './swagger';
1616
import { TFSEntity } from './fs';
17+
import { camelize } from '@devexperts/utils/dist/string/string';
1718

1819
export type TSerializer = (name: string, schema: TSwaggerObject) => TFSEntity;
1920

2021
export const getOperationsFromPath = (path: TPathItemObject): TDictionary<TOperationObject> => {
2122
const result: TDictionary<TOperationObject> = {};
2223
const operations = array.compact([
2324
path.get.map(operation => tuple('get', operation)),
25+
path.post.map(operation => tuple('post', operation)),
2426
path.put.map(operation => tuple('put', operation)),
2527
path.delete.map(operation => tuple('delete', operation)),
2628
path.head.map(operation => tuple('head', operation)),
@@ -44,9 +46,8 @@ export const groupPathsByTag = (paths: TPathsObject): TDictionary<TDictionary<TP
4446
const result: TDictionary<TDictionary<TPathItemObject>> = {};
4547
for (const key of keys) {
4648
const path = paths[key];
47-
const tag = getTagsFromPath(path)
48-
.join('')
49-
.replace(/\s/g, '');
49+
const tags = getTagsFromPath(path);
50+
const tag = camelize(tags.join('').replace(/\s/g, ''), false);
5051

5152
result[tag] = {
5253
...(result[tag] || {}),

test/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const self = path.resolve(__dirname);
88

99
generate({
1010
pathToSpec: path.resolve(self, './swagger.json'),
11-
out: path.resolve(self, './spec'),
11+
out: path.resolve(self, './out'),
1212
serialize,
1313
}).catch(error => {
1414
console.error(error);

0 commit comments

Comments
 (0)