@slickteam/nestjs-warp10
v2.2.2
Published
Module for Warp10 with Nestjs
Readme
Slick NestJS Warp10
Module NestJS pour intégrer facilement le client Warp 10 dans vos applications.
Installation
npm install @slickteam/nestjs-warp10
# ou
pnpm add @slickteam/nestjs-warp10Configuration
Ajoutez les variables d'environnement suivantes :
| Variable | Description | Valeur par défaut |
| ------------------------ | ------------------------------------ | ----------------------- |
| WARP10_URL | URL du serveur Warp 10 | http://localhost:8080 |
| WARP10_READ_TOKEN | Token de lecture | - |
| WARP10_WRITE_TOKEN | Token d'écriture | - |
| WARP10_HTTP_TIMEOUT | Timeout des requêtes HTTP (ms) | 5000 |
| WARP10_BASE_CLASS_NAME | Préfixe pour les noms de classes GTS | fr.slickteam.wattson |
Exemple de fichier .env :
WARP10_URL=http://localhost:8080
WARP10_READ_TOKEN=your_read_token
WARP10_WRITE_TOKEN=your_write_token
WARP10_HTTP_TIMEOUT=5000
WARP10_BASE_CLASS_NAME=fr.slickteam.exampleUtilisation
Import du module
import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { Warp10Module } from '@slickteam/nestjs-warp10';
@Module({
imports: [ConfigModule.forRoot(), Warp10Module],
})
export class AppModule {}Injection du service
import { Injectable } from '@nestjs/common';
import { DataPoint, GTS, Warp10Service } from '@slickteam/nestjs-warp10';
@Injectable()
export class MyService {
constructor(private readonly warp10Service: Warp10Service) {}
// Écrire des données
async writeData(): Promise<void> {
const dataPoint: DataPoint = {
className: 'my.sensor.temperature',
labels: { location: 'office' },
value: 23.5,
timestamp: Date.now() * 1000, // microsecondes
};
await this.warp10Service.update(undefined, [dataPoint]);
}
// Lire des données
async readData(): Promise<GTS[]> {
const result = await this.warp10Service.fetch(
undefined, // utilise le token par défaut
'~my.sensor.*', // classe (regex supportée)
{ location: 'office' },
'now', // début
-100, // 100 derniers points
);
return result.result;
}
// Exécuter du WarpScript
async executeWarpScript(): Promise<any> {
const script = `
[ $rt 'my.sensor.temperature' { 'location' 'office' } NOW -100 ] FETCH
`;
return this.warp10Service.exec(script, true); // true = injecte les tokens
}
}API
Warp10Service
| Méthode | Description |
| ------------------------- | -------------------------------------------------- |
| fetch() | Récupère des GTS depuis Warp 10 |
| update() | Écrit des DataPoints dans Warp 10 |
| delete() | Supprime des données sur une plage de temps |
| deleteByTimestamp() | Supprime des données à un timestamp précis |
| meta() | Met à jour les métadonnées des GTS |
| exec() | Exécute du WarpScript |
| execWithGtsListResult() | Exécute du WarpScript et retourne une liste de GTS |
Accès direct au client Warp 10
Le client @senx/warp10 est exposé via warp10Service.w10 pour les cas d'usage avancés.
Exports
Modèles
DataPoint- Point de données à écrireDataPointResult- Résultat de lectureGTS- Geo Time SeriesUpdatedWarp10Result- Résultat d'une opération d'écriture
Types (enums WarpScript)
BuckertizerWarp10Type- Fonctions de bucketization (mean, max, min, sum...)MapperWarp10Type- Fonctions de mapping (abs, delta, rate...)ReducerWarp10Type- Fonctions de réduction (mean, max, min, sum...)TimeUnits- Unités de temps (US, MS, NS)
Dépendances
| Package | Version |
| ---------------- | ---------- |
| @nestjs/common | ^11.1.12 |
| @nestjs/config | ^4.0.2 |
| @senx/warp10 | ^2.0.3 |
