@devrev/typescript-sdk
TypeScript icon, indicating that this package has built-in type declarations

1.1.57 • Public • Published

Authorization

Setup an env variable DEVREV_TOKEN It will be used as an auth token by default, You can also pass in the url and token in client.setup() as a param (see below). It is also required to run tests.

Installation

npm install @devrev/typescript-sdk

The version can be found in package.json. The SDK is currently beta. Make sure that your project's package.json contains "type":"module" setting.

Example Usage of the Beta SDK

import {client, betaSDK} from "@devrev/typescript-sdk";

const devrevBetaSDK = client.setupBeta({ endpoint: "https://api.devrev.ai",
token: process.env.DEVREV_TOKEN });

async function test(){
    const response = await devrevBetaSDK.worksCreate({title:"New work item!",
    applies_to_part: "PROD-1",
    owned_by:["DEVU-1"],
    type: betaSDK.WorkType.Issue})
    console.log(response)
}

test()

Example Usage of the Public SDK

import {client, publicSDK} from "@devrev/typescript-sdk";

const devrevSDK = client.setup({ endpoint: "https://api.devrev.ai", token: process.env.DEVREV_TOKEN });

async function test(){
    const response = await devrevSDK.worksCreate({title:"New work item!", applies_to_part: "PROD-1", owned_by:["DEVU-16"], type: publicSDK.WorkType.Issue})
    console.log(response.status)
}

test()

Execute tests in the repo

npm test

Devrev SDK Utils Guide

Basic Setup

First, initialize the SDK with your DevRev credentials:

import { client } from '@devrev/typescript-sdk';
import { BetaSdkUtil } from '@devrev/sdk-utils';

// Initialize the DevRev SDK
const devrevSDK = new client.setupBeta({
  // Your DevRev credentials
  endpoint: "https://api.devrev.ai",
  token: "YOUR_TOKEN"
});

// Initialize the utils SDK
const sdkUtil = new BetaSdkUtil(devrevSDK);

Core Features

1. User Management

Fetch all Rev users associated with an account:

const accountId = "ACC-12345";
const revUsers = await sdkUtil.getAllRevUsersFromAccount(accountId);
// Returns array of RevUser objects

2. File Management

Upload Files

import { FileTypes } from '@devrev/sdk-utils';

// Prepare file object
const fileObject = {
  file_name: "example.txt",
  file_type: FileTypes.OTHERS,
  file: Buffer.from("Hello World"),
  custom_file_type: "text/plain" // Required when file_type is OTHERS
};

// Upload file
const artifactId = await sdkUtil.uploadFileToArtifact(fileObject);

Retrieve File Content

const artifactId = "ART-12345";
const fileContent = await sdkUtil.getFileContentFromArtifact(artifactId);

Error Handling

The SDK includes built-in API error handling that provides detailed error information:

try {
  await sdkUtil.uploadFileToArtifact(fileObject);
} catch (error) {
  // Error will be automatically handled with detailed logging:
  // === Error Details ===
  // Service: [function name]
  // API: [API endpoint]
  // Error Type: [error type]
  // Status Code: [status code]
  // Message: [error message]
}

TypeScript Support

The SDK is written in TypeScript and provides comprehensive type definitions for:

  • File management operations
  • User management
  • API Error handling

How to Contribute?

  1. Create a New Branch

    • Start by creating a separate branch for your feature or bug fix.
  2. Follow Best Coding Practices

    • Ensure your code adheres to the following guidelines:
      • Handle potential errors using try-catch blocks.
      • Use TypeScript types/interfaces from the SDK for type safety.
      • Check file type requirements before uploading.
      • Utilize built-in API error handling for consistent logging.
  3. Enhance BetaSDKUtil

    • Modify the BetaSDKUtil class to add new utilities.
    • Write comprehensive test cases to ensure functionality.
  4. Run Tests

    • Execute tests using:
      npm test
      
  5. Submit a Pull Request

    • Open a pull request with a clear and detailed description of your changes.

Readme

Keywords

none

Package Sidebar

Install

npm i @devrev/typescript-sdk

Weekly Downloads

1,374

Version

1.1.57

License

MIT

Unpacked Size

1.76 MB

Total Files

53

Last publish

Collaborators

  • devrev-npm
  • mladenba