@syadem/medcon-typescript
v1.0.2
Published
TypeScript SDK for Medcon conditions database
Readme
Medcon TypeScript SDK
SDK TypeScript inspire du gem Ruby medcon.
Installation
npm install @syadem/medcon-typescriptUtilisation
import { Medcon } from "@syadem/medcon-typescript";
const medcon = await Medcon.load({ lang: "fr" });
console.log(medcon.version);
console.log(medcon.repositories.conditions.find("29c5c921-422c-4475-8d60-c47a40c832c3"));API principale
Medcon.load({ cdnUrl?, lang?, hash? })Medcon.fetchLatestVersionHash({ cdnUrl? })Medcon.loadFromFile(path)medcon.repositories.conditions.find(idOrCode)medcon.repositories.conditionGroups.find(id)
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/medcon-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 parametres npm du package @syadem/medcon-typescript, ajouter un Trusted Publisher GitHub Actions avec l'organisation Syadem, le depot medcon et le workflow ci.yml. Autoriser npm publish pour la publication directe. Aucun token npm n'est necessaire 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,ConditionGroup,MedconDatabase).decodeMedconDatabasetransforme le binaire en objets TypeScript utilisables dans la lib.Medcon.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.
