portfolio_leptos/src/data/Tool.ts

155 lines
No EOL
3.3 KiB
TypeScript

enum ToolType {
LANGUAGE, FRAMEWORK, LIB_OR_PACKAGE, OTHER
}
enum ToolPlatform {
MOBILE, WEB_FRONT, WEB_BACK, SYSTEM, DESKTOP
}
interface Tool {
type: ToolType,
name: string,
version: string | null,
description: string | null,
icon: string | null,
url: string,
tools: Array<Tool>,
platforms: Array<ToolPlatform>
}
export default Tool
// RUBY
export const Ruby: Tool = {
type: ToolType.LANGUAGE,
name: 'Ruby',
version: '2.7 - 3.2',
icon: null,
description: null,
url: 'https://www.ruby-lang.org/',
tools: [],
platforms: [ToolPlatform.MOBILE, ToolPlatform.WEB_BACK]
}
export const Rails: Tool = {
type: ToolType.FRAMEWORK,
name: 'Ruby on rails',
version: '5.1 - 7.0',
icon: null,
description: null,
url: 'https://rubyonrails.org/',
tools: [Ruby],
platforms: [ToolPlatform.WEB_BACK]
}
// PHP
export const Php: Tool = {
type: ToolType.LANGUAGE,
name: 'PHP',
icon: null,
version: '5 et 7',
description: null,
url: 'https://www.php.net/',
tools: [],
platforms: [ToolPlatform.WEB_BACK]
}
export const Symfony: Tool = {
type: ToolType.FRAMEWORK,
name: 'Symfony',
version: '4.0 - 5.0',
icon: null,
description: null,
url: 'https://symfony.com/',
tools: [Php],
platforms: [ToolPlatform.WEB_BACK]
}
// JS
export const Javascript: Tool = {
type: ToolType.LANGUAGE,
name: 'Javascript',
version: null,
icon: null,
description: null,
url: 'https://www.javascript.com/',
tools: [],
platforms: [ToolPlatform.WEB_BACK, ToolPlatform.WEB_FRONT, ToolPlatform.MOBILE, ToolPlatform.DESKTOP]
}
export const Typescript: Tool = {
type: ToolType.LANGUAGE,
name: 'Typescript',
version: null,
icon: null,
description: null,
url: 'https://www.typescriptlang.org/',
tools: [],
platforms: Javascript.platforms
}
export const React: Tool = {
type: ToolType.FRAMEWORK,
name: 'React',
version: '14, 15, 16, 17, 18',
icon: null,
description: null,
url: 'https://react.dev/',
tools: [Javascript, Typescript],
platforms: [ToolPlatform.WEB_FRONT]
}
export const Hotwire: Tool = {
type: ToolType.FRAMEWORK,
name: 'Hotwire',
version: '2 - 3',
icon: null,
description: 'Turbo + Stimulus',
url: 'https://stimulus.hotwired.dev/',
tools: [Javascript, Typescript, Rails],
platforms: [ToolPlatform.WEB_FRONT]
}
// CSS
// FLUTTER
export const Dart: Tool = {
type: ToolType.LANGUAGE,
name: 'Dart',
version: '2 - 3',
icon: null,
description: null,
url: 'https://dart.dev/',
tools: [],
platforms: [ToolPlatform.MOBILE, ToolPlatform.SYSTEM, ToolPlatform.WEB_FRONT, ToolPlatform.WEB_BACK, ToolPlatform.DESKTOP]
}
export const Flutter : Tool = {
type: ToolType.FRAMEWORK,
name: 'Flutter',
version: '2 - 3',
icon: null,
description: null,
url: 'https://flutter.dev/',
tools: [Dart],
platforms: [ToolPlatform.MOBILE, ToolPlatform.WEB_FRONT, ToolPlatform.WEB_BACK, ToolPlatform.DESKTOP]
}
// RUST
export const Rust : Tool = {
type: ToolType.LANGUAGE,
name: 'Rust',
version: 'Édition 2018, 2021',
icon: null,
description: null,
url: 'https://www.rust-lang.org/',
tools: [],
platforms: [ToolPlatform.SYSTEM, ToolPlatform.WEB_FRONT, ToolPlatform.WEB_BACK]
}
// OTHER