mirror of
https://github.com/BrenBroZAYT/gameyfin.git
synced 2026-06-13 16:40:01 +00:00
Update Hilla version
Fix production build
This commit is contained in:
@@ -4,12 +4,13 @@
|
||||
<option name="executionName" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="externalSystemIdString" value="GRADLE" />
|
||||
<option name="scriptParameters" value="-P hilla.productionMode=true" />
|
||||
<option name="scriptParameters" value="-Pvaadin.productionMode=true" />
|
||||
<option name="taskDescriptions">
|
||||
<list />
|
||||
</option>
|
||||
<option name="taskNames">
|
||||
<list>
|
||||
<option value="clean" />
|
||||
<option value="build" />
|
||||
</list>
|
||||
</option>
|
||||
|
||||
+2
-2
@@ -23,8 +23,8 @@ subprojects {
|
||||
|
||||
tasks.withType<KotlinJvmCompile> {
|
||||
compilerOptions {
|
||||
languageVersion = KotlinVersion.KOTLIN_2_0
|
||||
apiVersion = KotlinVersion.KOTLIN_2_0
|
||||
languageVersion = KotlinVersion.KOTLIN_2_1
|
||||
apiVersion = KotlinVersion.KOTLIN_2_1
|
||||
jvmTarget = JvmTarget.JVM_21
|
||||
progressiveMode = true
|
||||
freeCompilerArgs.add("-Xjsr305=strict")
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
group = "de.grimsi"
|
||||
val appMainClass = "de.grimsi.gameyfin.GameyfinApplication"
|
||||
val appMainClass = "de.grimsi.gameyfin.GameyfinApplicationKt"
|
||||
|
||||
plugins {
|
||||
id("org.springframework.boot")
|
||||
|
||||
Generated
+1725
-1515
File diff suppressed because it is too large
Load Diff
+60
-58
@@ -9,22 +9,22 @@
|
||||
"@polymer/polymer": "3.5.2",
|
||||
"@react-stately/data": "^3.12.2",
|
||||
"@react-types/shared": "^3.28.0",
|
||||
"@vaadin/bundles": "24.6.6",
|
||||
"@vaadin/bundles": "24.7.1",
|
||||
"@vaadin/common-frontend": "0.0.19",
|
||||
"@vaadin/hilla-file-router": "24.6.6",
|
||||
"@vaadin/hilla-frontend": "24.6.6",
|
||||
"@vaadin/hilla-lit-form": "24.6.6",
|
||||
"@vaadin/hilla-react-auth": "24.6.6",
|
||||
"@vaadin/hilla-react-crud": "24.6.6",
|
||||
"@vaadin/hilla-react-form": "24.6.6",
|
||||
"@vaadin/hilla-react-i18n": "24.6.6",
|
||||
"@vaadin/hilla-react-signals": "24.6.6",
|
||||
"@vaadin/polymer-legacy-adapter": "24.6.6",
|
||||
"@vaadin/react-components": "24.6.6",
|
||||
"@vaadin/hilla-file-router": "24.7.1",
|
||||
"@vaadin/hilla-frontend": "24.7.1",
|
||||
"@vaadin/hilla-lit-form": "24.7.1",
|
||||
"@vaadin/hilla-react-auth": "24.7.1",
|
||||
"@vaadin/hilla-react-crud": "24.7.1",
|
||||
"@vaadin/hilla-react-form": "24.7.1",
|
||||
"@vaadin/hilla-react-i18n": "24.7.1",
|
||||
"@vaadin/hilla-react-signals": "24.7.1",
|
||||
"@vaadin/polymer-legacy-adapter": "24.7.1",
|
||||
"@vaadin/react-components": "24.7.1",
|
||||
"@vaadin/vaadin-development-mode-detector": "2.0.7",
|
||||
"@vaadin/vaadin-lumo-styles": "24.6.6",
|
||||
"@vaadin/vaadin-material-styles": "24.6.6",
|
||||
"@vaadin/vaadin-themable-mixin": "24.6.6",
|
||||
"@vaadin/vaadin-lumo-styles": "24.7.1",
|
||||
"@vaadin/vaadin-material-styles": "24.7.1",
|
||||
"@vaadin/vaadin-themable-mixin": "24.7.1",
|
||||
"@vaadin/vaadin-usage-statistics": "2.1.3",
|
||||
"classnames": "^2.5.1",
|
||||
"construct-style-sheets-polyfill": "3.1.0",
|
||||
@@ -43,7 +43,7 @@
|
||||
"react-aria-components": "^1.7.1",
|
||||
"react-confetti-boom": "^1.0.0",
|
||||
"react-dom": "18.3.1",
|
||||
"react-router-dom": "6.29.0",
|
||||
"react-router": "7.2.0",
|
||||
"yup": "^1.6.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -55,21 +55,22 @@
|
||||
"@types/node": "^22.4.0",
|
||||
"@types/react": "18.3.18",
|
||||
"@types/react-dom": "18.3.5",
|
||||
"@vaadin/hilla-generator-cli": "24.6.6",
|
||||
"@vaadin/hilla-generator-core": "24.6.6",
|
||||
"@vaadin/hilla-generator-plugin-backbone": "24.6.6",
|
||||
"@vaadin/hilla-generator-plugin-barrel": "24.6.6",
|
||||
"@vaadin/hilla-generator-plugin-client": "24.6.6",
|
||||
"@vaadin/hilla-generator-plugin-model": "24.6.6",
|
||||
"@vaadin/hilla-generator-plugin-push": "24.6.6",
|
||||
"@vaadin/hilla-generator-plugin-signals": "24.6.6",
|
||||
"@vaadin/hilla-generator-plugin-subtypes": "24.6.6",
|
||||
"@vaadin/hilla-generator-utils": "24.6.6",
|
||||
"@vaadin/hilla-generator-cli": "24.7.1",
|
||||
"@vaadin/hilla-generator-core": "24.7.1",
|
||||
"@vaadin/hilla-generator-plugin-backbone": "24.7.1",
|
||||
"@vaadin/hilla-generator-plugin-barrel": "24.7.1",
|
||||
"@vaadin/hilla-generator-plugin-client": "24.7.1",
|
||||
"@vaadin/hilla-generator-plugin-model": "24.7.1",
|
||||
"@vaadin/hilla-generator-plugin-push": "24.7.1",
|
||||
"@vaadin/hilla-generator-plugin-signals": "24.7.1",
|
||||
"@vaadin/hilla-generator-plugin-subtypes": "24.7.1",
|
||||
"@vaadin/hilla-generator-plugin-transfertypes": "24.7.1",
|
||||
"@vaadin/hilla-generator-utils": "24.7.1",
|
||||
"@vitejs/plugin-react": "4.3.4",
|
||||
"@vitejs/plugin-react-swc": "^3.7.0",
|
||||
"async": "3.2.6",
|
||||
"autoprefixer": "^10.4.20",
|
||||
"glob": "10.4.5",
|
||||
"glob": "11.0.1",
|
||||
"postcss": "^8.4.41",
|
||||
"postcss-import": "^16.1.0",
|
||||
"rollup-plugin-brotli": "3.1.0",
|
||||
@@ -78,7 +79,7 @@
|
||||
"tailwindcss": "^3.4.13",
|
||||
"transform-ast": "2.4.4",
|
||||
"typescript": "5.7.3",
|
||||
"vite": "6.0.11",
|
||||
"vite": "6.2.3",
|
||||
"vite-plugin-checker": "0.8.0",
|
||||
"workbox-build": "7.3.0",
|
||||
"workbox-core": "7.3.0",
|
||||
@@ -89,7 +90,6 @@
|
||||
"classnames": "$classnames",
|
||||
"react": "$react",
|
||||
"react-dom": "$react-dom",
|
||||
"react-router-dom": "$react-router-dom",
|
||||
"@vaadin/bundles": "$@vaadin/bundles",
|
||||
"@vaadin/common-frontend": "$@vaadin/common-frontend",
|
||||
"construct-style-sheets-polyfill": "$construct-style-sheets-polyfill",
|
||||
@@ -127,34 +127,35 @@
|
||||
"@react-stately/data": "$@react-stately/data",
|
||||
"react-aria-components": "$react-aria-components",
|
||||
"react-accessible-treeview": "$react-accessible-treeview",
|
||||
"rand-seed": "$rand-seed"
|
||||
"rand-seed": "$rand-seed",
|
||||
"react-router": "$react-router"
|
||||
},
|
||||
"vaadin": {
|
||||
"dependencies": {
|
||||
"@polymer/polymer": "3.5.2",
|
||||
"@vaadin/bundles": "24.6.6",
|
||||
"@vaadin/bundles": "24.7.1",
|
||||
"@vaadin/common-frontend": "0.0.19",
|
||||
"@vaadin/hilla-file-router": "24.6.6",
|
||||
"@vaadin/hilla-frontend": "24.6.6",
|
||||
"@vaadin/hilla-lit-form": "24.6.6",
|
||||
"@vaadin/hilla-react-auth": "24.6.6",
|
||||
"@vaadin/hilla-react-crud": "24.6.6",
|
||||
"@vaadin/hilla-react-form": "24.6.6",
|
||||
"@vaadin/hilla-react-i18n": "24.6.6",
|
||||
"@vaadin/hilla-react-signals": "24.6.6",
|
||||
"@vaadin/polymer-legacy-adapter": "24.6.6",
|
||||
"@vaadin/react-components": "24.6.6",
|
||||
"@vaadin/hilla-file-router": "24.7.1",
|
||||
"@vaadin/hilla-frontend": "24.7.1",
|
||||
"@vaadin/hilla-lit-form": "24.7.1",
|
||||
"@vaadin/hilla-react-auth": "24.7.1",
|
||||
"@vaadin/hilla-react-crud": "24.7.1",
|
||||
"@vaadin/hilla-react-form": "24.7.1",
|
||||
"@vaadin/hilla-react-i18n": "24.7.1",
|
||||
"@vaadin/hilla-react-signals": "24.7.1",
|
||||
"@vaadin/polymer-legacy-adapter": "24.7.1",
|
||||
"@vaadin/react-components": "24.7.1",
|
||||
"@vaadin/vaadin-development-mode-detector": "2.0.7",
|
||||
"@vaadin/vaadin-lumo-styles": "24.6.6",
|
||||
"@vaadin/vaadin-material-styles": "24.6.6",
|
||||
"@vaadin/vaadin-themable-mixin": "24.6.6",
|
||||
"@vaadin/vaadin-lumo-styles": "24.7.1",
|
||||
"@vaadin/vaadin-material-styles": "24.7.1",
|
||||
"@vaadin/vaadin-themable-mixin": "24.7.1",
|
||||
"@vaadin/vaadin-usage-statistics": "2.1.3",
|
||||
"construct-style-sheets-polyfill": "3.1.0",
|
||||
"date-fns": "2.29.3",
|
||||
"lit": "3.2.1",
|
||||
"react": "18.3.1",
|
||||
"react-dom": "18.3.1",
|
||||
"react-router-dom": "6.29.0"
|
||||
"react-router": "7.2.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/preset-react": "7.26.3",
|
||||
@@ -163,30 +164,31 @@
|
||||
"@rollup/pluginutils": "5.1.4",
|
||||
"@types/react": "18.3.18",
|
||||
"@types/react-dom": "18.3.5",
|
||||
"@vaadin/hilla-generator-cli": "24.6.6",
|
||||
"@vaadin/hilla-generator-core": "24.6.6",
|
||||
"@vaadin/hilla-generator-plugin-backbone": "24.6.6",
|
||||
"@vaadin/hilla-generator-plugin-barrel": "24.6.6",
|
||||
"@vaadin/hilla-generator-plugin-client": "24.6.6",
|
||||
"@vaadin/hilla-generator-plugin-model": "24.6.6",
|
||||
"@vaadin/hilla-generator-plugin-push": "24.6.6",
|
||||
"@vaadin/hilla-generator-plugin-signals": "24.6.6",
|
||||
"@vaadin/hilla-generator-plugin-subtypes": "24.6.6",
|
||||
"@vaadin/hilla-generator-utils": "24.6.6",
|
||||
"@vaadin/hilla-generator-cli": "24.7.1",
|
||||
"@vaadin/hilla-generator-core": "24.7.1",
|
||||
"@vaadin/hilla-generator-plugin-backbone": "24.7.1",
|
||||
"@vaadin/hilla-generator-plugin-barrel": "24.7.1",
|
||||
"@vaadin/hilla-generator-plugin-client": "24.7.1",
|
||||
"@vaadin/hilla-generator-plugin-model": "24.7.1",
|
||||
"@vaadin/hilla-generator-plugin-push": "24.7.1",
|
||||
"@vaadin/hilla-generator-plugin-signals": "24.7.1",
|
||||
"@vaadin/hilla-generator-plugin-subtypes": "24.7.1",
|
||||
"@vaadin/hilla-generator-plugin-transfertypes": "24.7.1",
|
||||
"@vaadin/hilla-generator-utils": "24.7.1",
|
||||
"@vitejs/plugin-react": "4.3.4",
|
||||
"async": "3.2.6",
|
||||
"glob": "10.4.5",
|
||||
"glob": "11.0.1",
|
||||
"rollup-plugin-brotli": "3.1.0",
|
||||
"rollup-plugin-visualizer": "5.14.0",
|
||||
"strip-css-comments": "5.0.0",
|
||||
"transform-ast": "2.4.4",
|
||||
"typescript": "5.7.3",
|
||||
"vite": "6.0.11",
|
||||
"vite": "6.2.3",
|
||||
"vite-plugin-checker": "0.8.0",
|
||||
"workbox-build": "7.3.0",
|
||||
"workbox-core": "7.3.0",
|
||||
"workbox-precaching": "7.3.0"
|
||||
},
|
||||
"hash": "a951d6d827dd2a43a7d0fa6330d5030cc19c1077490488a24cfd7908bd43aac3"
|
||||
"hash": "26d6e466339c0b4c7dfffb8fe616e725dd60e800bba0169742bfabede9023961"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
import {Outlet, useHref, useNavigate} from 'react-router-dom';
|
||||
import {Outlet, useHref, useNavigate} from 'react-router';
|
||||
import "./main.css";
|
||||
import "Frontend/util/custom-validators";
|
||||
import {HeroUIProvider} from "@heroui/react";
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import {useAuth} from "Frontend/util/auth";
|
||||
import {GearFine, Question, SignOut, User} from "@phosphor-icons/react";
|
||||
import {Dropdown, DropdownItem, DropdownMenu, DropdownTrigger} from "@heroui/react";
|
||||
import {useNavigate} from "react-router-dom";
|
||||
import {useNavigate} from "react-router";
|
||||
import {ConfigEndpoint} from "Frontend/generated/endpoints";
|
||||
import Avatar from "Frontend/components/general/Avatar";
|
||||
import {CollectionElement} from "@react-types/shared";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import {Outlet} from "react-router-dom";
|
||||
import {Outlet} from "react-router";
|
||||
import {Icon} from "@phosphor-icons/react";
|
||||
import {Listbox, ListboxItem} from "@heroui/react";
|
||||
import {ReactElement, useState} from "react";
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import {createRoot} from 'react-dom/client';
|
||||
import {StrictMode} from "react";
|
||||
import {RouterProvider} from "react-router-dom";
|
||||
import {RouterProvider} from "react-router";
|
||||
import router from "./routes";
|
||||
|
||||
const container = document.getElementById('outlet')!;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import {protectRoutes} from '@vaadin/hilla-react-auth';
|
||||
import {createBrowserRouter, RouteObject} from 'react-router-dom';
|
||||
import {createBrowserRouter, RouteObject} from 'react-router';
|
||||
import LoginView from "Frontend/views/LoginView";
|
||||
import MainLayout from "Frontend/views/MainLayout";
|
||||
import TestView from "Frontend/views/TestView";
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { useMatches } from 'react-router-dom';
|
||||
import {useMatches} from 'react-router';
|
||||
|
||||
type RouteMetadata = {
|
||||
[key: string]: any;
|
||||
[key: string]: any;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -9,7 +9,7 @@ type RouteMetadata = {
|
||||
* or undefined if the route does not have defined a handle.
|
||||
*/
|
||||
export function useRouteMetadata(): RouteMetadata | undefined {
|
||||
const matches = useMatches();
|
||||
const match = matches[matches.length - 1];
|
||||
return match?.handle as RouteMetadata | undefined;
|
||||
const matches = useMatches();
|
||||
const match = matches[matches.length - 1];
|
||||
return match?.handle as RouteMetadata | undefined;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import {Card, CardBody, CardHeader} from "@heroui/react";
|
||||
import {useNavigate, useSearchParams} from "react-router-dom";
|
||||
import {useNavigate, useSearchParams} from "react-router";
|
||||
import React, {useEffect, useState} from "react";
|
||||
import {CheckCircle, Warning, WarningCircle} from "@phosphor-icons/react";
|
||||
import TokenValidationResult from "Frontend/generated/de/grimsi/gameyfin/shared/token/TokenValidationResult";
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import {addToast, Button, Card, CardBody, CardHeader} from "@heroui/react";
|
||||
import {useNavigate, useSearchParams} from "react-router-dom";
|
||||
import {useNavigate, useSearchParams} from "react-router";
|
||||
import {Form, Formik} from "formik";
|
||||
import Input from "Frontend/components/general/input/Input";
|
||||
import * as Yup from "yup";
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import {useAuth} from "Frontend/util/auth";
|
||||
import {useEffect, useState} from "react";
|
||||
import {Button, Card, CardBody, CardHeader, Link, useDisclosure} from "@heroui/react";
|
||||
import {useNavigate} from "react-router-dom";
|
||||
import {useNavigate} from "react-router";
|
||||
import {Form, Formik} from "formik";
|
||||
import Input from "Frontend/components/general/input/Input";
|
||||
import PasswordResetModal from "Frontend/components/general/modals/PasswordResetModal";
|
||||
|
||||
@@ -4,7 +4,7 @@ import ProfileMenu from "Frontend/components/ProfileMenu";
|
||||
import {Divider, Link, Navbar, NavbarBrand, NavbarContent, NavbarItem} from "@heroui/react";
|
||||
import GameyfinLogo from "Frontend/components/theming/GameyfinLogo";
|
||||
import * as PackageJson from "../../../../package.json";
|
||||
import {Outlet, useNavigate} from "react-router-dom";
|
||||
import {Outlet, useNavigate} from "react-router";
|
||||
import {useAuth} from "Frontend/util/auth";
|
||||
import {Heart} from "@phosphor-icons/react";
|
||||
import Confetti, {ConfettiProps} from "react-confetti-boom";
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import {addToast, Button, Card, CardBody, CardHeader} from "@heroui/react";
|
||||
import {useNavigate, useSearchParams} from "react-router-dom";
|
||||
import {useNavigate, useSearchParams} from "react-router";
|
||||
import {Form, Formik} from "formik";
|
||||
import Input from "Frontend/components/general/input/Input";
|
||||
import * as Yup from "yup";
|
||||
|
||||
@@ -7,7 +7,7 @@ import {HandWaving, Palette, User} from "@phosphor-icons/react";
|
||||
import {addToast, Card} from "@heroui/react";
|
||||
import {SetupEndpoint} from "Frontend/generated/endpoints";
|
||||
import {ThemeSelector} from "Frontend/components/theming/ThemeSelector";
|
||||
import {useNavigate} from "react-router-dom";
|
||||
import {useNavigate} from "react-router";
|
||||
|
||||
function WelcomeStep() {
|
||||
return (
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import {Link} from "react-router-dom";
|
||||
import {Link} from "react-router";
|
||||
import {addToast, Button, Input} from "@heroui/react";
|
||||
import {LibraryEndpoint, SystemEndpoint} from "Frontend/generated/endpoints";
|
||||
import {useState} from "react";
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"jsx": "react-jsx",
|
||||
"inlineSources": true,
|
||||
"module": "esNext",
|
||||
"target": "es2020",
|
||||
"target": "es2022",
|
||||
"moduleResolution": "bundler",
|
||||
"strict": true,
|
||||
"skipLibCheck": true,
|
||||
|
||||
@@ -142,6 +142,7 @@ function buildSWPlugin(opts: { devMode: boolean }): PluginOption {
|
||||
sourcemap: viteConfig.command === 'serve' || viteConfig.build.sourcemap,
|
||||
emptyOutDir: false,
|
||||
modulePreload: false,
|
||||
target: ['safari15', 'es2022'],
|
||||
rollupOptions: {
|
||||
input: {
|
||||
sw: settings.clientServiceWorkerSource
|
||||
@@ -273,7 +274,7 @@ function statsExtracterPlugin(): PluginOption {
|
||||
const frontendFiles: Record<string, string> = {};
|
||||
frontendFiles['index.html'] = createHash('sha256').update(customIndexData.replace(/\r\n/g, '\n'), 'utf8').digest('hex');
|
||||
|
||||
const projectFileExtensions = ['.js', '.js.map', '.ts', '.ts.map', '.tsx', '.tsx.map', '.css', '.css.map', '.'];
|
||||
const projectFileExtensions = ['.js', '.js.map', '.ts', '.ts.map', '.tsx', '.tsx.map', '.css', '.css.map'];
|
||||
|
||||
const isThemeComponentsResource = (id: string) =>
|
||||
id.startsWith(themeOptions.frontendGeneratedFolder.replace(/\\/g, '/'))
|
||||
@@ -697,6 +698,7 @@ export const vaadinConfig: UserConfigFn = (env) => {
|
||||
outDir: buildOutputFolder,
|
||||
emptyOutDir: devBundle,
|
||||
assetsDir: 'VAADIN/build',
|
||||
target: ['safari15', 'es2022'],
|
||||
rollupOptions: {
|
||||
input: {
|
||||
indexhtml: projectIndexHtml,
|
||||
@@ -755,7 +757,16 @@ export const vaadinConfig: UserConfigFn = (env) => {
|
||||
babel: {
|
||||
// We need to use babel to provide the source information for it to be correct
|
||||
// (otherwise Babel will slightly rewrite the source file and esbuild generate source info for the modified file)
|
||||
presets: [['@babel/preset-react', { runtime: 'automatic', development: !productionMode }]],
|
||||
presets: [
|
||||
[
|
||||
'@babel/preset-react',
|
||||
{
|
||||
runtime: 'automatic',
|
||||
importSource: productionMode ? 'react' : 'Frontend/generated/jsx-dev-transform',
|
||||
development: !productionMode
|
||||
}
|
||||
]
|
||||
],
|
||||
// React writes the source location for where components are used, this writes for where they are defined
|
||||
plugins: [
|
||||
!productionMode && addFunctionComponentSourceLocationBabel(),
|
||||
|
||||
+5
-5
@@ -1,13 +1,13 @@
|
||||
# Plugin versions
|
||||
kotlinVersion=2.1.10
|
||||
kspVersion=2.1.10-1.0.31
|
||||
vaadinVersion=24.6.6
|
||||
springBootVersion=3.4.3
|
||||
kotlinVersion=2.1.20
|
||||
kspVersion=2.1.20-1.0.32
|
||||
vaadinVersion=24.7.1
|
||||
springBootVersion=3.4.4
|
||||
springCloudVersion=2024.0.0
|
||||
springDependencyManagementVersion=1.1.7
|
||||
# Dependency versions
|
||||
pf4jVersion=3.13.0
|
||||
pf4jKspVersion=2.1.10-1.0.2
|
||||
pf4jKspVersion=2.1.20-1.0.2
|
||||
# Annotation processor settings
|
||||
kapt.use.k2=true
|
||||
ksp.useKSP2=true
|
||||
@@ -12,7 +12,7 @@ import java.net.URI
|
||||
|
||||
class Mapper {
|
||||
companion object {
|
||||
private val log = LoggerFactory.getLogger(javaClass)
|
||||
private val log = LoggerFactory.getLogger(Mapper::class.java)
|
||||
|
||||
fun genre(genre: proto.Genre): Genre {
|
||||
return when (genre.slug) {
|
||||
|
||||
Reference in New Issue
Block a user