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 🙏

© 2024 – Pkg Stats / Ryan Hefner

turso-client

v0.0.15

Published

Turso client library

Downloads

27

Readme

turso-client

A TypeScript client for the Turso API, providing easy access to Turso's database management features.

Installation

To install dependencies:

bun install

Usage

First, import the TursoClient and create an instance:

import { TursoClient } from "turso-client";

const client = new TursoClient({ apiKey: env.TURSO_API_KEY });

API Reference

API Tokens

Manage API tokens for authentication.

// Create a new token
client.apiTokens.create("my-new-token");

// Validate the current token
client.apiTokens.validate();

// List all tokens
client.apiTokens.list();

// Revoke a token
client.apiTokens.revoke("my-token-name");

Databases

Manage Turso databases.

// List databases
client.databases.list(env.TURSO_ORG, env.TURSO_GROUP);

// Create a new database
client.databases.create(env.TURSO_ORG, {
  name: "database-name",
  group: env.TURSO_GROUP,
  is_schema: false, // optional
  schema: "schema-name", // optional
  size_limit: "1GB", // optional
  seed: {
    // optional
    type: "database",
    name: "database-name",
    url: "libsql://test.turso.io",
    timestamp: "2021-01-01T00:00:00Z",
  },
});

// Retrieve database details
client.databases.retrieve(env.TURSO_ORG, "database-name");

// Retrieve database configuration
client.databases.retrieveConfiguration(env.TURSO_ORG, "database-name");

// Delete a database
client.databases.delete(env.TURSO_ORG, "database-name");

// Create a database token
client.databases.createToken(
  env.TURSO_ORG,
  "database-name",
  { expiration: "24h", authorization: "full-access" }, // optional
  { permissions: { read_attach: { databases: ["testname"] } } } // optional
);

// Invalidate a database token
client.databases.invalidateToken(env.TURSO_ORG, "database-name");

// List database instances
client.databases.listInstances(env.TURSO_ORG, "database-name");

Locations

Manage and retrieve information about Turso locations.

// List all available locations
client.locations.list();

// Get the closest region
client.locations.closest();

Organizations

Manage Turso organizations and their members.

// List organizations
client.organizations.list();

// List organization members
client.members.list(env.TURSO_ORG);

// Add a new member to an organization
client.members.add(env.TURSO_ORG, {
  username: "newuser",
  role: "member",
});

// Remove a member from an organization
client.members.remove(env.TURSO_ORG, "username");

Testing

To run the test suite:

bun test

License

This project is licensed under the MIT License.

Notes

  • Make sure to replace env.TURSO_API_KEY, env.TURSO_ORG, and env.TURSO_GROUP with your actual Turso API key, organization name, and group name respectively.