MCPcopy Index your code
hub / github.com/Opencode-DCP/opencode-dynamic-context-pruning / isVersionNewer

Function isVersionNewer

lib/update.ts:148–176  ·  view source on GitHub ↗
(latest: string, current: string)

Source from the content-addressed store, hash-verified

146}
147
148export function isVersionNewer(latest: string, current: string) {
149 const next = parseVersion(latest)
150 const prev = parseVersion(current)
151 if (!next || !prev) return false
152
153 for (let i = 0; i < 3; i++) {
154 if (next.parts[i] !== prev.parts[i]) return next.parts[i] > prev.parts[i]
155 }
156
157 if (!next.pre.length && prev.pre.length) return true
158 if (next.pre.length && !prev.pre.length) return false
159
160 for (let i = 0; i < Math.max(next.pre.length, prev.pre.length); i++) {
161 const a = next.pre[i]
162 const b = prev.pre[i]
163 if (a === undefined) return false
164 if (b === undefined) return true
165 if (a === b) continue
166
167 const aNumber = /^\d+$/.test(a) ? Number(a) : undefined
168 const bNumber = /^\d+$/.test(b) ? Number(b) : undefined
169 if (aNumber !== undefined && bNumber !== undefined) return aNumber > bNumber
170 if (aNumber !== undefined) return false
171 if (bNumber !== undefined) return true
172 return a > b
173 }
174
175 return false
176}
177
178function parseVersion(version: string) {
179 const match = version.match(/^v?(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?(?:\+.+)?$/)

Callers 2

update.test.tsFile · 0.90
checkAutoUpdateFunction · 0.85

Calls 1

parseVersionFunction · 0.85

Tested by

no test coverage detected