Skip to content

Commit 80d8870

Browse files
committed
Create ValidEnvironment interface from type definition
This commit DRYs valid environment objects by creating a reusable interface
1 parent 74fc99c commit 80d8870

1 file changed

Lines changed: 10 additions & 9 deletions

File tree

packages/theme/src/cli/utilities/theme-command.ts

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,11 @@ interface PassThroughFlagsOptions {
2727
// Only pass on flags that are relevant to CLI2
2828
allowedFlags?: string[]
2929
}
30+
interface ValidEnvironment {
31+
environment: EnvironmentName
32+
flags: FlagValues
33+
requiresAuth: boolean
34+
}
3035
type EnvironmentName = string
3136
/**
3237
* Flags required to run a command in multiple environments
@@ -167,7 +172,7 @@ export default abstract class ThemeCommand extends Command {
167172
requiredFlags: Exclude<RequiredFlags, null>,
168173
requiresAuth: boolean,
169174
) {
170-
const valid: {environment: EnvironmentName; flags: FlagValues; requiresAuth: boolean}[] = []
175+
const valid: ValidEnvironment[] = []
171176
const invalid: {environment: EnvironmentName; reason: string}[] = []
172177

173178
for (const [environmentName, environmentFlags] of environmentMap) {
@@ -194,7 +199,7 @@ export default abstract class ThemeCommand extends Command {
194199
commandName: string,
195200
requiredFlags: Exclude<RequiredFlags, null>,
196201
validationResults: {
197-
valid: {environment: string; flags: FlagValues; requiresAuth: boolean}[]
202+
valid: ValidEnvironment[]
198203
invalid: {environment: string; reason: string}[]
199204
},
200205
) {
@@ -234,9 +239,7 @@ export default abstract class ThemeCommand extends Command {
234239
* Run the command in each valid environment concurrently
235240
* @param validEnvironments - The valid environments to run the command in
236241
*/
237-
private async runConcurrent(
238-
validEnvironments: {environment: EnvironmentName; flags: FlagValues; requiresAuth: boolean}[],
239-
) {
242+
private async runConcurrent(validEnvironments: ValidEnvironment[]) {
240243
const abortController = new AbortController()
241244

242245
const stores = validEnvironments.map((env) => env.flags.store as string)
@@ -282,10 +285,8 @@ export default abstract class ThemeCommand extends Command {
282285
* @param environments - The environments to group
283286
* @returns The environment groups
284287
*/
285-
private createSequentialGroups(
286-
environments: {environment: EnvironmentName; flags: FlagValues; requiresAuth: boolean}[],
287-
) {
288-
const groups: {environment: EnvironmentName; flags: FlagValues; requiresAuth: boolean}[][] = []
288+
private createSequentialGroups(environments: ValidEnvironment[]) {
289+
const groups: ValidEnvironment[][] = []
289290

290291
environments.forEach((environment) => {
291292
const groupWithoutStore = groups.find((arr) => !arr.some((env) => env.flags.store === environment.flags.store))

0 commit comments

Comments
 (0)