Skip to content

Commit e33d872

Browse files
committed
fix: lts option returns no version
close #17
1 parent 41a7555 commit e33d872

File tree

3 files changed

+37
-4
lines changed

3 files changed

+37
-4
lines changed

src/cli.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,9 @@ new Command()
7878
? SearchMode.All
7979
: options.preRelease
8080
? SearchMode.PreRelease
81-
: SearchMode.Default;
81+
: options.lts
82+
? SearchMode.LTS
83+
: SearchMode.Default;
8284

8385
// Group mode.
8486
const groupMode = (options.latestPatch || options.minorVersionOnly)

src/index.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { UnityChangeset as UnityChangesetClass } from "./unityChangeset.ts";
2-
import { getUnityReleases, UnityReleaseStream } from "./unityGraphQL.ts";
2+
import { getUnityReleases, getUnityReleasesInLTS, UnityReleaseStream } from "./unityGraphQL.ts";
33

44
export const UnityChangeset = UnityChangesetClass;
55
export type UnityChangeset = UnityChangesetClass;
@@ -32,6 +32,7 @@ export enum SearchMode {
3232
All = 0,
3333
Default = 2,
3434
PreRelease = 3,
35+
LTS = 4,
3536
}
3637

3738
/*
@@ -151,6 +152,8 @@ export function searchChangesets(
151152
UnityReleaseStream.BETA,
152153
UnityReleaseStream.ALPHA,
153154
]);
155+
case SearchMode.LTS:
156+
return getUnityReleasesInLTS();
154157
default:
155158
throw Error(`The given search mode '${searchMode}' was not supported`);
156159
}

src/unityGraphQL.ts

+30-2
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,15 @@ export enum UnityReleaseStream {
1313
interface UnityReleasesResponse {
1414
getUnityReleases: {
1515
totalCount: number;
16-
edges: { node: { version: string; shortRevision: string } }[];
16+
edges: { node: { version: string; shortRevision: string; stream: UnityReleaseStream } }[];
1717
pageInfo: { hasNextPage: boolean };
1818
};
1919
}
2020

21+
interface UnityReleasesMajorVersionsResponse {
22+
getUnityReleaseMajorVersions: { version: string; }[];
23+
}
24+
2125
export async function getUnityReleases(
2226
version: string,
2327
stream: UnityReleaseStream[] = [],
@@ -38,6 +42,7 @@ query GetRelease($limit: Int, $skip: Int, $version: String!, $stream: [UnityRele
3842
node {
3943
version
4044
shortRevision
45+
stream
4146
}
4247
}
4348
pageInfo {
@@ -58,7 +63,7 @@ query GetRelease($limit: Int, $skip: Int, $version: String!, $stream: [UnityRele
5863
const data: UnityReleasesResponse = await client.request(query, variables);
5964
results.push(
6065
...data.getUnityReleases.edges.map((edge) =>
61-
new UnityChangeset(edge.node.version, edge.node.shortRevision)
66+
new UnityChangeset(edge.node.version, edge.node.shortRevision, edge.node.stream == UnityReleaseStream.LTS)
6267
),
6368
);
6469
if (data.getUnityReleases.pageInfo.hasNextPage === false) {
@@ -70,3 +75,26 @@ query GetRelease($limit: Int, $skip: Int, $version: String!, $stream: [UnityRele
7075

7176
return results;
7277
}
78+
79+
export async function getUnityReleasesInLTS(): Promise<UnityChangeset[]> {
80+
const client = new GraphQLClient(UNITY_GRAPHQL_ENDPOINT);
81+
const query = gql`
82+
query {
83+
getUnityReleaseMajorVersions(
84+
stream: []
85+
platform: []
86+
architecture: []
87+
entitlements: []
88+
) {
89+
version
90+
}
91+
}
92+
`;
93+
const data: UnityReleasesMajorVersionsResponse = await client.request(query);
94+
const results = await Promise.all(data.getUnityReleaseMajorVersions
95+
.map(async (v) => {
96+
return await getUnityReleases(v.version, [UnityReleaseStream.LTS]);
97+
}));
98+
99+
return results.flat();
100+
}

0 commit comments

Comments
 (0)