Skip to the content

Capsid menu

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

The functions of client.ts
FunctionLinesComplexityCoveredCRAPMutation
getDb9 to 111No data: no coverage report in this mapNo data: no coverage report in this mapNo data: no mutants in this code
publiclyVisible15 to 201No data: no coverage report in this mapNo data: no coverage report in this mapNo data: no mutants in this code
isBlogPost22 to 241No data: no coverage report in this mapNo data: no coverage report in this mapNo data: no mutants in this code
notTrashed27 to 291No data: no coverage report in this mapNo data: no coverage report in this mapNo 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);
}