Skip to content

Commit d01523c

Browse files
committed
refactor: getContentTypes重命名为pickContentType并取消抽象方法
1 parent bc32e4e commit d01523c

File tree

5 files changed

+22
-79
lines changed

5 files changed

+22
-79
lines changed

src/base-openapi-client.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ export abstract class BaseOpenapiClient<T extends object = object> {
5353
method: Methods,
5454
opts: BaseOpenapiClient.FullOpts<T> = {},
5555
) {
56-
const contentTypes = this.getContentTypes(uri, method);
56+
const contentTypes = this.pickContentTypes(uri, method);
5757
const requestBodyType = opts.requestBodyType || contentTypes[0] || 'application/json';
5858
const responseType = opts.responseType || contentTypes[1] || 'json';
5959
const headers = opts.headers || {};
@@ -79,11 +79,13 @@ export abstract class BaseOpenapiClient<T extends object = object> {
7979
);
8080
}
8181

82-
protected abstract getContentTypes(
83-
uri: string,
84-
method: string,
82+
protected pickContentTypes(
83+
_uri: string,
84+
_method: string,
8585
): [
8686
BaseOpenapiClient.UserInputOpts['requestBodyType'],
8787
BaseOpenapiClient.UserInputOpts['responseType'],
88-
];
88+
] {
89+
return [void 0, void 0];
90+
}
8991
}

src/lib/generate-template.ts

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -104,11 +104,6 @@ declare class ${className}<T extends object = object> extends BaseOpenapiClient<
104104
): Promise<${className}_${method}_paths[K]['response']>`;
105105
})
106106
.join('\n')}
107-
108-
protected getContentTypes(uri: string, method: string) : [
109-
BaseOpenapiClient.UserInputOpts['requestBodyType'],
110-
BaseOpenapiClient.UserInputOpts['responseType'],
111-
];
112107
}`,
113108
js: `
114109
var ${className} = class extends BaseOpenapiClient {
@@ -121,7 +116,7 @@ var ${className} = class extends BaseOpenapiClient {
121116
})
122117
.join('\n')}
123118
124-
getContentTypes(uri, method) {
119+
pickContentTypes(uri, method) {
125120
return contentTypes${className}[method + " " + uri] || [void 0, void 0];
126121
}
127122
};`,
@@ -144,11 +139,6 @@ declare class ${className}<T extends object = object> extends BaseOpenapiClient<
144139
});
145140
})
146141
.join('\n')}
147-
148-
protected getContentTypes(uri: string, method: string) : [
149-
BaseOpenapiClient.UserInputOpts['requestBodyType'],
150-
BaseOpenapiClient.UserInputOpts['responseType'],
151-
];
152142
}`,
153143
js: `
154144
var ${className} = class extends BaseOpenapiClient {
@@ -163,7 +153,7 @@ var ${className} = class extends BaseOpenapiClient {
163153
})
164154
.join('\n')}
165155
166-
getContentTypes(uri, method) {
156+
pickContentTypes(uri, method) {
167157
return contentTypes${className}[method + " " + uri] || [void 0, void 0];
168158
}
169159
};`,
@@ -200,11 +190,6 @@ declare class ${className}<T extends object = object> extends BaseOpenapiClient<
200190
}`;
201191
})
202192
.join('\n')}
203-
204-
protected getContentTypes(uri: string, method: string) : [
205-
BaseOpenapiClient.UserInputOpts['requestBodyType'],
206-
BaseOpenapiClient.UserInputOpts['responseType'],
207-
];
208193
}`,
209194
js: `
210195
var ${className} = class extends BaseOpenapiClient {
@@ -226,7 +211,7 @@ var ${className} = class extends BaseOpenapiClient {
226211
})
227212
.join('\n')}
228213
229-
getContentTypes(uri, method) {
214+
pickContentTypes(uri, method) {
230215
return contentTypes${className}[method + ' ' + uri] || [void 0, void 0];
231216
}
232217
};`,

test/lib/generate-template.test.ts

Lines changed: 5 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -84,11 +84,6 @@ test('完整的类型提示', async () => {
8484
? [opts?: OpenapiClient_get_paths[K]["request"] & BaseOpenapiClient.UserInputOpts<T>]
8585
: [opts: OpenapiClient_get_paths[K]["request"] & BaseOpenapiClient.UserInputOpts<T>]
8686
): Promise<OpenapiClient_get_paths[K]["response"]>;
87-
88-
protected getContentTypes(
89-
uri: string,
90-
method: string,
91-
): [BaseOpenapiClient.UserInputOpts["requestBodyType"], BaseOpenapiClient.UserInputOpts["responseType"]];
9287
}
9388
9489
interface OpenapiClient_get_paths {
@@ -113,7 +108,7 @@ test('完整的类型提示', async () => {
113108
return this.request(uri, "get", opts);
114109
}
115110
116-
getContentTypes(uri, method) {
111+
pickContentTypes(uri, method) {
117112
return contentTypesOpenapiClient[method + " " + uri] || [void 0, void 0];
118113
}
119114
};
@@ -152,11 +147,6 @@ test('完整的类型提示', async () => {
152147
opts?: OpenapiClient_get_paths["/users/{id}"]["request"] & BaseOpenapiClient.UserInputOpts<T>,
153148
): Promise<OpenapiClient_get_paths["/users/{id}"]["response"]>;
154149
};
155-
156-
protected getContentTypes(
157-
uri: string,
158-
method: string,
159-
): [BaseOpenapiClient.UserInputOpts["requestBodyType"], BaseOpenapiClient.UserInputOpts["responseType"]];
160150
}
161151
162152
interface OpenapiClient_get_paths {
@@ -186,7 +176,7 @@ test('完整的类型提示', async () => {
186176
},
187177
};
188178
189-
getContentTypes(uri, method) {
179+
pickContentTypes(uri, method) {
190180
return contentTypesOpenapiClient[method + " " + uri] || [void 0, void 0];
191181
}
192182
};
@@ -317,11 +307,6 @@ describe('类', () => {
317307
uri: K,
318308
...rest: [opts?: Client_patch_paths[K]['request'] & BaseOpenapiClient.UserInputOpts<T>]
319309
): Promise<Client_patch_paths[K]['response']>;
320-
321-
protected getContentTypes(
322-
uri: string,
323-
method: string,
324-
): [BaseOpenapiClient.UserInputOpts['requestBodyType'], BaseOpenapiClient.UserInputOpts['responseType']];
325310
}
326311
"
327312
`);
@@ -335,7 +320,7 @@ describe('类', () => {
335320
return this.request(uri, 'get', opts);
336321
}
337322
338-
getContentTypes(uri, method) {
323+
pickContentTypes(uri, method) {
339324
return contentTypesClient[method + ' ' + uri] || [void 0, void 0];
340325
}
341326
};
@@ -354,11 +339,6 @@ describe('类', () => {
354339
patchUsers(
355340
opts?: Client_patch_paths['/']['request'] & BaseOpenapiClient.UserInputOpts<T>,
356341
): Promise<Client_patch_paths['/']['response']>;
357-
358-
protected getContentTypes(
359-
uri: string,
360-
method: string,
361-
): [BaseOpenapiClient.UserInputOpts['requestBodyType'], BaseOpenapiClient.UserInputOpts['responseType']];
362342
}
363343
"
364344
`);
@@ -372,7 +352,7 @@ describe('类', () => {
372352
return this.request('/', 'patch', opts);
373353
}
374354
375-
getContentTypes(uri, method) {
355+
pickContentTypes(uri, method) {
376356
return contentTypesClient[method + ' ' + uri] || [void 0, void 0];
377357
}
378358
};
@@ -416,11 +396,6 @@ describe('类', () => {
416396
? [opts?: Client_get_paths[K]['request'] & BaseOpenapiClient.UserInputOpts<T>]
417397
: [opts: Client_get_paths[K]['request'] & BaseOpenapiClient.UserInputOpts<T>]
418398
): Promise<Client_get_paths[K]['response']>;
419-
420-
protected getContentTypes(
421-
uri: string,
422-
method: string,
423-
): [BaseOpenapiClient.UserInputOpts['requestBodyType'], BaseOpenapiClient.UserInputOpts['responseType']];
424399
}
425400
"
426401
`);
@@ -449,11 +424,6 @@ describe('类', () => {
449424
uri: K,
450425
...rest: [opts: Client_get_paths[K]['request'] & BaseOpenapiClient.UserInputOpts<T>]
451426
): Promise<Client_get_paths[K]['response']>;
452-
453-
protected getContentTypes(
454-
uri: string,
455-
method: string,
456-
): [BaseOpenapiClient.UserInputOpts['requestBodyType'], BaseOpenapiClient.UserInputOpts['responseType']];
457427
}
458428
"
459429
`);
@@ -478,11 +448,6 @@ describe('类', () => {
478448
opts?: Client_get_paths['/']['request'] & BaseOpenapiClient.UserInputOpts<T>,
479449
): Promise<Client_get_paths['/']['response']>;
480450
};
481-
482-
protected getContentTypes(
483-
uri: string,
484-
method: string,
485-
): [BaseOpenapiClient.UserInputOpts['requestBodyType'], BaseOpenapiClient.UserInputOpts['responseType']];
486451
}
487452
"
488453
`);
@@ -503,7 +468,7 @@ describe('类', () => {
503468
},
504469
};
505470
506-
getContentTypes(uri, method) {
471+
pickContentTypes(uri, method) {
507472
return contentTypesClient[method + ' ' + uri] || [void 0, void 0];
508473
}
509474
};

test/lib/rebuild-dist.test.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,20 +72,21 @@ test('内容写入文件', async () => {
7272
bbbbb: string;
7373
};
7474
75+
export { aaaaa };
76+
7577
declare const foo = { bar: "baz" };
76-
export {foo, aaaaa };
77-
"
78+
export { foo };"
7879
`);
7980

8081
await expect(readFile(path.join(distDir, 'esm', 'index.js'), 'utf8')).resolves
8182
.toMatchInlineSnapshot(`
8283
"// test/fixtures/index.ts
8384
var aaaaa = { bbbbb: "ccccc" };
84-
var foo = { bar: "baz" }
8585
export {
86-
foo,
8786
aaaaa
8887
};
89-
//# sourceMappingURL=index.js.map"
88+
//# sourceMappingURL=index.js.map
89+
var foo = { bar: "baz" }
90+
export { foo };"
9091
`);
9192
});

test/mocks/mock-openapi-client.ts

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,3 @@
11
import { BaseOpenapiClient } from '../../src';
22

3-
export class MockOpenapiClient extends BaseOpenapiClient {
4-
protected override getContentTypes(
5-
_uri: string,
6-
_method: string,
7-
): [
8-
BaseOpenapiClient.UserInputOpts['requestBodyType'],
9-
BaseOpenapiClient.UserInputOpts['responseType'],
10-
] {
11-
return [void 0, void 0];
12-
}
13-
}
3+
export class MockOpenapiClient extends BaseOpenapiClient {}

0 commit comments

Comments
 (0)