UNPKG

geckoterm

Version:

Coin Gecko Terminal Open Source SDK

134 lines (94 loc) 3.9 kB
<div align="center"> [![npm latest package][npm-latest-image]][npm-url] [![Build Status][ci-image]][ci-url] [![License][license-image]][license-url] [![npm downloads][npm-downloads-image]][npm-url] [![Follow on Twitter][twitter-image]][twitter-url] </div> ## CoinGecko Terminal / TS SDK OpenAPI + TypeScript + Type Safe API ## Summary This package provides a type-safe SDK for interacting with the CoinGecko Terminal API. The main feature is a strongly typed API client generated using OpenAPI 3 specs. The repository is open source and hosted at [In This GitHub Repository](https://github.com/mguleryuz/geckoterm). Check out the [Changelog](./CHANGELOG.md) to see what changed in the latest releases. **Important Note**: This SDK only Support ESM (ECMAScript Modules). ## Quick Start ### Install the SDK You can install the CoinGecko Terminal SDK using Bun: ```bash bun add geckoterm ``` ### Use the SDK Here's an example of how to use the SDK to fetch the available networks: ```typescript import { getNetworks, setGeckotermAPIConfg } from 'geckoterm' // Set the config for the client with the Base URL and API key setGeckotermAPIConfg({ baseUrl: 'https://api.geckoterminal.com/api/v2', // Replace with your API key / if you have one headers: { Authorization: `Bearer ${process.env.GECKOTERM_API_KEY}`, }, }) // Use the internal method to call the API const response = await getNetworks({ query: { page: 1, }, }) // Log the response console.log('API response data:', response.data) ``` ## Install dependencies for Contributions ### Prerequisites Before running the SDK, ensure you have the following dependencies installed: - **Bun** (optional, but recommended): Used for runtime and testing. You can install the required dependencies as follows: #### Install Bun (for testing primitives, not required for the SDK itself) ```bash # Supported on macOS, Linux, and WSL curl -fsSL https://bun.sh/install | bash # Upgrade Bun occasionally bun upgrade ``` ## Compile API Client To generate the TypeScript client from the OpenAPI spec, run the following commands: ```bash # Step 1: Install dependencies bun install # Step 2: Compile the API client bun run compile:api ``` The `compile:api` command performs the following steps: - Uses the @hey-api/openapi-ts Generator CLI to generate the TypeScript API client from the OpenAPI 3 spec. - Formats the generated code using Prettier. ## How to make a release **For the Maintainer**: Add `NPM_TOKEN` to the GitHub Secrets. 1. Open a Pull Request with your changes. 2. Merge the PR into the `main` branch. 3. Checkout the `main` branch locally: ```bash git checkout main ``` 4. Pull the latest changes: ```bash git pull ``` 5. Run the release command: ```bash bun release: '' | alpha | beta -- --release-as minor | major ``` 6. Verify everything looks good (e.g., in `CHANGELOG.md`). 7. Follow the instructions provided by the release log. 8. Done! ## Summary This SDK provides a type-safe interface for interacting with the [CoinGecko Terminal API](https://github.com/mguleryuz/geckoterm). It uses OpenAPI to generate a fully typed API client, making it easier to work with the API in TypeScript. Check out the [GitHub repository](https://github.com/mguleryuz/geckoterm) for more information. [ci-image]: https://badgen.net/github/checks/mguleryuz/geckoterm/main?label=ci [ci-url]: https://github.com/mguleryuz/geckoterm/actions/workflows/ci.yaml [npm-url]: https://npmjs.org/package/geckoterm [twitter-url]: https://twitter.com/GeckoTerminal [twitter-image]: https://img.shields.io/twitter/follow/GeckoTerminal.svg?label=follow+GeckoTerminal [license-image]: https://img.shields.io/badge/License-MIT-blue [license-url]: ./LICENSE [npm-latest-image]: https://img.shields.io/npm/v/geckoterm/latest.svg [npm-downloads-image]: https://img.shields.io/npm/dm/geckoterm.svg