npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

splitwise-sdk

v1.6.0

Published

Splitwise API SDK for Node.js

Downloads

168

Readme

Splitwise SDK

Dieses Projekt ist ein SDK für die Splitwise API. Es unterstützt sowohl die OAuth‑basierte Authentifizierung (über consumerKey/consumerSecret) als auch die direkte Nutzung eines vorhandenen accessToken.

Nutzung

Erstelle eine Instanz des Clients und rufe API-Endpunkte auf. Beispiel:

import { SplitwiseClient } from "splitwise-sdk";

const sw = new SplitwiseClient({
  consumerKey: "your_consumer_key",
  consumerSecret: "your_consumer_secret",
  // Alternativ:
  // accessToken: 'your_access_token'
  logger: console.log,
});

sw.getCurrentUser()
  .then((userData) => console.log("Aktueller Benutzer:", userData))
  .catch((err) => console.error("Fehler:", err));

Architektur

Eine detaillierte Beschreibung der Projektarchitektur, der Komponenten und des Entwicklungs-Workflows findest du in der ARCHITEKTUR.md.

API-Endpunkte

Das SDK unterstützt die meisten Endpunkte, die in der OpenAPI‑Definition der Splitwise API definiert sind, darunter:

  • Benutzerverwaltung: getCurrentUser, getUser, updateUser
  • Gruppenverwaltung: getGroups, getGroup, createGroup, deleteGroup, undeleteGroup, addUserToGroup, removeUserFromGroup
  • Freunde: getFriends, getFriend, createFriend, createFriends, deleteFriend
  • Währungen: getCurrencies
  • Ausgaben: getExpense, getExpenses, createExpense, updateExpense, deleteExpense, undeleteExpense
  • Kommentare: getComments, createComment, deleteComment
  • Benachrichtigungen: getNotifications
  • Kategorien: getCategories

Weitere Details zu den Parametern und Rückgabetypen findest du in der OpenAPI‑Definition.

Entwicklung

Semantic Commits

Dieses Projekt verwendet semantic-release in Kombination mit @semantic-release/commit-analyzer.
Daher müssen alle Commits einem bestimmten Format folgen und einen gültigen Typ enthalten.

Wenn du magst, kann ich auch noch einen kurzen Beispiels-Commit oder weiterführende Hinweise ergänzen.

Typen aus OpenAPI generieren (optional)

Download OpenAPI specification on dev.splitwise.com

Falls du automatische Typdefinitionen aus der OpenAPI-Datei erstellen möchtest, kannst du das Tool openapi-typescript verwenden.

Schritt 1: OpenAPI-Schema korrigieren (Optionale Felder entfernen)

Da OpenAPI oft alle Felder als optional definiert, stellen wir sicher, dass required-Felder korrekt gesetzt werden, indem wir unser Skript ausführen:

node update_openapi.js

Dadurch wird die Datei api.json aktualisiert und als api_updated.json gespeichert.

Schritt 2: OpenAPI in TypeScript-Typen umwandeln

Nun können wir aus der bereinigten OpenAPI-Datei TypeScript-Typen generieren:

npx openapi-typescript openapi_updated.json --output src/types/openapi-types.ts

Das erzeugt eine Datei openapi-types.ts, die die Schnittstellen für deine API enthält.

Lokale Entwicklung

Um die lokale Entwicklung zu erleichtern und Änderungen direkt in anderen Projekten zu testen, kannst du npm link verwenden. Dies erlaubt es, dein Paket in einem anderen Node.js-Projekt zu nutzen, ohne es erneut zu veröffentlichen.

  1. Link im lokalen Repository erstellen:
    Wechsle in das Verzeichnis deines Projekts und erstelle den globalen Link:

    npm link
  2. Projekt mit dem lokalen Paket verbinden:
    In einem anderen Projekt, das dein Paket nutzt, kannst du nun den Link setzen:

    npm link splitwise-sdk

    Dadurch wird das lokale Entwicklungsverzeichnis als Abhängigkeit eingebunden.

  3. Änderungen testen:
    Nach jeder Code-Änderung kannst du dein Paket neu bauen und die Änderungen sind direkt verfügbar:

    npm run build
  4. Link wieder entfernen (optional):
    Falls du wieder zur offiziellen Version aus dem npm-Registry wechseln möchtest, entferne den Link mit:

    npm unlink splitwise-sdk

Durch diese Vorgehensweise kannst du Änderungen am SDK effizient testen, ohne es jedes Mal neu veröffentlichen zu müssen. 🚀

Lizenz

Dieses Projekt steht unter der MIT‑Lizenz.