@velastack/pocketbase

Vinculaciones de PocketBase para SvelteKit: un middleware para hooks.server.ts, un cliente tipado y esquemas de colección con tipos seguros. Este es el paquete que importa el código generado.

npm install @velastack/pocketbase

Lo instalan por ti vela create y vela enable backend.

Puntos de entrada

  • @velastack/pocketbase - El middleware y el cliente
  • @velastack/pocketbase/form - Helpers de Superforms
  • @velastack/pocketbase/api-key - Generación y verificación de claves de API
  • @velastack/pocketbase/testing - El tipo TestContext para las pruebas de servidor

handlePocketbase

Configura el middleware de PocketBase en hooks.server.ts.

import { handlePocketbase } from '@velastack/pocketbase';
import {
    POCKETBASE_URL,
    POCKETBASE_SUPERUSER_EMAIL,
    POCKETBASE_SUPERUSER_PASSWORD
} from '$env/static/private';

export const handle = handlePocketbase({
	pocketbaseUrl: POCKETBASE_URL,
	superuserEmail: POCKETBASE_SUPERUSER_EMAIL,
	superuserPassword: POCKETBASE_SUPERUSER_PASSWORD
})

Los bloques auth, api y apiKeys los añaden a esta llamada los comandos enable. Coloca dos clientes en locals: admin, que consulta la base de datos directamente, y pb, que está limitado al usuario autenticado.

setDefaultData

Establece los datos por defecto de un formulario a partir de un registro de PocketBase. Se exporta desde el punto de entrada /form.

import { setDefaultData } from '@velastack/pocketbase/form';

export const actions = {
	default: async ({ locals, request }) => {
        const record = await locals.admin.collection('posts').getOne(1);
        setDefaultData(form, record);
        return { form };
    }
}

setPocketbaseErrors

Establece los errores de PocketBase como errores de Superforms cuando falla el envío de un formulario.

import { setPocketbaseErrors } from '@velastack/pocketbase/form';

export const actions = {
	default: async ({ locals, request }) => {
        try {
            await locals.admin.collection('posts').create(form.data);
        } catch (error) {
            setPocketbaseErrors(form, error);
            return fail(400, { form });
        }
    }
}

Claves de API

Las primitivas detrás de vela enable api-keys. Las claves se guardan con hash, así que el secreto solo se muestra una vez, al generarlo.

import {
    generateApiKeySecret,
    hashApiKey,
    verifyApiKey
} from '@velastack/pocketbase/api-key';

Tipos generados

vela sync amplía este paquete con Models, Collections y Schemas para las colecciones de tu proyecto, de modo que locals.pb.collection('posts') queda tipado.