@syadem/vaccination-characteristics
v1.2.1
Published
TypeScript SDK for the Syadem vaccination characteristics database
Readme
Vaccination Characteristics TypeScript SDK
SDK TypeScript pour la base de caractéristiques vaccinales Syadem.
Installation
npm install @syadem/vaccination-characteristicsUtilisation
import { VaccinationCharacteristics } from "@syadem/vaccination-characteristics";
const database = await VaccinationCharacteristics.load({ lang: "fr" });
console.log(database.version);
console.log(database.repositories.conditions.find("29c5c921-422c-4475-8d60-c47a40c832c3"));API principale
VaccinationCharacteristics.load({ cdnUrl?, lang?, hash? })VaccinationCharacteristics.fetchLatestVersionHash({ cdnUrl? })VaccinationCharacteristics.loadFromFile(path)(Node.js uniquement)database.repositories.conditions.find(idOrCode)
Regenerer depuis les .proto
La commande equivalent de ruby/gen_proto.sh est:
npm run gen:protoElle lit tous les fichiers ../schemas/*.proto et regenere le descripteur dans src/generated/vaccination-characteristics-proto.json.
Publication via CI
Le workflow GitHub Actions CI publie le package sur npm en mode manuel avec l'option publish_target: typescript.
Dans les paramètres npm du package @syadem/vaccination-characteristics, ajouter un Trusted Publisher GitHub Actions avec l'organisation Syadem, le dépôt vaccination-characteristics et le workflow ci.yml. Autoriser npm publish pour la publication directe. Aucun token npm n'est nécessaire dans GitHub Actions.
Le script de publication est publish.sh et execute:
npm publish --access publicComment Proto fonctionne ici
Le fichier telecharge (*.db) est un binaire Protobuf.
- Les schemas
.proto(dansschemas/) decrivent la structure des donnees. - Le serveur renvoie un fichier binaire encode selon ces schemas.
src/proto.tsreconstruit ces types Protobuf en TypeScript (Version,Condition,VaccinationCharacteristicsDatabase).decodeVaccinationCharacteristicsDatabasetransforme le binaire en objets TypeScript utilisables dans la lib.VaccinationCharacteristics.load()s'appuie dessus, puis construit les repositories indexes.
En resume: Proto sert de format compact et strict pour transporter la base, puis la lib TypeScript decode ce format pour exposer une API simple.
