Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@codacy/api-typescript

Package Overview
Dependencies
Maintainers
2
Versions
193
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@codacy/api-typescript

Codacy API client for Typescript

  • 1.2.23
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
26
decreased by-76.36%
Maintainers
2
Weekly downloads
 
Created
Source

codacy-api-typescript

Typescript wrapper for the Codacy API

Requirements

If you're running Linux

sudo apt-get install libunwind8

The AutoRest version we are using only works up to Node.js v14.

Usage

Generate the code

To run the entire process:

npm ci

To fetch the current version of the API:

npm run fetch-api

To generate the code:

npm run generate

Mock an API server

Current API mock-server doesn't support a basePath, so you need to fetch the API, comment it, and then generate the client. Now you can mock an API server for development or testing purposes.

.\mock-api.sh

Using the library in React

Locally, run yarn link from this project root folder, and then run yarn link @codacy/api-typescript on the project you want to use it. The best practice for using this library would be:

1. Creating a context
import React from 'react'
import { Client } from '@codacy/api-typescript'

const AppContext = React.createContext<Client | null>(null)

export default AppContext
2. Wrapping your app in that context provider
...
import ApiContext from './ApiContext'
import { Client } from '@codacy/api-typescript'
...
const App: React.FC = () => {
  return (
    <ApiContext.Provider
        value={
            new Client({
                baseUri: process.env.REACT_APP_CODACY_API_URI,
            })
        }>
    {/* Your app's code here */}
    </ApiContext.Provider>
...
3. Using the client's context to fetch data
import React, { useState, useEffect, useContext } from 'react'
import ApiContext from '../ApiContext'
import { User, BaseApiError, UnauthorizedApiError } from '@codacy/api-typescript/lib/models'

export interface UserInformationProps {
  id: number
}

export const UserInformation: React.FC<UserInformationProps> = ({ id }) => {
  const [isLoading, setIsLoading] = useState<boolean>(true)
  const [user, setUser] = useState<User>()
  const [error, setError] = useState<BaseApiError>()
  const client = useContext(ApiContext)

  useEffect(() => {
    async function fetchUser() {
      try {
        const response = await client!.getUser(id)
        setUser(response!.data)
      } catch (err) {
        if ( err instanceof UnauthorizedApiError ) {
          // catch specific errors
        } else {
          setError(err as BaseApiError)
        }
      } finally {
        setIsLoading(false)
      }
    }

    fetchUser()
  }, [client, id])

  return (
    <>
      {isLoading && <span>Loading ...</span>}
      {!!user && (
        <span>
          {user.username} ({user.mainEmail})
        </span>
      )}
      {!isLoading && !!error && (
        <span>
          {error.message} ({error.code})
        </span>
      )}
    </>
  )
}

Developement

Requirements

  • Autorest (npm install -g autorest)

What is Codacy

Codacy is an Automated Code Review Tool that monitors your technical debt, helps you improve your code quality, teaches best practices to your developers, and helps you save time in Code Reviews.

Free for Open Source

Codacy is free for Open Source projects.

License

codacy-api-typescript is available under the MIT license. See the LICENSE file for more info.

FAQs

Package last updated on 17 Jul 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc