summaryrefslogtreecommitdiffhomepage
path: root/packages/kernel/src/host/version.ts
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-26 22:03:19 +0900
committerAdam Malczewski <[email protected]>2026-06-26 22:23:39 +0900
commit727c98c9dae516a2070eb950410314380a20c974 (patch)
tree52aa1022c54f11770be7e4e2a324f0a8b8b8deec /packages/kernel/src/host/version.ts
parente59dc11f63b1df51142259bb2c406af8c9c8c2bb (diff)
downloaddispatch-727c98c9dae516a2070eb950410314380a20c974.tar.gz
dispatch-727c98c9dae516a2070eb950410314380a20c974.zip
style: switch from tabs to 2-space indentation
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
+ );
}