From a72656cb4b973dc437dc2a8befecf6f883a49f98 Mon Sep 17 00:00:00 2001 From: Valerio Ageno Date: Sun, 16 Jun 2024 10:44:33 +0200 Subject: [PATCH] fix: lint typescript source --- packages/tuono/src/hydration/index.tsx | 6 ++-- .../src/router/components/RouterContext.tsx | 1 + .../src/router/hooks/useServerSideProps.tsx | 10 +++++-- packages/tuono/src/router/index.tsx | 6 ---- packages/tuono/src/router/route.ts | 30 +++---------------- packages/tuono/src/ssr/index.tsx | 4 ++- 6 files changed, 20 insertions(+), 37 deletions(-) diff --git a/packages/tuono/src/hydration/index.tsx b/packages/tuono/src/hydration/index.tsx index 55b6baa8..0f333ddd 100644 --- a/packages/tuono/src/hydration/index.tsx +++ b/packages/tuono/src/hydration/index.tsx @@ -2,12 +2,14 @@ import React from 'react' import ReactDOM from 'react-dom/client' import { RouterProvider, createRouter } from '../router' -export function hydrate(routeTree: any) { +type RouteTree = any + +export function hydrate(routeTree: RouteTree): void { // Create a new router instance const router = createRouter({ routeTree }) // Render the app - const rootElement = document.getElementById('__tuono')! + const rootElement = document.getElementById('__tuono') ReactDOM.hydrateRoot( rootElement, diff --git a/packages/tuono/src/router/components/RouterContext.tsx b/packages/tuono/src/router/components/RouterContext.tsx index 86973784..22609f5f 100644 --- a/packages/tuono/src/router/components/RouterContext.tsx +++ b/packages/tuono/src/router/components/RouterContext.tsx @@ -1,6 +1,7 @@ import * as React from 'react' import type { Router } from '../router' +// eslint-disable-next-line @typescript-eslint/no-non-null-assertion const routerContext = React.createContext(null!) const TUONO_CONTEXT = '__TUONO_CONTEXT__' diff --git a/packages/tuono/src/router/hooks/useServerSideProps.tsx b/packages/tuono/src/router/hooks/useServerSideProps.tsx index f447aa45..9ec8628a 100644 --- a/packages/tuono/src/router/hooks/useServerSideProps.tsx +++ b/packages/tuono/src/router/hooks/useServerSideProps.tsx @@ -9,16 +9,22 @@ interface UseServerSidePropsReturn { isLoading: boolean } +declare global { + interface Window { + __TUONO_SSR_PROPS__: any + } +} + /* * Use the props provided by the SSR and dehydrate the * props for client side usage. * * In case is a client fetch the remote data API */ -export function useServerSideProps( +export function useServerSideProps( route: Route, // User defined props - serverSideProps: any, + serverSideProps: T, ): UseServerSidePropsReturn { const isFirstRendering = useRef(true) const location = useRouterStore((st) => st.location) diff --git a/packages/tuono/src/router/index.tsx b/packages/tuono/src/router/index.tsx index b81e64e6..84ec4f37 100644 --- a/packages/tuono/src/router/index.tsx +++ b/packages/tuono/src/router/index.tsx @@ -1,9 +1,3 @@ -declare global { - interface Window { - __TUONO_SSR__PROPS__: any - } -} - export { RouterProvider } from './components/RouterProvider' export { default as Link } from './components/Link' export { createRouter } from './router' diff --git a/packages/tuono/src/router/route.ts b/packages/tuono/src/router/route.ts index 3f73e347..49ff8c15 100644 --- a/packages/tuono/src/router/route.ts +++ b/packages/tuono/src/router/route.ts @@ -40,7 +40,6 @@ export class Route { const isRoot = !this.options?.path && !this.options?.id - // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition this.parentRoute = this.options?.getParentRoute?.() if (isRoot) { @@ -75,11 +74,10 @@ export class Route { const fullPath = id === rootRouteId ? '/' : joinPaths([this.parentRoute.fullPath, path]) - this.path = path as TPath - this.id = id as TId - // this.customId = customId as TCustomId - this.fullPath = fullPath as TFullPath - this.to = fullPath as TrimPathRight + this.path = path + this.id = id + this.fullPath = fullPath + this.to = fullPath } addChildren(routes: Route[]): Route { @@ -92,28 +90,8 @@ export class Route { this.isRoot = options.isRoot || !options.getParentRoute return this } - - useRouteContext = () => {} - - useParams = () => {} } export function createRootRoute(options?: RouteOptions): Route { return new Route({ ...options, isRoot: true }) } - -export function getRouteApi(id: string): RouteApi { - return new RouteApi(id) -} - -class RouteApi { - id: string - - constructor(id: string) { - this.id = id - } - - useParams = () => {} - - useRouteContext = () => {} -} diff --git a/packages/tuono/src/ssr/index.tsx b/packages/tuono/src/ssr/index.tsx index a0d270c4..690c31dd 100644 --- a/packages/tuono/src/ssr/index.tsx +++ b/packages/tuono/src/ssr/index.tsx @@ -4,7 +4,9 @@ import { renderToString, renderToStaticMarkup } from 'react-dom/server' import { RouterProvider } from '../router' import { createRouter } from '../router' -export function serverSideRendering(routeTree: any) { +type RouteTree = any + +export function serverSideRendering(routeTree: RouteTree) { return function render(payload: string | undefined): string { const props = payload ? JSON.parse(payload) : {}