Skip to content

Commit fc024f4

Browse files
committed
fix: remove duplication
1 parent 86efeb1 commit fc024f4

3 files changed

Lines changed: 26 additions & 4 deletions

File tree

src/shared/orgUtils.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616

1717
import { Connection } from '@salesforce/core';
18-
import { VersionChannel, resolveChannel, getDefaultChannel } from './versionResolver.js';
18+
import { VersionChannel, resolveChannel, getDefaultChannel, getAllChannels } from './versionResolver.js';
1919

2020
type LightningPreviewMetadataResponse = {
2121
enableLightningPreviewPref?: string;
@@ -144,7 +144,7 @@ export class OrgUtils {
144144
// Priority 2: Environment variable override
145145
const envOverride = process.env.FORCE_VERSION_CHANNEL;
146146
if (envOverride) {
147-
const validChannels: VersionChannel[] = ['latest', 'prerelease', 'next'];
147+
const validChannels = getAllChannels();
148148
if (validChannels.includes(envOverride as VersionChannel)) {
149149
return envOverride as VersionChannel;
150150
} else {

src/shared/typeUtils.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,22 @@
1717
type ValueOf<T> = T[keyof T];
1818
type Entries<T> = Array<[keyof T, ValueOf<T>]>;
1919

20-
// Same as `Object.entries()` but with type inference
20+
/**
21+
* Same as `Object.entries()` but with type inference
22+
*
23+
* @param obj the object to get the entries of
24+
* @returns the entries of the object
25+
*/
2126
export function objectEntries<T extends object>(obj: T): Entries<T> {
2227
return Object.entries(obj) as Entries<T>;
2328
}
29+
30+
/**
31+
* Same as `Object.keys()` but with type inference
32+
*
33+
* @param obj the object to get the keys of
34+
* @returns the keys of the object
35+
*/
36+
export function objectKeys<T extends object>(obj: T): Array<keyof T> {
37+
return Object.keys(obj) as unknown as Array<keyof T>;
38+
}

src/shared/versionResolver.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616

1717
import packageJson from '../../package.json' with { type: 'json' };
18-
import { objectEntries } from './typeUtils.js';
18+
import { objectEntries, objectKeys } from './typeUtils.js';
1919

2020
/**
2121
* Resolves org API version to appropriate dependency channel
@@ -79,3 +79,10 @@ export function resolveChannel(orgApiVersion: string): VersionChannel {
7979
export function getDefaultChannel(): VersionChannel {
8080
return packageJson.apiVersionMetadata.defaultChannel as VersionChannel;
8181
}
82+
83+
/**
84+
* Returns a list of all valid version channels
85+
*/
86+
export function getAllChannels(): VersionChannel[] {
87+
return objectKeys(packageJson.apiVersionMetadata.channels);
88+
}

0 commit comments

Comments
 (0)