Skip to content

Types ​

Projex exports TypeScript types for all data structures. Import types from the main entry point.

Available Types ​

Core Types ​

TypeDescription
ProjexProjectNormalized project object
ProjexProjectInputProject input configuration
ProjectTypeProject type union
ProjectStatusProject status union

Stats Types ​

TypeDescription
ProjectStatsCombined stats interface
GitHubStatsGitHub-specific stats
NpmStatsnpm-specific stats
ProductHuntStatsProduct Hunt-specific stats
YouTubeStatsYouTube-specific stats
GumroadStatsGumroad-specific stats
LemonSqueezyStatsLemon Squeezy-specific stats
DevToStatsDev.to-specific stats
NormalizedStatNormalized stat for display

Data Types ​

TypeDescription
ProjectLinksProject link URLs
ProjectStruggleChallenge or learning from the project
ProjectTimelineEntryTimeline milestone entry
ProjectPostBlog post or article reference
ProjectCommitGitHub commit data
ProjectCommitAuthorCommit author information

Fetched Data Types ​

TypeDescription
GitHubRepoDataGitHub API response
FetchReposResultResult object for fetchGitHubRepos
FetchReposErrorError type for fetchGitHubRepos
NpmPackageDatanpm API response
ProductHuntPostDataProduct Hunt API response
YouTubeChannelDataYouTube API response
GumroadProductDataGumroad API response
LemonSqueezyStoreDataLemon Squeezy API response
DevToUserDataDev.to API response
DevToArticleDataDev.to article data

Utility Types ​

TypeDescription
ProjexProjectInputCompatCompatibility type for flexible/partial project input
SortValueAllowed sort values for sortProjects
ProjexProjectInputZodZod schema type for project validation
FuseOptionsFuse.js configuration options

Schema Types ​

TypeDescription
projexProjectInputSchemaZod validation schema for ProjexProjectInput
PersonSchemaSchema.org Person JSON-LD
SoftwareApplicationSchemaSchema.org SoftwareApplication JSON-LD
GeneratePersonSchemaOptionsOptions for generatePersonSchema
GeneratePortfolioMetadataOptionsOptions for generatePortfolioMetadata

Import ​

tsx
import type { 
  ProjexProject, 
  ProjexProjectInput, 
  ProjectType, 
  ProjectStatus 
} from '@manningworks/projex'

Type Relationships ​

ProjexProjectInput ──normalise()──> ProjexProject
       β”‚                                 β”‚
       β”œβ”€β”€ GitHubProjectInput            β”œβ”€β”€ stats: ProjectStats
       β”œβ”€β”€ NpmProjectInput               β”œβ”€β”€ links: ProjectLinks
       β”œβ”€β”€ ProductHuntProjectInput       β”œβ”€β”€ struggles: ProjectStruggle[]
       β”œβ”€β”€ YouTubeProjectInput           β”œβ”€β”€ timeline: ProjectTimelineEntry[]
       β”œβ”€β”€ GumroadProjectInput          └── posts: ProjectPost[]
       β”œβ”€β”€ LemonSqueezyProjectInput
       β”œβ”€β”€ DevToProjectInput
       β”œβ”€β”€ HybridProjectInput
       └── ManualProjectInput