Skip to content

Commit 537e250

Browse files
allow mutually exclusive input options (#327)
Co-authored-by: Sergey S. Volkov <[email protected]>
1 parent 0a3d332 commit 537e250

File tree

1 file changed

+28
-19
lines changed

1 file changed

+28
-19
lines changed

index.d.ts

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,4 @@
1-
interface GenerateApiParams {
2-
/**
3-
* path to swagger schema
4-
*/
5-
input: string;
6-
7-
/**
8-
* url to swagger schema
9-
*/
10-
url: string;
11-
12-
/**
13-
* swagger schema JSON
14-
*/
15-
spec: import("swagger-schema-official").Spec;
16-
1+
interface GenerateApiParamsBase {
172
/**
183
* default 'api.ts'
194
*/
@@ -123,6 +108,32 @@ interface GenerateApiParams {
123108
patch?: boolean;
124109
}
125110

111+
interface GenerateApiParamsFromPath extends GenerateApiParamsBase {
112+
/**
113+
* path to swagger schema
114+
*/
115+
input: string;
116+
}
117+
118+
interface GenerateApiParamsFromUrl extends GenerateApiParamsBase {
119+
/**
120+
* url to swagger schema
121+
*/
122+
url: string;
123+
}
124+
125+
interface GenerateApiParamsFromSpecLiteral extends GenerateApiParamsBase {
126+
/**
127+
* swagger schema JSON
128+
*/
129+
spec: import("swagger-schema-official").Spec;
130+
}
131+
132+
export type GenerateApiParams =
133+
| GenerateApiParamsFromPath
134+
| GenerateApiParamsFromUrl
135+
| GenerateApiParamsFromSpecLiteral;
136+
126137
export interface Hooks {
127138
/** calls after parse schema component */
128139
onCreateComponent: (component: SchemaComponent) => SchemaComponent | void;
@@ -371,6 +382,4 @@ export interface GenerateApiOutput {
371382
formatTSContent: (content: string) => string;
372383
}
373384

374-
export declare function generateApi(params: Omit<GenerateApiParams, "url" | "spec">): Promise<GenerateApiOutput>;
375-
export declare function generateApi(params: Omit<GenerateApiParams, "input" | "spec">): Promise<GenerateApiOutput>;
376-
export declare function generateApi(params: Omit<GenerateApiParams, "input" | "url">): Promise<GenerateApiOutput>;
385+
export declare function generateApi(params: GenerateApiParams): Promise<GenerateApiOutput>;

0 commit comments

Comments
 (0)