Optimized code and wrote documentation
This commit is contained in:
+22
-5
@@ -1,10 +1,24 @@
|
||||
import { FreshContext, Handlers } from "$fresh/server.ts";
|
||||
import { AppProperties } from "$root/defaults/interfaces.ts";
|
||||
import { AppProperties, State } from "$root/defaults/interfaces.ts";
|
||||
import AppNavigator from "$root/routes/(_islands)/AppNavigator.tsx";
|
||||
|
||||
export const handler: Handlers = {
|
||||
async GET(_request, context) {
|
||||
const apps: Record<string, AppProperties> = {};
|
||||
const apps: Record<string, AppProperties> = {};
|
||||
|
||||
export const handler: Handlers<Record<string, AppProperties>, State> = {
|
||||
/**
|
||||
* Generate the app catalog page from pages.
|
||||
* Catalog is only computed once, then the cached version is used.
|
||||
* @param _request The HTTP incomming request.
|
||||
* @param context The Fresh context with `State`.
|
||||
* @returns The rendered page with all apps as catalog.
|
||||
*/
|
||||
async GET(
|
||||
_request: Request,
|
||||
context: FreshContext<State, Record<string, AppProperties>>,
|
||||
): Promise<Response> {
|
||||
if (Object.keys(apps).length != 0) {
|
||||
return context.render(apps);
|
||||
}
|
||||
|
||||
for await (const appDir of Deno.readDir("routes/(apps)")) {
|
||||
if (appDir.isFile) {
|
||||
@@ -26,7 +40,10 @@ export const handler: Handlers = {
|
||||
};
|
||||
|
||||
// deno-lint-ignore require-await
|
||||
export default async function Apps(_request: Request, context: FreshContext) {
|
||||
export default async function Apps(
|
||||
_request: Request,
|
||||
context: FreshContext<State, Record<string, AppProperties>>,
|
||||
) {
|
||||
return (
|
||||
<>
|
||||
<AppNavigator apps={context.data} />
|
||||
|
||||
Reference in New Issue
Block a user