haporedrive-sdk
v0.0.4
Published
SDK oficial para interactuar con la API de HaporeLabs Drive
Readme
HaporeDrive CDN SDK
SDK oficial para interactuar con el servicio CDN de HaporeLabs Drive.
Instalación
npm install haporedrive-sdkImportación
// Importación del cliente CDN
import { HaporeDriveCDN } from 'haporedrive-sdk';Uso
Inicialización
import { HaporeDriveCDN } from 'haporedrive-sdk';
// Crear cliente CDN
const cdnClient = new HaporeDriveCDN({
baseUrl: 'https://tu-dominio.com'
});Métodos Disponibles
| Método | Descripción | Parámetros | Tipo de Retorno |
|--------|-------------|------------|-----------------|
| getFolderContent | Obtiene el contenido de una carpeta CDN | path: string - Ruta completa de la carpeta en formato "categoria/nombre" | Promise<CDNFolderContent> |
| listFiles | Obtiene todos los archivos CDN | folder?: string - (Opcional) Filtrar por carpeta específica | Promise<CDNFilesResponse> |
Ejemplo completo de uso
import { HaporeDriveCDN, APIError, NetworkError } from 'haporedrive-sdk';
async function ejemploUso() {
// Crear cliente CDN
const cdnClient = new HaporeDriveCDN({
baseUrl: 'https://tu-dominio.com',
timeout: 5000
});
try {
// Obtener contenido de una carpeta
console.log('Obteniendo contenido de la carpeta...');
const content = await cdnClient.getFolderContent('documentos/proyectos');
console.log('Contenido de la carpeta:', content);
// Listar todos los archivos
console.log('Listando todos los archivos...');
const allFiles = await cdnClient.listFiles();
console.log('Total de archivos:', allFiles.count);
// Listar archivos de una carpeta específica
console.log('Listando archivos de una carpeta específica...');
const folderFiles = await cdnClient.listFiles('documentos');
console.log('Archivos en la carpeta documentos:', folderFiles.count);
} catch (error) {
if (error instanceof APIError) {
console.error(`Error de API: ${error.message} (Código: ${error.status})`);
} else if (error instanceof NetworkError) {
console.error(`Error de red: ${error.message}`);
} else {
console.error(`Error desconocido: ${error.message}`);
}
}
}
// Ejecutar ejemplo
ejemploUso();Uso de las URLs del CDN
El CDN proporciona URLs directas a los archivos que pueden ser accedidos directamente:
// Obtener contenido de una carpeta
const content = await cdnClient.getFolderContent('documentos/proyectos');
// Usar las URLs directamente en tu aplicación
content.files.forEach(file => {
console.log(`URL del archivo: ${file.url}`);
// Puedes usar esta URL directamente en <img src>, <a href>, etc.
});Tipos Disponibles
El SDK incluye tipos TypeScript completos para todos los objetos devueltos por la API:
CDNFile: Información sobre archivos individualesCDNFolder: Información sobre carpetasCDNFolderContent: Contenido completo de una carpetaCDNFilesResponse: Respuesta de listado de archivosCDNFileItem: Información sobre archivos individuales en CDN
Manejo de Errores
El SDK proporciona clases de error específicas:
import { APIError, NetworkError, ValidationError } from 'haporedrive-sdk';
try {
const content = await cdnClient.getFolderContent('categoria/nombre');
} catch (error) {
if (error instanceof APIError) {
console.log(`Error de API: ${error.message} (Código: ${error.status})`);
} else if (error instanceof NetworkError) {
console.log(`Error de red: ${error.message}`);
} else if (error instanceof ValidationError) {
console.log(`Error de validación: ${error.message}`);
} else {
console.log(`Error desconocido: ${error.message}`);
}
}Desarrollo
Construir el proyecto
npm run buildModo desarrollo (watch)
npm run devEjecutar pruebas
npm testLicencia
MIT
