fix: circular dependency
This commit is contained in:
		
							parent
							
								
									2d5e73dd8b
								
							
						
					
					
						commit
						fad619385c
					
				|  | @ -1,4 +1,4 @@ | |||
| import { platforms } from "../platforms"; | ||||
| import { platforms } from "../platforms/registry"; | ||||
| import { executeJobByName } from "./jobs"; | ||||
| 
 | ||||
| /* Do everything */ | ||||
|  |  | |||
|  | @ -1,6 +1,7 @@ | |||
| import { doEverything } from "../flow/doEverything"; | ||||
| import { rebuildFrontpage } from "../frontpage"; | ||||
| import { platforms, processPlatform } from "../platforms"; | ||||
| import { processPlatform } from "../platforms"; | ||||
| import { platforms } from "../platforms/registry"; | ||||
| import { rebuildAlgoliaDatabase } from "../utils/algolia"; | ||||
| import { sleep } from "../utils/sleep"; | ||||
| 
 | ||||
|  |  | |||
|  | @ -2,23 +2,9 @@ import { Question } from "@prisma/client"; | |||
| 
 | ||||
| import { QuestionOption } from "../../common/types"; | ||||
| import { prisma } from "../database/prisma"; | ||||
| import { betfair } from "./betfair"; | ||||
| import { fantasyscotus } from "./fantasyscotus"; | ||||
| import { foretold } from "./foretold"; | ||||
| import { givewellopenphil } from "./givewellopenphil"; | ||||
| import { goodjudgment } from "./goodjudgment"; | ||||
| import { goodjudgmentopen } from "./goodjudgmentopen"; | ||||
| import { guesstimate } from "./guesstimate"; | ||||
| import { infer } from "./infer"; | ||||
| import { kalshi } from "./kalshi"; | ||||
| import { manifold } from "./manifold"; | ||||
| import { metaculus } from "./metaculus"; | ||||
| import { polymarket } from "./polymarket"; | ||||
| import { predictit } from "./predictit"; | ||||
| import { rootclaim } from "./rootclaim"; | ||||
| import { smarkets } from "./smarkets"; | ||||
| import { wildeford } from "./wildeford"; | ||||
| import { xrisk } from "./xrisk"; | ||||
| 
 | ||||
| // This file includes comon types and functions for working with platforms.
 | ||||
| // The registry of all platforms is in a separate file, ./registry.ts, to avoid circular dependencies.
 | ||||
| 
 | ||||
| export interface QualityIndicators { | ||||
|   stars: number; | ||||
|  | @ -86,26 +72,6 @@ export type Platform<ArgNames extends string = ""> = { | |||
|     } | ||||
| ); | ||||
| 
 | ||||
| export const platforms: Platform<string>[] = [ | ||||
|   betfair, | ||||
|   fantasyscotus, | ||||
|   foretold, | ||||
|   givewellopenphil, | ||||
|   goodjudgment, | ||||
|   goodjudgmentopen, | ||||
|   guesstimate, | ||||
|   infer, | ||||
|   kalshi, | ||||
|   manifold, | ||||
|   metaculus, | ||||
|   polymarket, | ||||
|   predictit, | ||||
|   rootclaim, | ||||
|   smarkets, | ||||
|   wildeford, | ||||
|   xrisk, | ||||
| ]; | ||||
| 
 | ||||
| // Typing notes:
 | ||||
| // There's a difference between prisma's Question type (type returned from `find` and `findMany`) and its input types due to JsonValue vs InputJsonValue mismatch.
 | ||||
| // On the other hand, we can't use Prisma.QuestionUpdateInput or Prisma.QuestionCreateManyInput either, because we use this question in guesstimate's code for preparing questions from guesstimate models...
 | ||||
|  | @ -232,14 +198,3 @@ export interface PlatformConfig { | |||
|   label: string; | ||||
|   color: string; | ||||
| } | ||||
| 
 | ||||
| // get frontend-safe version of platforms data
 | ||||
| export const getPlatformsConfig = (): PlatformConfig[] => { | ||||
|   const platformsConfig = platforms.map((platform) => ({ | ||||
|     name: platform.name, | ||||
|     label: platform.label, | ||||
|     color: platform.color, | ||||
|   })); | ||||
| 
 | ||||
|   return platformsConfig; | ||||
| }; | ||||
|  |  | |||
							
								
								
									
										50
									
								
								src/backend/platforms/registry.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								src/backend/platforms/registry.ts
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,50 @@ | |||
| import { betfair } from "./betfair"; | ||||
| import { fantasyscotus } from "./fantasyscotus"; | ||||
| import { foretold } from "./foretold"; | ||||
| import { givewellopenphil } from "./givewellopenphil"; | ||||
| import { goodjudgment } from "./goodjudgment"; | ||||
| import { goodjudgmentopen } from "./goodjudgmentopen"; | ||||
| import { guesstimate } from "./guesstimate"; | ||||
| import { Platform, PlatformConfig } from "./index"; | ||||
| import { infer } from "./infer"; | ||||
| import { kalshi } from "./kalshi"; | ||||
| import { manifold } from "./manifold"; | ||||
| import { metaculus } from "./metaculus"; | ||||
| import { polymarket } from "./polymarket"; | ||||
| import { predictit } from "./predictit"; | ||||
| import { rootclaim } from "./rootclaim"; | ||||
| import { smarkets } from "./smarkets"; | ||||
| import { wildeford } from "./wildeford"; | ||||
| import { xrisk } from "./xrisk"; | ||||
| 
 | ||||
| export const platforms: Platform<string>[] = [ | ||||
|   betfair, | ||||
|   fantasyscotus, | ||||
|   foretold, | ||||
|   givewellopenphil, | ||||
|   goodjudgment, | ||||
|   goodjudgmentopen, | ||||
|   guesstimate, | ||||
|   infer, | ||||
|   kalshi, | ||||
|   manifold, | ||||
|   metaculus, | ||||
|   polymarket, | ||||
|   predictit, | ||||
|   rootclaim, | ||||
|   smarkets, | ||||
|   wildeford, | ||||
|   xrisk, | ||||
| ]; | ||||
| 
 | ||||
| // get frontend-safe version of platforms data
 | ||||
| 
 | ||||
| export const getPlatformsConfig = (): PlatformConfig[] => { | ||||
|   const platformsConfig = platforms.map((platform) => ({ | ||||
|     name: platform.name, | ||||
|     label: platform.label, | ||||
|     color: platform.color, | ||||
|   })); | ||||
| 
 | ||||
|   return platformsConfig; | ||||
| }; | ||||
|  | @ -3,7 +3,7 @@ import algoliasearch from "algoliasearch"; | |||
| import { Question } from "@prisma/client"; | ||||
| 
 | ||||
| import { prisma } from "../database/prisma"; | ||||
| import { platforms } from "../platforms"; | ||||
| import { platforms } from "../platforms/registry"; | ||||
| 
 | ||||
| let cookie = process.env.ALGOLIA_MASTER_API_KEY || ""; | ||||
| const algoliaAppId = process.env.NEXT_PUBLIC_ALGOLIA_APP_ID || ""; | ||||
|  |  | |||
|  | @ -1,5 +1,5 @@ | |||
| import { prisma } from "../../backend/database/prisma"; | ||||
| import { platforms } from "../../backend/platforms"; | ||||
| import { platforms } from "../../backend/platforms/registry"; | ||||
| import { builder } from "../builder"; | ||||
| 
 | ||||
| export const PlatformObj = builder.objectRef<string>("Platform").implement({ | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| import { GetServerSideProps, NextPage } from "next"; | ||||
| import React from "react"; | ||||
| 
 | ||||
| import { getPlatformsConfig, platforms } from "../backend/platforms"; | ||||
| import { getPlatformsConfig, platforms } from "../backend/platforms/registry"; | ||||
| import { Layout } from "../web/common/Layout"; | ||||
| import { Props, QueryParameters, SearchScreen } from "../web/search/components/SearchScreen"; | ||||
| import { FrontpageDocument, SearchDocument } from "../web/search/queries.generated"; | ||||
|  |  | |||
|  | @ -3,7 +3,7 @@ | |||
| import { GetServerSideProps, NextPage } from "next"; | ||||
| import React from "react"; | ||||
| 
 | ||||
| import { platforms } from "../backend/platforms"; | ||||
| import { platforms } from "../backend/platforms/registry"; | ||||
| import { QuestionFragment } from "../web/fragments.generated"; | ||||
| import { QuestionCard } from "../web/questions/components/QuestionCard"; | ||||
| import { SearchDocument } from "../web/search/queries.generated"; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user