(ignoreVersionCheck = false)
| 2030 | }; |
| 2031 | |
| 2032 | const newExtension = async (ignoreVersionCheck = false) => { |
| 2033 | const shouldIgnoreVersionCheck = ignoreVersionCheck === true; |
| 2034 | if (extension_url.value === "" && upload_file.value === null) { |
| 2035 | toast(tm("messages.fillUrlOrFile"), "error"); |
| 2036 | return; |
| 2037 | } |
| 2038 | |
| 2039 | if (extension_url.value !== "" && upload_file.value !== null) { |
| 2040 | toast(tm("messages.dontFillBoth"), "error"); |
| 2041 | return; |
| 2042 | } |
| 2043 | const source = upload_file.value !== null ? "file" : "url"; |
| 2044 | loading_.value = true; |
| 2045 | |
| 2046 | try { |
| 2047 | if (source === "url" && !selectedInstallDownloadUrl.value) { |
| 2048 | if (!installUsesGithubSource.value) { |
| 2049 | toast(tm("messages.invalidGithubRepo"), "error"); |
| 2050 | loading_.value = false; |
| 2051 | return; |
| 2052 | } |
| 2053 | |
| 2054 | const validationPayload = buildInstallRepoValidationPayload(); |
| 2055 | if (!validationPayload) { |
| 2056 | toast(tm("messages.fillUrlOrFile"), "error"); |
| 2057 | loading_.value = false; |
| 2058 | return; |
| 2059 | } |
| 2060 | installUrlValidation.validating = true; |
| 2061 | installUrlValidation.status = "loading"; |
| 2062 | installUrlValidation.message = tm("messages.validatingPlugin"); |
| 2063 | installUrlValidation.version = ""; |
| 2064 | installUrlValidation.metadata = null; |
| 2065 | try { |
| 2066 | const { data, message } = await validatePluginRepo(validationPayload); |
| 2067 | installUrlValidation.status = "valid"; |
| 2068 | installUrlValidation.message = message; |
| 2069 | installUrlValidation.version = data.version || ""; |
| 2070 | installUrlValidation.metadata = data; |
| 2071 | } catch (error) { |
| 2072 | const message = resolveErrorMessage( |
| 2073 | error, |
| 2074 | tm("messages.pluginValidateFailed"), |
| 2075 | ); |
| 2076 | installUrlValidation.status = "error"; |
| 2077 | installUrlValidation.message = message; |
| 2078 | toast(message, "error"); |
| 2079 | loading_.value = false; |
| 2080 | return; |
| 2081 | } finally { |
| 2082 | installUrlValidation.validating = false; |
| 2083 | } |
| 2084 | } |
| 2085 | |
| 2086 | const res = await performInstallRequest({ |
| 2087 | source, |
| 2088 | ignoreVersionCheck: shouldIgnoreVersionCheck, |
| 2089 | }); |
no test coverage detected