From 273c194db570590e0f8e7cb80f690db50c0af87c Mon Sep 17 00:00:00 2001 From: Alexandre Date: Mon, 22 Feb 2021 20:15:31 +0100 Subject: [PATCH] :sparkles: Handle data endpoint --- ts-router/src/pages/about.data.ts | 10 ++++++++++ ts-router/src/routes.ts | 4 ++++ 2 files changed, 14 insertions(+) create mode 100644 ts-router/src/pages/about.data.ts diff --git a/ts-router/src/pages/about.data.ts b/ts-router/src/pages/about.data.ts new file mode 100644 index 0000000..f5438f9 --- /dev/null +++ b/ts-router/src/pages/about.data.ts @@ -0,0 +1,10 @@ +import { DataFn } from "solid-app-router"; +import { mergeProps } from "solid-js"; + +const HomeData: DataFn = (props) => { + return mergeProps(props, { + name: "about", + }); +}; + +export default HomeData; diff --git a/ts-router/src/routes.ts b/ts-router/src/routes.ts index 588abbd..ed6e6c5 100644 --- a/ts-router/src/routes.ts +++ b/ts-router/src/routes.ts @@ -2,6 +2,7 @@ import { RouteDefinition } from "solid-app-router"; import { lazy, Component } from "solid-js"; const pages = import.meta.glob("./pages/**/*.tsx"); +const pagesData = import.meta.globEager("./pages/**/*.data.ts"); const autoRoutes = Object.keys(pages).map((path) => { const name = path.match(/\.\/pages(.*)\.[tj]sx$/)[1].toLowerCase(); @@ -9,9 +10,12 @@ const autoRoutes = Object.keys(pages).map((path) => { const routePath = ["/home", "/index"].includes(name) ? "/" : name; + const data = pagesData[path.replace("tsx", "data.ts")] || {}; + return { path: routePath, component: lazy(Comp), + data: data.default, } as RouteDefinition; });