levitate
by
grafana

Description: A tool for helping to understand APIs exported and consumed by NPM packages (or any TypeScript code).

View on GitHub ↗

Summary Information

Updated 2 hours ago
Added to GitGenius on September 18th, 2022
Created on November 29th, 2021
Open Issues & Pull Requests: 7 (+0)
Number of forks: 2
Total Stargazers: 30 (+0)
Total Subscribers: 128 (+0)

Issue Activity (beta)

Open issues: 3
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 198 days
Stale 30+ days: 3
Stale 90+ days: 2

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • bug (1)
  • enhancement (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Repository Insights (GitGenius)

Median issue/PR response: 4.2 days
Mean response time: 110.3 days
90th percentile: 751.8 days
Tracked items: 8

Most active contributors

Detailed Description

Levitate is a TypeScript-based tool developed by Grafana that analyzes and compares APIs exported and consumed by NPM packages and TypeScript code. The tool addresses a specific need in package management and API compatibility tracking by providing developers with detailed visibility into what a package exports and what code imports from packages.

The core functionality of Levitate centers on several key operations. Users can compare exports across different versions of the same package, which is particularly valuable for understanding breaking changes or additions between releases. The tool can list all imports that code consumes from packages, providing a complete picture of external dependencies at the API level. It can also enumerate all exports from a package, helping developers understand the public surface area they are working with. Additionally, Levitate includes a compatibility checking feature that allows developers to verify whether code written against one version of a package will work with another version, such as checking if code using @grafana/[email protected] remains compatible with @grafana/[email protected].

The tool provides flexibility through a configuration mechanism using a .levignore.js file. This file allows developers to exclude specific exports from analysis by specifying regex patterns for symbol names they want to ignore. This feature applies to the compare and is-compatible commands but does not affect list-imports or list-exports operations. The .levignore.js file must be located in the same directory where levitate is invoked.

According to GitGenius activity tracking, the repository shows moderate engagement with a median issue and pull request response latency of 99.7 hours across tracked items, though the mean extends to 2646.8 hours, suggesting occasional longer-running discussions. The most active contributors tracked include hugohaggmark with 6 events, academo with 5 events, and tolzhabayev with 3 events. The repository has generated activity around both bug reports and enhancement requests, indicating ongoing maintenance and feature development.

Levitate is classified within Grafana's ecosystem as part of the team-frontend-platform initiative and sits within a broader classification spanning cloud-native, visualization, observability, and monitoring domains. The tool shares contributors with other significant repositories including grafana/grafana, aider-ai/aider, and badlogic/pi-mono, suggesting it serves as a utility within a larger development ecosystem.

The project maintains a contributing guide for developers interested in participating in its development, indicating an open approach to community contributions. By focusing specifically on TypeScript and NPM package APIs, Levitate fills a niche in the tooling landscape for teams that need programmatic understanding of package compatibility and API surface changes, making it particularly relevant for large-scale frontend platform development where managing dependencies across multiple package versions is a critical concern.

levitate
by
grafanagrafana/levitate

Repository Details

Fetching additional details & charts...