Skip to content

Commit

Permalink
feat: rewrite route cache into one file
Browse files Browse the repository at this point in the history
  • Loading branch information
mychidarko committed Nov 23, 2023
1 parent 6e3889b commit c30ba7c
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 34 deletions.
6 changes: 0 additions & 6 deletions apps/example/pages/_app.tsx
Expand Up @@ -3,10 +3,7 @@ import ReactDOM from 'react-dom/client';
import { createRouter } from '@hanabira/router';
import { PersistedState, createStore } from '@hanabira/store';

import _404 from '../.hana/_404-page.json';
import routes from '../.hana/routes.json';
import errorPages from '../.hana/error-pages.json';
import loadingPages from '../.hana/loading-pages.json';

import './index.css';

Expand All @@ -28,9 +25,6 @@ ReactDOM.createRoot(document.getElementById('root')!).render(
<React.StrictMode>
{createRouter({
root: import.meta.url,
loadingPages,
errorPages,
_404,
routes,
})}
</React.StrictMode>
Expand Down
10 changes: 6 additions & 4 deletions packages/router/src/@types/index.ts
Expand Up @@ -5,8 +5,10 @@ export interface HanaOptions {

export interface RouterOptions {
root: string;
_404: string[];
errorPages: string[];
loadingPages: string[];
routes: any[];
routes: {
routes: any[];
errorPages: string[];
loadingPages: string[];
_404Page: string;
};
}
13 changes: 5 additions & 8 deletions packages/router/src/router.tsx
Expand Up @@ -4,21 +4,18 @@ import { RouterOptions } from './@types';

export function createRouter({
routes: appRoutes,
loadingPages,
errorPages,
_404,
root,
}: RouterOptions) {
const routes: any = [];

for (const r of appRoutes) {
for (const r of appRoutes.routes) {
let closestErrorPage: any = null;
let closestLoadingPage: any = null;

let closestErrorMatchLength = 0;
let closestLoadingMatchLength = 0;

errorPages.forEach((errorPage) => {
appRoutes.errorPages.forEach((errorPage) => {
const routeFile = r.file.toLowerCase();
const errorPageFile = errorPage
.replace(/\_error.(jsx|tsx|js|ts)/, '')
Expand All @@ -34,7 +31,7 @@ export function createRouter({
}
});

loadingPages.forEach((loadingPage) => {
appRoutes.loadingPages.forEach((loadingPage) => {
const routeFile = r.file.toLowerCase();
const loadingPageFile = loadingPage
.replace(/\_loading.(jsx|tsx|js|ts)/, '')
Expand Down Expand Up @@ -87,13 +84,13 @@ export function createRouter({
});
}

if (_404) {
if (appRoutes._404Page) {
routes.push({
path: '*',
element: createElement(
lazy(
() =>
import(/* @vite-ignore */ `${root.replace('_app.tsx', _404[0])}`)
import(/* @vite-ignore */ `${root.replace('_app.tsx', appRoutes._404Page[0])}`)
)
),
});
Expand Down
17 changes: 1 addition & 16 deletions packages/router/src/vite-plugin.ts
Expand Up @@ -102,22 +102,7 @@ export default function hana(options: HanaOptions): Plugin {
fs.mkdirSync(path.resolve(options.root, '.hana'), { recursive: true });
fs.writeFileSync(
path.resolve(options.root, '.hana/routes.json'),
JSON.stringify(routes)
);

fs.writeFileSync(
path.resolve(options.root, '.hana/error-pages.json'),
JSON.stringify(errorPages)
);

fs.writeFileSync(
path.resolve(options.root, '.hana/loading-pages.json'),
JSON.stringify(loadingPages)
);

fs.writeFileSync(
path.resolve(options.root, '.hana/_404-page.json'),
JSON.stringify([_404Page])
JSON.stringify({ routes, errorPages, loadingPages, _404Page })
);
};

Expand Down

0 comments on commit c30ba7c

Please sign in to comment.