dify/web/app/components/plugins/install-plugin/utils.ts

54 lines
1.7 KiB
TypeScript
Raw Normal View History

2024-10-29 16:33:27 +08:00
import type { Plugin, PluginDeclaration, PluginManifestInMarket } from '../types'
2024-11-01 14:55:56 +08:00
import type { GitHubUrlInfo } from '@/app/components/plugins/types'
2024-10-22 17:21:25 +08:00
export const pluginManifestToCardPluginProps = (pluginManifest: PluginDeclaration): Plugin => {
return {
2024-11-05 16:04:52 +08:00
plugin_id: pluginManifest.plugin_unique_identifier,
2024-10-22 17:21:25 +08:00
type: pluginManifest.category,
category: pluginManifest.category,
name: pluginManifest.name,
version: pluginManifest.version,
latest_version: '',
org: pluginManifest.author,
label: pluginManifest.label,
brief: pluginManifest.description,
icon: pluginManifest.icon,
2024-10-23 11:45:36 +08:00
verified: pluginManifest.verified,
2024-10-22 17:21:25 +08:00
introduction: '',
repository: '',
install_count: 0,
endpoint: {
2024-10-23 11:45:36 +08:00
settings: [],
},
2024-11-01 14:55:56 +08:00
tags: [],
2024-10-22 17:21:25 +08:00
}
}
2024-10-29 16:33:27 +08:00
export const pluginManifestInMarketToPluginProps = (pluginManifest: PluginManifestInMarket): Plugin => {
return {
2024-11-05 16:04:52 +08:00
plugin_id: pluginManifest.plugin_unique_identifier,
2024-10-29 16:33:27 +08:00
type: pluginManifest.category,
category: pluginManifest.category,
name: pluginManifest.name,
version: pluginManifest.latest_version,
latest_version: pluginManifest.latest_version,
org: pluginManifest.org,
label: pluginManifest.label,
brief: pluginManifest.brief,
icon: pluginManifest.icon,
verified: pluginManifest.verified,
introduction: pluginManifest.introduction,
repository: '',
install_count: 0,
endpoint: {
settings: [],
},
2024-11-01 14:55:56 +08:00
tags: [],
2024-10-29 16:33:27 +08:00
}
}
2024-11-01 14:55:56 +08:00
export const parseGitHubUrl = (url: string): GitHubUrlInfo => {
const match = url.match(/^https:\/\/github\.com\/([^\/]+)\/([^\/]+)\/?$/)
2024-11-01 14:55:56 +08:00
return match ? { isValid: true, owner: match[1], repo: match[2] } : { isValid: false }
}