46 lines
1.6 KiB
TypeScript
46 lines
1.6 KiB
TypeScript
export type JetBrainsProductCode = 'PY' | 'IU' | 'WS' | 'CL' | 'PS'
|
|
|
|
export interface JetBrainsStateToolDto {
|
|
channelId: string
|
|
toolId: string
|
|
productCode: JetBrainsProductCode
|
|
tag: string
|
|
displayName: string
|
|
displayVersion: string
|
|
buildNumber: string
|
|
installLocation: string
|
|
launchCommand: string
|
|
}
|
|
|
|
export interface JetBrainsStateDto {
|
|
version: 1
|
|
appVersion: string
|
|
tools: JetBrainsStateToolDto[]
|
|
}
|
|
|
|
export enum JetBrainsIDEDisplayNameEnum {
|
|
pycharm = 'PyCharm',
|
|
idea = 'IntelliJ IDEA',
|
|
clion = 'CLion',
|
|
phpstorm = 'PhpStorm',
|
|
webstorm = 'WebStorm'
|
|
}
|
|
|
|
export function toProductCode(anything: string): JetBrainsProductCode | null {
|
|
if ([JetBrainsIDEDisplayNameEnum.pycharm, 'pycharm'].includes(anything)) return 'PY'
|
|
if ([JetBrainsIDEDisplayNameEnum.idea, 'idea'].includes(anything)) return 'IU'
|
|
if ([JetBrainsIDEDisplayNameEnum.clion, 'clion'].includes(anything)) return 'CL'
|
|
if ([JetBrainsIDEDisplayNameEnum.phpstorm, 'phpstorm'].includes(anything)) return 'PS'
|
|
if ([JetBrainsIDEDisplayNameEnum.webstorm, 'webstorm'].includes(anything)) return 'WS'
|
|
return null
|
|
}
|
|
|
|
export function toProductDisplayName(anything: string): string | null {
|
|
if (['PY', 'pycharm'].includes(anything)) return JetBrainsIDEDisplayNameEnum.pycharm
|
|
if (['IU', 'idea'].includes(anything)) return JetBrainsIDEDisplayNameEnum.idea
|
|
if (['CL', 'clion'].includes(anything)) return JetBrainsIDEDisplayNameEnum.clion
|
|
if (['PS', 'phpstorm'].includes(anything)) return JetBrainsIDEDisplayNameEnum.phpstorm
|
|
if (['WS', 'webstorm'].includes(anything)) return JetBrainsIDEDisplayNameEnum.webstorm
|
|
return null
|
|
}
|