Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/lib/ingest/loaders/libraries.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,10 @@ export class LibrariesLoader implements ContentLoader {
name = 'LibrariesLoader';

private libraries: LibraryData[] = [
// Core React & React Native (9 repositories)
// Core React & React Native (10 repositories)
{ repo: 'facebook/react', name: 'React', category: 'Core React', tier: 'Tier 1' },
{ repo: 'facebook/react-native', name: 'React Native', category: 'Core React', tier: 'Tier 1' },
{ repo: 'facebook/react-strict-dom', name: 'React Strict DOM', category: 'Core React', tier: 'Tier 2' },
{ repo: 'facebook/hermes', name: 'Hermes', category: 'Core React', tier: 'Tier 1' },
{ repo: 'reactjs/react.dev', name: 'React Documentation', category: 'Core React', tier: 'Tier 1' },
{ repo: 'reactjs/rfcs', name: 'React RFCs', category: 'Core React', tier: 'Tier 1' },
Expand Down
2 changes: 2 additions & 0 deletions src/lib/library-icons.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ export const libraryIcons: Record<string, IconComponent | null> = {
// Core React
react: SiReact,
"react-native": SiReact,
"react-strict-dom": SiReact,
jest: SiJest,
relay: SiGraphql,
hermes: SiReact, // Hermes is from Meta/Facebook
Expand Down Expand Up @@ -142,6 +143,7 @@ export const libraryIcons: Record<string, IconComponent | null> = {
export const libraryDisplayNames: Record<string, string> = {
react: "React",
"react-native": "React Native",
"react-strict-dom": "React Strict DOM",
jest: "Jest",
relay: "Relay",
hermes: "Hermes",
Expand Down
26 changes: 26 additions & 0 deletions src/lib/maintainer-tiers.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -93,4 +93,30 @@ describe('ecosystemLibraries', () => {
})
);
});

it('includes React Strict DOM in related library datasets', async () => {
expect(findLibrary('facebook', 'react-strict-dom')).toMatchObject({
category: 'core',
tier: 2,
});
expect(NPMCollector.getPackageName('facebook', 'react-strict-dom')).toBe('react-strict-dom');
expect(libraryDisplayNames['react-strict-dom']).toBe('React Strict DOM');

expect(PROBE_REPOS).toContainEqual(
expect.objectContaining({
owner: 'facebook',
repo: 'react-strict-dom',
category: 'ui-library',
})
);

const loader = new LibrariesLoader();
const records = await loader.load();
expect(records).toContainEqual(
expect.objectContaining({
id: 'library-facebook-react-strict-dom',
title: 'React Strict DOM',
})
);
});
});
3 changes: 2 additions & 1 deletion src/lib/maintainer-tiers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,12 @@ export type ContributionStats = {
};

export const ecosystemLibraries: RepoTarget[] = [
// Core React (9 repos)
// Core React (10 repos)
{ owner: "facebook", name: "react", category: "core", tier: 1 }, // Includes React Compiler (in /compiler subdirectory)
{ owner: "facebook", name: "relay", category: "data", tier: 1 },
{ owner: "facebook", name: "jest", category: "testing", tier: 1 },
{ owner: "facebook", name: "react-native", category: "core", tier: 1 },
{ owner: "facebook", name: "react-strict-dom", category: "core", tier: 2 },
{ owner: "facebook", name: "hermes", category: "core", tier: 1, hasNpmPackage: false }, // JavaScript engine (C++ binary, not on NPM)
{ owner: "reactjs", name: "react.dev", category: "core", tier: 1, hasNpmPackage: false }, // Documentation website (not a library)
{ owner: "reactjs", name: "rfcs", category: "core", tier: 1, hasNpmPackage: false }, // RFC repository (not a library)
Expand Down
1 change: 1 addition & 0 deletions src/lib/ris/collectors/npm-collector.ts
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@ export class NPMCollector {
const specialCases: Record<string, string | null> = {
'facebook/react': 'react',
'facebook/react-native': 'react-native',
'facebook/react-strict-dom': 'react-strict-dom',
'facebook/jest': 'jest',
'facebook/relay': 'react-relay',
'facebook/hermes': null, // JavaScript engine (C++ binary, not on NPM)
Expand Down
1 change: 1 addition & 0 deletions src/lib/ris/data/probe-repos.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ export const PROBE_REPOS: ProbeRepo[] = [
{ owner: 'gatsbyjs', repo: 'gatsby', stars: 55000, category: 'framework', description: 'Gatsby framework' },
{ owner: 'facebook', repo: 'docusaurus', stars: 59000, category: 'framework', description: 'Docusaurus documentation framework' },
{ owner: 'expo', repo: 'expo', stars: 32000, category: 'framework', description: 'Expo React Native' },
{ owner: 'facebook', repo: 'react-strict-dom', stars: 3506, category: 'ui-library', description: 'React Strict DOM cross-platform component system' },

// UI Component Libraries
{ owner: 'mui', repo: 'material-ui', stars: 93000, category: 'ui-library', description: 'Material UI' },
Expand Down
Loading