@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 tipoTestContextpara 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.