Skip to content

Commit 798bbec

Browse files
committed
Improved version lookup
1 parent 6efa2ef commit 798bbec

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

__tests__/get-version.test.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { versionFromString } from "../src/get-version";
2+
3+
describe("version lookup", () => {
4+
it("identifies version from swift version", async () => {
5+
const version = versionFromString(
6+
"Apple Swift version 5.4.2 (swiftlang-1205.0.28.2 clang-1205.0.19.57)"
7+
);
8+
expect(version).toBe("5.4.2");
9+
});
10+
11+
it("identifies version from swift-driver version", async () => {
12+
const version = versionFromString(
13+
"swift-driver version: 1.26.9 Apple Swift version 5.5 (swiftlang-1300.0.31.1 clang-1300.0.29.1)"
14+
);
15+
expect(version).toBe("5.5");
16+
});
17+
});

src/get-version.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,13 @@ export async function getVersion(
2424
throw new Error(error);
2525
}
2626

27-
const match = output.match(/(?<version>[0-9]+\.[0-9+]+(\.[0-9]+)?)/) || {
27+
return versionFromString(output);
28+
}
29+
30+
export function versionFromString(subject: string): string | null {
31+
const match = subject.match(
32+
/Apple\ Swift\ version (?<version>[0-9]+\.[0-9+]+(\.[0-9]+)?)/
33+
) || {
2834
groups: { version: null },
2935
};
3036

0 commit comments

Comments
 (0)