MCPcopy Create free account
hub / github.com/monkeytypegame/monkeytype / getLiveConfiguration

Function getLiveConfiguration

backend/src/init/configuration.ts:72–105  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

70}
71
72export async function getLiveConfiguration(): Promise<Configuration> {
73 lastFetchTime = Date.now();
74
75 const configurationCollection = db.collection("configuration");
76
77 try {
78 const liveConfiguration = await configurationCollection.findOne();
79
80 if (liveConfiguration) {
81 const baseConfiguration = structuredClone(BASE_CONFIGURATION);
82
83 const liveConfigurationWithoutId = omit(liveConfiguration, [
84 "_id",
85 ]) as Configuration;
86 mergeConfigurations(baseConfiguration, liveConfigurationWithoutId);
87
88 await pushConfiguration(baseConfiguration);
89 configuration = baseConfiguration;
90 } else {
91 await configurationCollection.insertOne({
92 ...BASE_CONFIGURATION,
93 _id: new ObjectId(),
94 }); // Seed the base configuration.
95 }
96 } catch (error) {
97 const errorMessage = getErrorMessage(error) ?? "Unknown error";
98 void addLog(
99 "fetch_configuration_failure",
100 `Could not fetch configuration: ${errorMessage}`,
101 );
102 }
103
104 return configuration;
105}
106
107async function pushConfiguration(
108 configurationToPush: Configuration,

Callers 5

bootServerFunction · 0.90
applyDevApiRoutesFunction · 0.90
createIndiciesFunction · 0.90
getCachedConfigurationFunction · 0.85
patchConfigurationFunction · 0.85

Calls 5

omitFunction · 0.90
getErrorMessageFunction · 0.90
addLogFunction · 0.90
mergeConfigurationsFunction · 0.85
pushConfigurationFunction · 0.85

Tested by

no test coverage detected