@windash/apiclient
v0.1.0
Published
Cliente oficial de windash: consulta los datos gestionados por la plataforma (usuarios, roles, avisos, actividades) de tu proyecto con una API fluida estilo dbcube.
Maintainers
Readme
@windash/apiclient
Cliente oficial de windash para consultar, desde tu propia API, los datos que la plataforma gestiona por ti (usuarios, roles, avisos, actividades, web clients) de tu proyecto. API fluida inspirada en dbcube.
Instalación
npm install @windash/apiclientConfiguración
Define dos variables de entorno (la tercera es opcional):
WINDASH_API_PROJECT=6 # id de tu proyecto en windash
WINDASH_API_KEY=wk_xxxxxxxxxxxxxxxx # clave de una API Key del proyecto (Auth → API Keys)
WINDASH_API_URL=https://api.windash.app # opcional: host del client-apiLa WINDASH_API_KEY es la clave secreta que se muestra una sola vez al crear
una API Key en el panel (Auth → API Keys → Nueva API Key). Debe tener acceso
a los módulos que vas a consultar (rutas /* o específicas).
Uso
import { wapiclient } from "@windash/apiclient";
// Todos los usuarios del proyecto → [{...}, {...}]
const users = await wapiclient.module("users").get();
// Un usuario por id → {...} | null
const user = await wapiclient.module("users").find(1);
// El primero que cumpla el filtro → {...} | null
const admin = await wapiclient
.module("users")
.where("access_key", "=", "super_admin")
.first();
// Filtros, orden, límite
const activos = await wapiclient
.module("users")
.where("status", "=", "ACTIVO")
.orderBy("id", "DESC")
.limit(20)
.get();
// Conteo
const total = await wapiclient.module("users").count();
// Atajo
const roles = await wapiclient.get("roles");Módulos disponibles
users · roles · avisos · activities · web_clients
Los campos sensibles nunca se exponen (p. ej. password, refresh_token).
Operadores de where
= · != · > · >= · < · <= · like · in · IS NULL · IS NOT NULL
wapiclient.module("users").where("email", "like", "@gmail.com").get();
wapiclient.module("users").where("id", "in", [1, 2, 3]).get();
wapiclient.module("users").where("end_date_valid", "IS NULL").get();Multi-proyecto
import { createClient } from "@windash/apiclient";
const otro = createClient({ project: 7, key: "wk_...", url: "https://api.windash.app" });
const users = await otro.module("users").get();Errores
Los fallos lanzan WindashApiError con status y code:
import { WindashApiError } from "@windash/apiclient";
try {
await wapiclient.module("users").get();
} catch (e) {
if (e instanceof WindashApiError) console.error(e.code, e.status, e.message);
}