app/db/client.ts
24 lines and 4 functions in DrDustinEdwards/dustinedwards-info, at commit 1590ba4 on 2026-10-24. This file on GitHub.
Functions
| Function | Lines | Complexity | Covered | CRAP | Mutation |
|---|---|---|---|---|---|
| getDb | 9 to 11 | 1 | No data: no coverage report in this map | No data: no coverage report in this map | No data: no mutants in this code |
| publiclyVisible | 15 to 20 | 1 | No data: no coverage report in this map | No data: no coverage report in this map | No data: no mutants in this code |
| isBlogPost | 22 to 24 | 1 | No data: no coverage report in this map | No data: no coverage report in this map | No data: no mutants in this code |
| notTrashed | 27 to 29 | 1 | No data: no coverage report in this map | No data: no coverage report in this map | No data: no mutants in this code |
Imports
It imports app/db/schema.ts, app/lib/search/visibility.mjs. Imported by app/db/cv.ts, app/db/dictionary.ts, app/db/index.ts, app/db/media.ts, app/db/members.ts, app/db/pages.ts, app/db/phages.ts, app/db/posts.ts, app/db/procedure-versions.ts, app/db/procedures.ts, app/db/publications.ts, app/db/registry.ts, app/db/roster.ts, app/db/settings.ts, app/db/webmentions.ts, app/lib/citations.server.ts.
Source
// The connection and the predicates more than one table module composes.
// Only `getDb` and `publiclyVisible` are re-exported from `~/db`.
import { PUBLISHED_STATUS } from "~/lib/search/visibility.mjs";
import { and, eq, isNull, lte, or } from "drizzle-orm";
import { drizzle } from "drizzle-orm/d1";
import * as schema from "./schema";
import { media, posts } from "./schema";
export function getDb(env: Env) {
return drizzle(env.DB, { schema: schema });
}
export type DB = ReturnType<typeof getDb>;
export function publiclyVisible() {
return and(
eq(posts.status, PUBLISHED_STATUS),
or(isNull(posts.publishAt), lte(posts.publishAt, new Date())),
);
}
export function isBlogPost() {
return and(eq(posts.kind, "post"), publiclyVisible());
}
/** Reconciliation readers must not use this filter, or a rebuild restores trashed rows. */
export function notTrashed() {
return isNull(media.trashedAt);
}