Skip to content

Commit c5df8e6

Browse files
committed
refactor: deduplicate assertNonArray utility function
1 parent bca2918 commit c5df8e6

File tree

4 files changed

+10
-18
lines changed

4 files changed

+10
-18
lines changed

actions/generate.action.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,7 @@ import {
1919
shouldGenerateSpec,
2020
} from '../lib/utils/project-utils';
2121
import { AbstractAction } from './abstract.action';
22-
23-
function assertNonArray<T>(value: T): asserts value is Exclude<T, any[]> {
24-
if (Array.isArray(value)) {
25-
throw new TypeError('Expected a non-array value');
26-
}
27-
}
22+
import { assertNonArray } from '../lib/utils/type-assertions';
2823

2924
export class GenerateAction extends AbstractAction {
3025
public async handle(inputs: Input[], options: Input[]) {

actions/new.action.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import { EMOJIS, MESSAGES } from '../lib/ui';
2323
import { normalizeToKebabOrSnakeCase } from '../lib/utils/formatting';
2424
import { gracefullyExitOnPromptError } from '../lib/utils/gracefully-exit-on-prompt-error';
2525
import { AbstractAction } from './abstract.action';
26+
import { assertNonArray } from '../lib/utils/type-assertions';
2627

2728
export class NewAction extends AbstractAction {
2829
public async handle(inputs: Input[], options: Input[]) {
@@ -65,12 +66,6 @@ export class NewAction extends AbstractAction {
6566
}
6667
}
6768

68-
function assertNonArray<T>(value: T): asserts value is Exclude<T, any[]> {
69-
if (Array.isArray(value)) {
70-
throw new TypeError('Expected a non-array value');
71-
}
72-
}
73-
7469
const getApplicationNameInput = (inputs: Input[]) =>
7570
inputs.find((input) => input.name === 'name');
7671

actions/start.action.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,7 @@ import {
1313
import { ERROR_PREFIX } from '../lib/ui';
1414
import { treeKillSync as killProcessSync } from '../lib/utils/tree-kill';
1515
import { BuildAction } from './build.action';
16-
17-
function assertNonArray<T>(value: T): asserts value is Exclude<T, any[]> {
18-
if (Array.isArray(value)) {
19-
throw new TypeError('Expected a non-array value');
20-
}
21-
}
16+
import { assertNonArray } from '../lib/utils/type-assertions';
2217

2318
export class StartAction extends BuildAction {
2419
public async handle(commandInputs: Input[], commandOptions: Input[]) {

lib/utils/type-assertions.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
export function assertNonArray<T>(
2+
value: T,
3+
): asserts value is Exclude<T, any[]> {
4+
if (Array.isArray(value)) {
5+
throw new TypeError('Expected a non-array value');
6+
}
7+
}

0 commit comments

Comments
 (0)