|
4 | 4 | import { deferred } from "std/async/deferred.ts";
|
5 | 5 | import { init_native } from "native";
|
6 | 6 |
|
7 |
| -import { ReplicatedRegister } from "./typegate/register.ts"; |
| 7 | +import { Register, ReplicatedRegister } from "./typegate/register.ts"; |
8 | 8 | import config, { redisConfig } from "./config.ts";
|
9 | 9 | import { Typegate } from "./typegate/mod.ts";
|
10 |
| -import { RedisRateLimiter } from "./typegate/rate_limiter.ts"; |
| 10 | +import { RateLimiter, RedisRateLimiter } from "./typegate/rate_limiter.ts"; |
11 | 11 | import { SystemTypegraph } from "./system_typegraphs.ts";
|
12 | 12 | import * as Sentry from "sentry";
|
13 | 13 | import { getLogger } from "./log.ts";
|
14 | 14 | import { init_runtimes } from "./runtimes/mod.ts";
|
| 15 | +import { MemoryRegister } from "test-utils/memory_register.ts"; |
| 16 | +import { NoLimiter } from "test-utils/no_limiter.ts"; |
15 | 17 |
|
16 | 18 | const logger = getLogger(import.meta);
|
17 | 19 | logger.info(`typegate v${config.version} starting`);
|
@@ -46,19 +48,29 @@ init_native();
|
46 | 48 | await init_runtimes();
|
47 | 49 |
|
48 | 50 | const deferredTypegate = deferred<Typegate>();
|
49 |
| -const register = await ReplicatedRegister.init( |
50 |
| - deferredTypegate, |
51 |
| - redisConfig, |
52 |
| -); |
53 |
| -const limiter = await RedisRateLimiter.init(redisConfig); |
54 |
| -const typegate = new Typegate(register, limiter); |
| 51 | +let register: Register | undefined; |
| 52 | +let limiter: RateLimiter | undefined; |
| 53 | + |
| 54 | +if (redisConfig.hostname != "none") { |
| 55 | + register = await ReplicatedRegister.init(deferredTypegate, redisConfig); |
| 56 | + limiter = await RedisRateLimiter.init(redisConfig); |
| 57 | +} else { |
| 58 | + logger.warning("Entering Redis-less mode"); |
| 59 | + register = new MemoryRegister(); |
| 60 | + limiter = new NoLimiter(); |
| 61 | +} |
| 62 | + |
| 63 | +const typegate = new Typegate(register!, limiter!); |
| 64 | + |
55 | 65 | deferredTypegate.resolve(typegate);
|
56 | 66 |
|
57 |
| -const lastSync = await register.historySync().catch((err) => { |
58 |
| - logger.error(err); |
59 |
| - throw new Error(`failed to load history at boot, aborting: {err.message}`); |
60 |
| -}); |
61 |
| -register.startSync(lastSync); |
| 67 | +if (register instanceof ReplicatedRegister) { |
| 68 | + const lastSync = await register.historySync().catch((err) => { |
| 69 | + logger.error(err); |
| 70 | + throw new Error(`failed to load history at boot, aborting: ${err.message}`); |
| 71 | + }); |
| 72 | + register.startSync(lastSync); |
| 73 | +} |
62 | 74 |
|
63 | 75 | await SystemTypegraph.loadAll(typegate, !config.packaged);
|
64 | 76 |
|
|
0 commit comments