From a97128956ecd900ed3c242421e91613f49f47676 Mon Sep 17 00:00:00 2001 From: "Thomas A. Christensen II" <25492070+MillironX@users.noreply.github.com> Date: Sat, 23 Dec 2023 10:27:00 -0700 Subject: [PATCH] refactor: Move nextflow_bin_url function to NextflowRelease.ts Nextflow binary URLs should be stored in the new NextflowRelease object, so it should essentially be private for the NextflowRelease type. Move the function to that file to signify that (but retain export for testing purposes). --- src/NextflowRelease.ts | 20 ++++++++++++++++++++ src/functions.ts | 14 -------------- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/src/NextflowRelease.ts b/src/NextflowRelease.ts index fed8427..b2bdaee 100644 --- a/src/NextflowRelease.ts +++ b/src/NextflowRelease.ts @@ -7,3 +7,23 @@ export type NextflowRelease = { binaryURL: string allBinaryURL: string } + +/** + * Gets the download URL of a Nextflow binary + * @param release A "release" data struct from OctoKit + * @param get_all Whether to return the url for the "all" variant of Nextflow + * @returns The URL of the Nextflow binary + */ +export function nextflow_bin_url(release: object, get_all: boolean): string { + const release_assets = release["assets"] + const all_asset = release_assets.filter((a: object) => { + return a["browser_download_url"].endsWith("-all") + })[0] + const regular_asset = release_assets.filter((a: object) => { + return a["name"] === "nextflow" + })[0] + + const dl_asset = get_all ? all_asset : regular_asset + + return dl_asset.browser_download_url +} diff --git a/src/functions.ts b/src/functions.ts index 4f0fbda..51af3b0 100644 --- a/src/functions.ts +++ b/src/functions.ts @@ -72,20 +72,6 @@ export async function release_data( return matching_releases[0] } -export function nextflow_bin_url(release: object, get_all: boolean): string { - const release_assets = release["assets"] - const all_asset = release_assets.filter((a: object) => { - return a["browser_download_url"].endsWith("-all") - })[0] - const regular_asset = release_assets.filter((a: object) => { - return a["name"] === "nextflow" - })[0] - - const dl_asset = get_all ? all_asset : regular_asset - - return dl_asset.browser_download_url -} - export async function install_nextflow( url: string, version: string