Re-organize the repository.

This commit is contained in:
Dave Smith-Hayes 2024-07-08 21:37:25 -04:00
parent eeca7eaece
commit db3e79fd8f
9 changed files with 33 additions and 35 deletions

2
src/config.ts Normal file
View File

@ -0,0 +1,2 @@
export const POST_PATH: string = __dirname + '/../posts';
export const STATIC_PATH: string = __dirname + '/../static';

View File

@ -1,10 +1,9 @@
import { Hono } from 'hono'; import { Hono } from 'hono';
import { jsxRenderer, useRequestContext } from 'hono/jsx-renderer'; import { jsxRenderer } from 'hono/jsx-renderer';
import { Page } from '@blog/templates/Page'; import { Page } from '@blog/templates/Page';
import home from '@blog/routes/home'; import home from '@blog/handlers/home';
import posts from '@blog/routes/posts'; import posts from '@blog/handlers/posts';
import type { SiteMeta } from '@blog/model/SiteMeta'; import type { SiteMeta } from '@blog/models/SiteMeta';
import { setupDb, readPostsToDatabase } from '@blog/db/init';
declare module 'hono' { declare module 'hono' {
interface ContextRenderer { interface ContextRenderer {
@ -12,38 +11,23 @@ declare module 'hono' {
} }
} }
async function main() { const app = new Hono();
console.log({ message: "Starting the Blog application..." });
const app = new Hono();
// Render the JSX views // Render the JSX views
console.log({ message: "Bootstrapping the view layer..." }); app.get(
app.get(
'*', '*',
jsxRenderer( jsxRenderer(
({ children, meta }) => { ({ children, meta }) => <Page meta={meta}>{children}</Page>,
return (<Page meta={meta}>{children}</Page>); { docType: true }
},
{
docType: true
}
) )
); );
// Bootstrap the Database console.log({ message: "Bootstrapping the routes..." });
console.log({ message: "Bootstrapping the database..." }); app.route('/', home);
setupDb(); app.route('/posts', posts);
await readPostsToDatabase(__dirname + "/../posts");
// read all posts export default {
// create listing of posts port: process.env.APP_PORT || 3000,
fetch: app.fetch
console.log({ message: "Bootstrapping the routes..." });
app.route('/', home);
app.route('/posts', posts);
return app;
} }
export default main();

7
src/services/database.ts Normal file
View File

@ -0,0 +1,7 @@
export type ConnectionConfig = {
host: string,
username: string,
password: string,
database: string,
port: number
};

View File

@ -0,0 +1,5 @@
import { POST_PATH } from '@blog/config';
export class PostFileService {
}