Skip to content

Lightweight JS/TS client for the YAZIO API. Track calories, log items, and build integrations easily.

Notifications You must be signed in to change notification settings

juriadams/yazio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yazio

A lightweight, zero-dependency JavaScript/TypeScript client for the undocumented YAZIO API. Easily track calories, log items, and integrate YAZIO into your projects.

Motivation

Built to enable personal dashboards and calendar integrations for calorie tracking. Open-sourced for community benefit.

Getting Started

Installing

bun add yazio
npm install yazio

Usage

Here's a quick example of how to use yazio in your project:

// Basic Usage

import { Yazio } from "yazio";

const yazio = new Yazio({
  credentials: {
    username: "juri@acme.co",
    password: "super-secure-password",
  },
});

const items = await getConsumedItems({ date: new Date(/* ... */) });
// Advanced Usage

import { Yazio } from "yazio";
import { kv } from "@vercel/kv";

const yazio = new Yazio({
  // Resolve cached tokens from KV. Tokens are stored and re-used from memory
  // as long as they are still valid.
  token: kv.get("tokens:juri@acme.co"),

  // If a fresh token was received, cache it.
  onRefresh: ({ token }) =>
    kv.set("tokens:juri@acme.co", JSON.stringify(token)),

  // If no token was fetched yet, exchange the credentials for a new token.
  credentials: {
    username: "juri@acme.co",
    password: "super-secure-password",
  },
});

const summary = await yazio.user.getSummary({ date: new Date(/* ... */) });

See source code docs in src/index.ts for detailed usage. Documentation following shortly.

About

Lightweight JS/TS client for the YAZIO API. Track calories, log items, and build integrations easily.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published