summaryrefslogtreecommitdiffhomepage
path: root/packages/kernel/src/host/version.ts
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-27 01:09:39 +0900
committerAdam Malczewski <[email protected]>2026-06-27 01:09:39 +0900
commit61e45e60d699ed1ca46f94a8f181c92a940317c6 (patch)
tree2892d9773c5a8e367e1e58cdb1e88d9c6ad3fe6d /packages/kernel/src/host/version.ts
parent63c7e64532e85e0bbdd6d9ac6825d8f86be98e7a (diff)
parent727c98c9dae516a2070eb950410314380a20c974 (diff)
downloaddispatch-61e45e60d699ed1ca46f94a8f181c92a940317c6.tar.gz
dispatch-61e45e60d699ed1ca46f94a8f181c92a940317c6.zip
Merge branch 'feature/indent-change' into dev
Diffstat (limited to 'packages/kernel/src/host/version.ts')
-rw-r--r--packages/kernel/src/host/version.ts82
1 files changed, 41 insertions, 41 deletions
diff --git a/packages/kernel/src/host/version.ts b/packages/kernel/src/host/version.ts
index 0d62a3b..eb9ac16 100644
--- a/packages/kernel/src/host/version.ts
+++ b/packages/kernel/src/host/version.ts
@@ -1,52 +1,52 @@
interface SemVer {
- readonly major: number;
- readonly minor: number;
- readonly patch: number;
+ readonly major: number;
+ readonly minor: number;
+ readonly patch: number;
}
function parseSemVer(version: string): SemVer {
- const match = version.match(/^(\d+)\.(\d+)\.(\d+)$/);
- if (!match) throw new Error(`Invalid semver: "${version}"`);
- return {
- major: Number(match[1]),
- minor: Number(match[2]),
- patch: Number(match[3]),
- };
+ const match = version.match(/^(\d+)\.(\d+)\.(\d+)$/);
+ if (!match) throw new Error(`Invalid semver: "${version}"`);
+ return {
+ major: Number(match[1]),
+ minor: Number(match[2]),
+ patch: Number(match[3]),
+ };
}
function gte(a: SemVer, b: SemVer): boolean {
- if (a.major !== b.major) return a.major > b.major;
- if (a.minor !== b.minor) return a.minor > b.minor;
- return a.patch >= b.patch;
+ if (a.major !== b.major) return a.major > b.major;
+ if (a.minor !== b.minor) return a.minor > b.minor;
+ return a.patch >= b.patch;
}
export function isApiVersionCompatible(range: string, kernelVersion: string): boolean {
- if (range === "*") return true;
-
- const kernel = parseSemVer(kernelVersion);
-
- if (range.startsWith("^")) {
- const min = parseSemVer(range.slice(1));
- if (!gte(kernel, min)) return false;
- if (min.major === 0) {
- return kernel.major === 0 && kernel.minor === min.minor;
- }
- return kernel.major === min.major;
- }
-
- if (range.startsWith("~")) {
- const min = parseSemVer(range.slice(1));
- if (!gte(kernel, min)) return false;
- return kernel.major === min.major && kernel.minor === min.minor;
- }
-
- if (range.startsWith(">=")) {
- const min = parseSemVer(range.slice(2));
- return gte(kernel, min);
- }
-
- const exact = parseSemVer(range);
- return (
- kernel.major === exact.major && kernel.minor === exact.minor && kernel.patch === exact.patch
- );
+ if (range === "*") return true;
+
+ const kernel = parseSemVer(kernelVersion);
+
+ if (range.startsWith("^")) {
+ const min = parseSemVer(range.slice(1));
+ if (!gte(kernel, min)) return false;
+ if (min.major === 0) {
+ return kernel.major === 0 && kernel.minor === min.minor;
+ }
+ return kernel.major === min.major;
+ }
+
+ if (range.startsWith("~")) {
+ const min = parseSemVer(range.slice(1));
+ if (!gte(kernel, min)) return false;
+ return kernel.major === min.major && kernel.minor === min.minor;
+ }
+
+ if (range.startsWith(">=")) {
+ const min = parseSemVer(range.slice(2));
+ return gte(kernel, min);
+ }
+
+ const exact = parseSemVer(range);
+ return (
+ kernel.major === exact.major && kernel.minor === exact.minor && kernel.patch === exact.patch
+ );
}