@ossintel/github-normalizer
v0.1.3
Published
Robust, typed utilities to fetch, normalize, and sanitize raw GitHub REST and GraphQL API responses into consistent domain structures for open-source analytics.
Maintainers
Readme
@ossintel/github-normalizer
@ossintel/github-normalizer: Typed utilities for fetching and normalizing GitHub REST and GraphQL data into a consistent domain model for analytics and reporting.
@ossintel/github-normalizer
Typed utilities for fetching and normalizing GitHub data.
Purpose
GitHub's REST and GraphQL APIs expose excellent data but with inconsistent shapes and multiple endpoints.
This package provides a stable domain model consumed by the rest of OSSIntel.
Responsibilities
- Fetch GitHub data
- Normalize responses
- Hide API complexity
- Handle pagination
- Handle rate limits
- Provide strongly typed models
Non-goals
- Scoring
- AI
- Business logic
- UI
Planned API
fetchDeveloper();
fetchRepositories();
fetchRepository();
fetchOrganizations();
fetchContributors();
fetchLanguages();
fetchReleases();Output
Always returns normalized domain models.
Never expose raw GitHub responses.
Design Principles
- Pure TypeScript
- Strong typing
- Stable contracts
- Easily replaceable backend
✨ Why @ossintel/github-normalizer?
- Consistent Domain Model: Normalizes disparate GitHub REST and GraphQL responses into a single, clean TypeScript interface.
- Auto Pagination & Rate Limit Handling: Simplifies fetching multi-page repository lists and respects API rate limits transparently.
- Zero Ecosystem Pollution: Keeps business logic, scoring, and UI code out of the network fetching layer.
📦 Installation
$ pnpm add @ossintel/github-normalizeror
$ npm install @ossintel/github-normalizeror
$ yarn add @ossintel/github-normalizerLicense
This library is licensed under the MIT open-source license.
