Monetra Core is het hart van het Monetra-ecosysteem. Het is de uitgeklede, hoogpresterende engine die uitsluitend is ontworpen voor financiële correctheid.
Terwijl het volledige Monetra-framework grootboeken, audittrails en complexe financiële instrumenten biedt, doet Monetra Core één ding en doet het perfect: veilige financiële rekenkunde.
Het bestaat voor ontwikkelaars die de betrouwbaarheid van nauwkeurige geldverwerking nodig hebben, maar hun eigen abstracties erop willen bouwen. Het is de primitieve laag - de "physics engine" voor je financiële applicatie.
De Missie: Nul Ambiguïteit
In financiële software is ambiguïteit een bug. 10 / 3 is niet 3.33. Het is een bewerking die een quotiënt en een rest oplevert, en je code moet beslissen wat er met die rest gebeurt.
Monetra Core dwingt deze beslissingen expliciet te zijn. Het biedt de essentiële types en bewerkingen om te garanderen dat:
- Geld nooit als een float wordt behandeld.
- Valuta's nooit impliciet worden gemengd.
- Afronding nooit per ongeluk gebeurt.
Wat Zit Er In "Core"?
Monetra Core is ontworpen om lichtgewicht en zero-dependency te zijn. Het bevat alleen de niet-onderhandelbare primitieven voor financiële engineering.
1. Het Money-Type
Een pure, onveranderlijke representatie van monetaire waarde. Het slaat het bedrag op in kleinere eenheden (zoals gehele centen) en draagt de valutacode als onderdeel van zijn type-signatuur.
// Het is onmogelijk om valuta's per ongeluk te mengen
const prijs = new Money(1000, "USD");
const verzending = new Money(500, "EUR");
// Dit gooit onmiddellijk een compile-time of runtime error
const totaal = prijs.add(verzending);
2. Nauwkeurige Rekenkunde
Standaard wiskundige bewerkingen (add, subtract, multiply, allocate) die precisie garanderen.
- Toewijzing: Verdeel een monetair bedrag in delen zonder een enkele cent te verliezen.
- Schaal: Vermenigvuldig met een factor (zoals een belastingtarief) met expliciete afrondingsstrategieën.
3. Valutaregister
Een minimaal, uitbreidbaar register voor valutadefinities. Het wordt geleverd met standaard ISO 4217-valuta's, maar stelt je in staat om aangepaste tokens, loyaliteitspunten of interne credits te definiëren.
Waarom Core Gebruiken?
Je kiest mogelijk voor Monetra Core boven het volledige Monetra-framework als:
- Je een bibliotheek bouwt: Je wilt financiële types exporteren zonder een grote afhankelijkheidsboom aan je gebruikers op te dringen.
- Je een eigen persistentielaag hebt: Je hebt het grootboek of de auditgeschiedenis van Monetra niet nodig omdat je gegevens op een specifieke manier opslaat (bijv. een aangepast SQL-schema of een blockchain).
- Bundelgrootte belangrijk is: Je draait in een serverless function of een edge worker en hebt de kleinst mogelijke footprint nodig.
De "Core"-Filosofie
Monetra Core volgt de Unix-filosofie: doe één ding en doe het goed.
Het respecteert het feit dat financiële systemen divers zijn. Een crypto-exchange, een salarisleverancier en een e-commerce checkout hebben sterk verschillende behoeften voor opslag en rapportage. Maar ze delen allemaal dezelfde behoefte aan correcte wiskunde.
Monetra Core lost de wiskunde op. De rest is aan jou.
Kenmerken in een Oogopslag
- Standaard Onveranderlijk: Waarden veranderen nooit; bewerkingen retourneren nieuwe instanties.
- Afrondingsstrategieën: Volledige ondersteuning voor "Rond Half Omhoog", "Rond Half Even" (Bankiersafronding), en meer.
- Toewijzingsalgoritmen: Verdeel fondsen (bijv. een rekening van $100 in 3 delen splitsen) met behoud van de totale waarde ($33,33, $33,33, $33,34).
- Type-Veiligheid: Benut TypeScript om financiële fouten tijdens compilatie op te vangen.
Voorbeeld: Het Toewijzingsprobleem
De klassieke test van elke financiële bibliotheek is hoe het deling afhandelt.
import { Money, Currency } from "@zugobite/monetra-core";
const rekening = new Money(100, Currency.USD); // $1.00
const verdeling = rekening.allocate([1, 1, 1]);
// Resultaat:
// [34 cent, 33 cent, 33 cent]
// Totaal: 100 cent. Niets verloren.
Monetra Core handelt de "restverdeling" automatisch af, zodat de som van de delen altijd gelijk is aan het geheel.
Waar Kan Ik Meer Leren?
- Repository: GitHub Repo
- NPM-Pakket: Officieel NPM-pakket
Monetra Core is het fundament. Bouw er met vertrouwen op.