Skip to content

Commit c33688b

Browse files
authored
chore: adjust constructor to match @yeoman/types (#1684)
1 parent 7e68f67 commit c33688b

File tree

2 files changed

+20
-9
lines changed

2 files changed

+20
-9
lines changed

src/generator.ts

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -122,15 +122,28 @@ export class BaseGenerator<
122122
* }
123123
* };
124124
*/
125-
constructor(options: O, features?: F);
126-
constructor(args: string[], options: O, features?: F);
127-
128-
constructor(args: string[] | O, options: O | F, features?: F) {
125+
constructor(args?: string[], options?: O, features?: F);
126+
constructor(args?: string | string[] | O, options?: O | F, features?: F) {
129127
super();
130128

131-
const actualArgs: string[] = Array.isArray(args) ? args : [];
132-
const actualOptions = Array.isArray(args) ? (options as O) : args;
133-
const actualFeatures = Array.isArray(args) ? features : (options as F);
129+
args = typeof args === 'string' ? [args] : args;
130+
131+
// Handle backward Compatibility
132+
let actualArgs: string[];
133+
let actualOptions: O;
134+
let actualFeatures: F | undefined;
135+
if (typeof features === 'object') {
136+
actualArgs = args as string[];
137+
actualOptions = options as O;
138+
actualFeatures = features;
139+
} else if (typeof args === 'object' && !Array.isArray(args)) {
140+
actualArgs = [];
141+
actualOptions = args as O;
142+
} else {
143+
actualArgs = args ?? [];
144+
actualOptions = options as O;
145+
}
146+
134147
const { env, ...generatorOptions } = actualOptions;
135148

136149
// Load parameters

src/index.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ export default class Generator<
1717
_simpleGit?: SimpleGit;
1818

1919
constructor(...args: any[]) {
20-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
21-
// @ts-expect-error
2220
super(...args);
2321

2422
// eslint-disable-next-line @typescript-eslint/ban-ts-comment

0 commit comments

Comments
 (0)