( latestManifest: PluginManifest, versionsManifest: VersionsManifest, canRunMinAppVersion: (minAppVersion: string) => boolean = requireApiVersion )
| 135 | } |
| 136 | |
| 137 | export function getLatestCompatibleVersion( |
| 138 | latestManifest: PluginManifest, |
| 139 | versionsManifest: VersionsManifest, |
| 140 | canRunMinAppVersion: (minAppVersion: string) => boolean = requireApiVersion |
| 141 | ): string | null { |
| 142 | if (!latestManifest.minAppVersion || canRunMinAppVersion(latestManifest.minAppVersion)) { |
| 143 | return latestManifest.version ?? null; |
| 144 | } |
| 145 | |
| 146 | const compatibleVersions = Object.entries(versionsManifest) |
| 147 | .filter(([, minAppVersion]) => canRunMinAppVersion(minAppVersion)) |
| 148 | .map(([version]) => version) |
| 149 | .sort(compareVersions); |
| 150 | |
| 151 | return compatibleVersions[compatibleVersions.length - 1] ?? null; |
| 152 | } |
| 153 | |
| 154 | export function shouldNotifyForRelease( |
| 155 | currentVersion: string, |
no outgoing calls
no test coverage detected