1.2.7 • Published 2 years ago

gizmo-api v1.2.7

Weekly downloads
4
License
MIT
Repository
github
Last release
2 years ago

gizmo-api

A minimal wrapper for interfacing with the Gizmo API.

Table of Contents

Installation

Node

npm i gizmo-api

Browser

<script src="https://cdn.gizmo.moe/scripts/gizmo-api@1.2.7.bundle.js"></script>

<script>
    // Module will then be exposed under the variable 'gizmo'
</script>

Building

If you want to build the module and bundle from source, use the following command:

npm run build

Or alternatively, you can either build the browser bundle or node module separately.

npm run build:node
npm run build:browser

Usage

JavaScript (CommonJS)

const gizmo = require("gizmo-api");

TypeScript (ESM)

import gizmo from "gizmo-api";

Example

Simple user search:

import { searchForUser } from "gizmo-api";

searchForUser("tja").then(user => {
    console.log(user);
});

This will log the following:

{
    "id": 1,
    "username": "Tjaz",
    "badges": [ "DEVELOPER", "MODERATOR" ],
    "avatar_url": "https://cdn.gizmo.moe/uploads/avatars/...",
    "banner_url": "https://cdn.gizmo.moe/uploads/banners/...",
    "about_me": "...",
    "created_at": 1534514387
}

Documentation

You are limited to 1 request per 0.1 seconds!

Types

User

A base user.

import type { User } from "gizmo-api"

interface User {
    id: number;
    username: string;
    badges: Badge[];
    avatar_url: string | null;
    banner_url: string | null;
    about_me: string;
    created_at: number;
}

Badge

The badge union.

import type { Badge } from "gizmo-api"

type Badge = "DEVELOPER" | "MODERATOR";

To check for whether a user has a certain badge, use the provided enum and method:

import { userHasBadge, BADGES } from "gizmo-api"

const BADGES = {
    DEVELOPER: "DEVELOPER",
    MODERATOR: "MODERATOR"
};

userHasBadge(user, BADGES.DEVELOPER);

Or alternatively, you can do the checking manually:

import { BADGES } from "gizmo-api"

user.badges.includes(BADGES.DEVELOPER);

AuthenticatedUser

interface AuthenticatedUser extends User {
    token: string;
}

Methods

Fetching a specific user by their ID

function getUserById (id: number): Promise<User>;

Fetching a specific user by their token

function getAuthenticatedUser (token: string): Promise<User>;

Searching for a user

type UserID = number;
type Username = string;
type SearchQuery = UserID | Username;

function searchForUser (query: SearchQuery): Promise<User>;

Logging in and receiving the token

function login (username: string, password: string): Promise<AuthenticatedUser>;

Checking if a user has a badge

function userHasBadge (user: User | AuthenticatedUser, badge: Badge): boolean;
1.2.7

2 years ago

1.2.6

2 years ago

1.2.5

2 years ago

1.2.4

2 years ago

1.2.3

2 years ago

1.2.0

3 years ago

1.2.2

3 years ago

1.2.1

3 years ago

1.1.2

3 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

0.1.2

4 years ago

0.1.1

4 years ago

0.1.0

5 years ago

0.0.96

6 years ago

0.0.95

6 years ago

0.0.91

6 years ago

0.0.9

6 years ago

0.0.87

6 years ago

0.0.85

6 years ago

0.0.8

6 years ago

0.0.7

7 years ago

0.0.6

7 years ago

0.0.5

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.2

7 years ago

0.0.1

7 years ago