РекомендуетсяSvelteKitTypeScript

SvelteKit: server-only modules

Секреты и доступ к БД держите в серверных модулях; клиенту возвращайте только разрешённые поля.

Проверено Изменено

Плохо

// +page.ts: универсальный load
import { db } from "$lib/db";

Хорошо

// +page.server.ts: только сервер
import { db } from "$lib/server/db";
export async function load() {
  return { products: await db.product.findMany({
    select: { id: true, title: true },
    orderBy: { id: "asc" }, take: 50
  }) };
}

Почему это важно

Универсальный код может попасть в клиентскую сборку. Серверная загрузка тоже передаёт возвращённые данные браузеру.

Когда применять

SvelteKit 2; db — пример ORM-клиента проекта. В приватной выдаче добавьте проверку сессии и ограничение владельца. $lib/server и private env нельзя импортировать в клиентский код.

Кто что делает

Человек

Определяет, какие данные публичны.

AI-агент

Размещает модуль на сервере, проверяет состав ответа и сборку.

Пример применения

Каталог возвращает только id и title. Закупочная цена хранится в БД, но не включается в select и данные страницы.

Как проверить у себя

  • Секреты отсутствуют в клиентской сборке.
  • Ответ load не содержит закрытых полей.
ПервоисточникиИстория изменений на GitHub

Дата проверки отражает содержательную сверку. Синхронизация сайта не обновляет её автоматически.