RequestKit
Sdk

Node.js SDK

Using RequestKit's Nodejs SDK to manage feature requests

Installation

npm install @requestkit/node

This package is made using typescript and comes with .d.ts files. You should get autocomplete in your editor. If you don't get it, head to api-reference to see the payloads and responses.

Usage

import { RequestKit } from "@requestkit/node";
 
const requestKit = new RequestKit({
  apiKey: "your-api-key",
  // Optional parameters
  baseURL: "https://requestkit.app/api/v1", // Optional custom API URL
  retries: 3, // Optional number of retries for API calls (default: 3)
});

API Keys allow anyone with the key to create feature requests, upvote them or remove the upvotes. It is advised to use API keys serverside with proper authorization in your application.

More Granular Access Control is planned for the future.

Methods

Get feature requests

const requests = await requestKit.getRequests({
  // Optional query parameters
  page: 1,
  limit: 10,
  includeRequester: false,
  orderBy: ["date", "upvotes"], // Sort by date and upvotes
  order: "desc", // "asc" or "desc"
  userIdentifier: "user-123", // To check if requests are upvoted by this user
});

Create a feature request

const featureRequest = await requestKit.createRequest({
  title: "Feature Request Title",
  description: "Feature Request Description",
  requester: {
    identifier: "user-123",
    email: "[email protected]", // optional
    name: "John Doe", // optional
  }, // optional
});

Upvote a feature request

const upvote = await requestKit.upvoteRequest(featureRequest.id, {
  user: {
    identifier: "user-123",
    email: "[email protected]", // optional
    name: "John Doe", // optional
  },
});

Remove an upvote from a feature request

const removedUpvote = await requestKit.removeUpvoteFromRequest(
  featureRequest.id,
  {
    userIdentifier: "user-123",
  }
);

Get a feature request

const featureRequest = await requestKit.getRequest(featureRequest.id, {
  // Optional query parameters
  includeRequester: false, // Include requester details
  includeComments: false, // Include comments count
  userIdentifier: "user-123", // To check if upvoted by this user
});

Get comments for a feature request

const comments = await requestKit.getComments(featureRequest.id, {
  // Optional query parameters for pagination
  page: 1,
  limit: 10,
});

Create a comment

const comment = await requestKit.createComment(featureRequest.id, {
  content: "This is a comment",
  commentor: {
    identifier: "user-123",
    email: "[email protected]", // optional
    name: "John Doe", // optional
  },
});

Delete a comment

const deleted = await requestKit.deleteComment(featureRequest.id, commentId, {
  userIdentifier: "user-123", // Required to verify comment ownership
});

On this page