diff options
Diffstat (limited to 'packages/db/test/fixtures/basics/src/pages')
3 files changed, 57 insertions, 0 deletions
diff --git a/packages/db/test/fixtures/basics/src/pages/index.astro b/packages/db/test/fixtures/basics/src/pages/index.astro new file mode 100644 index 000000000..2be0c4b23 --- /dev/null +++ b/packages/db/test/fixtures/basics/src/pages/index.astro @@ -0,0 +1,27 @@ +--- +/// <reference path="../../.astro/db-types.d.ts" /> +import { Author, Themes, db } from 'astro:db'; + +const authors = await db.select().from(Author); +const themes = await db.select().from(Themes); +--- + +<h2>Authors</h2> +<ul class="authors-list"> + {authors.map((author) => <li>{author.name}</li>)} +</ul> + +<h2>Themes</h2> +<ul class="themes-list"> + { + themes.map((theme) => ( + <li> + <div class="theme-name">{theme.name}</div> + <div class="theme-added">{theme.added}</div> + <div class="theme-updated">{theme.updated}</div> + <div class="theme-dark">{theme.isDark ? 'dark' : 'light'} mode</div> + <div class="theme-owner">{theme.owner}</div> + </li> + )) + } +</ul> diff --git a/packages/db/test/fixtures/basics/src/pages/login.astro b/packages/db/test/fixtures/basics/src/pages/login.astro new file mode 100644 index 000000000..4551fc483 --- /dev/null +++ b/packages/db/test/fixtures/basics/src/pages/login.astro @@ -0,0 +1,18 @@ +--- +import { Session, User, db, eq } from 'astro:db'; + +const users = await db.select().from(User); +const sessions = await db.select().from(Session).innerJoin(User, eq(Session.userId, User.id)); +--- + +<h2>Sessions</h2> +<ul class="sessions-list"> + { + sessions.map(({ Session, User }) => ( + <li> + <div class="session-id">{Session.id}</div> + <div class="username">{User.username}</div> + </li> + )) + } +</ul> diff --git a/packages/db/test/fixtures/basics/src/pages/run.json.ts b/packages/db/test/fixtures/basics/src/pages/run.json.ts new file mode 100644 index 000000000..a86619314 --- /dev/null +++ b/packages/db/test/fixtures/basics/src/pages/run.json.ts @@ -0,0 +1,12 @@ +import { db, sql } from 'astro:db'; +/// <reference types="@astrojs/db" /> +import type { APIRoute } from 'astro'; + +export const GET: APIRoute = async () => { + const authors = await db.run(sql`SELECT * FROM Author`); + return new Response(JSON.stringify(authors), { + headers: { + 'content-type': 'application/json', + }, + }); +}; |