Commit 7cf5a10

Anton Medvedev <anton@medv.io>
2023-10-22 15:58:03
Move types to collect/types.ts
1 parent 7cce363
src/all-badges/abc-commit/abc-commit.ts
@@ -1,5 +1,5 @@
-import { Commit, Repo } from '../../collect/collect.js'
 import { BadgePresenter, ID, Present } from '../../badges.js'
+import { Commit, Repo } from '../../collect/types.js'
 
 export default new (class implements BadgePresenter {
   url = new URL(import.meta.url)
src/all-badges/bad-words/bad-words.ts
@@ -1,6 +1,6 @@
-import { Commit, Repo } from '../../collect/collect.js'
 import { Present, BadgePresenter } from '../../badges.js'
 import { linkCommit } from '../../utils.js'
+import { Commit, Repo } from '../../collect/types.js'
 
 export default new (class implements BadgePresenter {
   url = new URL(import.meta.url)
src/all-badges/dead-commit/dead-commit.ts
@@ -1,5 +1,5 @@
-import { Commit, Repo } from '../../collect/collect.js'
 import { BadgePresenter, Present } from '../../badges.js'
+import { Commit, Repo } from '../../collect/types.js'
 
 export default new (class implements BadgePresenter {
   url = new URL(import.meta.url)
src/all-badges/fix-commit/fix-commit.ts
@@ -1,5 +1,6 @@
 import { BadgePresenter, Grant, Present } from '../../badges.js'
-import { Commit } from '../../collect/collect.js'
+
+import { Commit } from '../../collect/types.js'
 
 export default new (class implements BadgePresenter {
   url = new URL(import.meta.url)
src/all-badges/my-badges-contributor/my-badges-contributor.ts
@@ -1,5 +1,5 @@
-import { Pull } from '../../collect/collect.js'
 import { BadgePresenter, Present } from '../../badges.js'
+import { Pull } from '../../collect/types.js'
 
 export default new (class implements BadgePresenter {
   url = new URL(import.meta.url)
src/all-badges/old-issue/old-issue.ts
@@ -1,5 +1,6 @@
 import { BadgePresenter, Present } from '../../badges.js'
-import { Issue } from '../../collect/collect.js'
+
+import { Issue } from '../../collect/types.js'
 
 export default new (class implements BadgePresenter {
   url = new URL(import.meta.url)
src/all-badges/pr-collaboration/pr-collaboration.ts
@@ -1,5 +1,6 @@
 import { BadgePresenter, Present } from '../../badges.js'
-import { Pull } from '../../collect/collect.js'
+
+import { Pull } from '../../collect/types.js'
 
 export default new (class implements BadgePresenter {
   url = new URL(import.meta.url)
src/all-badges/revert-revert-commit/revert-revert-commit.ts
@@ -1,5 +1,5 @@
-import { Commit } from '../../collect/collect.js'
 import { BadgePresenter, Present } from '../../badges.js'
+import { Commit } from '../../collect/types.js'
 
 export default new (class implements BadgePresenter {
   url = new URL(import.meta.url)
src/all-badges/stars/stars.ts
@@ -1,5 +1,6 @@
 import { BadgePresenter, Present } from '../../badges.js'
-import { Repo } from '../../collect/collect.js'
+
+import { Repo } from '../../collect/types.js'
 
 export default new (class implements BadgePresenter {
   url = new URL(import.meta.url)
src/all-badges/the-ultimate-question/the-ultimate-question.ts
@@ -1,5 +1,5 @@
 import { BadgePresenter, Present } from '../../badges.js'
-import { Issue, Pull } from '../../collect/collect.js'
+import { Issue, Pull } from '../../collect/types.js'
 
 export default new (class implements BadgePresenter {
   url = new URL(import.meta.url)
src/all-badges/this-is-fine/this-is-fine.ts
@@ -1,5 +1,6 @@
 import { BadgePresenter, Present } from '../../badges.js'
-import { Pull } from '../../collect/collect.js'
+
+import { Pull } from '../../collect/types.js'
 
 export default new (class implements BadgePresenter {
   url = new URL(import.meta.url)
src/all-badges/time-of-commit/time-of-commit.ts
@@ -1,5 +1,5 @@
 import { BadgePresenter, Present } from '../../badges.js'
-import { Commit, User } from '../../collect/collect.js'
+import { Commit, User } from '../../collect/types.js'
 
 export default new (class implements BadgePresenter {
   url = new URL(import.meta.url)
src/collect/collect.ts
@@ -1,28 +1,10 @@
 import { Octokit } from 'octokit'
-import { Endpoints } from '@octokit/types'
 import { pullsQuery, PullsQuery } from './pulls.js'
 import { commitsQuery, CommitsQuery } from './commits.js'
-import fs from 'node:fs'
-import { fileURLToPath } from 'node:url'
 import { issuesQuery, IssuesQuery } from './issues.js'
 import { userQuery, UserQuery } from './user.js'
 import { IssueTimelineQuery, issueTimelineQuery } from './issue-timeline.js'
-
-export type Data = {
-  user: User
-  repos: Repo[]
-  pulls: Pull[]
-  issues: Issue[]
-}
-export type User = UserQuery['user']
-export type Repo =
-  Endpoints['GET /users/{username}/repos']['response']['data'][0] & {
-    commits: Commit[]
-  }
-export type Commit =
-  CommitsQuery['repository']['defaultBranchRef']['target']['history']['nodes'][0]
-export type Pull = PullsQuery['user']['pullRequests']['nodes'][0]
-export type Issue = IssuesQuery['user']['issues']['nodes'][0]
+import { Data } from './types.js'
 
 export async function collect(
   octokit: Octokit,
src/collect/types.ts
@@ -1,1 +1,28 @@
+import { Endpoints } from '@octokit/types'
+import { CommitsQuery } from './commits.js'
+import { IssuesQuery } from './issues.js'
+import { UserQuery } from './user.js'
+import { PullsQuery } from './pulls.js'
+
 export type Extra<T> = T | undefined
+
+export type Data = {
+  user: User
+  repos: Repo[]
+  pulls: Pull[]
+  issues: Issue[]
+}
+
+export type User = UserQuery['user']
+
+export type Repo =
+  Endpoints['GET /users/{username}/repos']['response']['data'][0] & {
+    commits: Commit[]
+  }
+
+export type Commit =
+  CommitsQuery['repository']['defaultBranchRef']['target']['history']['nodes'][0]
+
+export type Pull = PullsQuery['user']['pullRequests']['nodes'][0]
+
+export type Issue = IssuesQuery['user']['issues']['nodes'][0]
src/badges.ts
@@ -1,6 +1,6 @@
 import { allBadges } from './all-badges/index.js'
-import { Commit, Data, Issue, Pull } from './collect/collect.js'
 import { expectType, linkCommit, linkIssue, linkPull } from './utils.js'
+import { Commit, Data, Issue, Pull } from './collect/types.js'
 
 for (const {
   default: { badges },
src/get-data.ts
@@ -1,6 +1,7 @@
-import { collect, Data } from './collect/collect.js'
+import { collect } from './collect/collect.js'
 import fs from 'node:fs'
 import { Octokit } from 'octokit'
+import { Data } from './collect/types.js'
 
 export async function getData(
   octokit: Octokit,
src/present-badges.ts
@@ -2,8 +2,8 @@ import { Badge, badgeCollection, BadgePresenter, ID } from './badges.js'
 import { allBadges } from './all-badges/index.js'
 import path from 'node:path'
 import { fileURLToPath } from 'node:url'
-import { Data } from './collect/collect.js'
 import { parseMask } from './utils.js'
+import { Data } from './collect/types.js'
 
 export const presentBadges = (
   presenters: BadgePresenter[],
src/utils.ts
@@ -1,5 +1,5 @@
 import { spawnSync } from 'node:child_process'
-import { Commit, Issue, Pull } from './collect/collect.js'
+import { Commit, Issue, Pull } from './collect/types.js'
 
 export function linkCommit(commit: Commit): string {
   return `<a href="https://github.com/${commit.repository.owner.login}/${
test/present-badges.test.ts
@@ -1,8 +1,8 @@
 import * as assert from 'node:assert'
 import { describe, it } from 'node:test'
-import { Data } from '../src/collect/collect.js'
 import { presentBadges } from '../src/present-badges.js'
 import { Badge, BadgePresenter } from '../src/badges.js'
+import { Data } from '../src/collect/types.js'
 
 describe('present-badges', () => {
   const data: Data = {
test/stars.test.ts
@@ -2,7 +2,8 @@ import * as assert from 'node:assert'
 import { describe, it } from 'node:test'
 import starsPresenter from '../src/all-badges/stars/stars.js'
 import { Badge, badgeCollection } from '../src/badges.js'
-import { Data } from '../src/collect/collect.js'
+
+import { Data } from '../src/collect/types.js'
 
 describe('stars', () => {
   it('counts and renders as expected', () => {