0.2.0 • Published 7 months ago
@federa/shared v0.2.0
@federa/shared
Este paquete proporciona tipos, interfaces y utilidades compartidas para todos los paquetes de Federa.
Características
- Tipos comunes: Definiciones de tipos para usuarios, posts, interacciones, etc.
- Interfaces comunes: Interfaces para adaptadores de plataformas, clientes, etc.
- Utilidades HTTP: Funciones para realizar peticiones HTTP.
- Utilidades comunes: Funciones de utilidad para manipulación de datos, fechas, etc.
Instalación
npm install @federa/sharedUso
import {
SocialPlatformAdapter,
SocialClient,
NormalizedPost,
TimelineOptions,
get,
post,
parseJson
} from '@federa/shared';
// Usar tipos
const post: NormalizedPost = {
id: '123',
federatedId: 'fed123',
platform: 'mastodon',
content: 'Hello world!',
author: {
id: 'user1',
username: 'user1',
displayName: 'User One'
},
createdAt: new Date(),
likeCount: 0,
repostCount: 0,
replyCount: 0
};
// Usar utilidades HTTP
async function fetchData() {
const response = await get('https://api.example.com/data');
const data = await parseJson(response);
return data;
}
// Implementar interfaces
class MyAdapter implements SocialPlatformAdapter {
// Implementación de la interfaz
}Estructura
federa-shared
├── types
│ ├── federation.ts # Tipos para federación
│ ├── normalized.ts # Tipos normalizados
│ ├── post.ts # Tipos para posts
│ └── user.ts # Tipos para usuarios
├── interfaces
│ ├── SocialPlatformAdapter.ts # Interfaz para adaptadores
│ └── SocialClient.ts # Interfaz para clientes
└── utils
├── http.ts # Utilidades HTTP
└── common.ts # Utilidades comunesRelación con otros paquetes
Este paquete es una dependencia de todos los demás paquetes de Federa:
- @federa/federation: Utiliza los tipos y utilidades para implementar protocolos de federación.
- @federa/bluesky: Utiliza los tipos y utilidades para implementar el cliente de Bluesky.
- @federa/mastodon: Utiliza los tipos y utilidades para implementar el cliente de Mastodon.
- @federa/pixelfed: Utiliza los tipos y utilidades para implementar el cliente de PixelFed.
- @federa/lypub: Utiliza los tipos y utilidades para implementar el cliente de LyPub.
- @federa/integration: Utiliza los tipos y utilidades para implementar la capa de integración.
Licencia
AGPL-3.0