-
Notifications
You must be signed in to change notification settings - Fork 269
Expand file tree
/
Copy pathredis.ts
More file actions
50 lines (46 loc) · 1.74 KB
/
redis.ts
File metadata and controls
50 lines (46 loc) · 1.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import { env } from "@sourcebot/shared";
import { Redis } from 'ioredis';
import fs from "fs";
const buildTlsOptions = (): Record<string, unknown> => {
if (env.REDIS_TLS_ENABLED !== "true" && !env.REDIS_URL.startsWith("rediss://")) {
return {};
}
return {
tls: {
ca: env.REDIS_TLS_CA_PATH
? fs.readFileSync(env.REDIS_TLS_CA_PATH)
: undefined,
cert: env.REDIS_TLS_CERT_PATH
? fs.readFileSync(env.REDIS_TLS_CERT_PATH)
: undefined,
key: env.REDIS_TLS_KEY_PATH
? fs.readFileSync(env.REDIS_TLS_KEY_PATH)
: undefined,
...(env.REDIS_TLS_REJECT_UNAUTHORIZED
? { rejectUnauthorized: env.REDIS_TLS_REJECT_UNAUTHORIZED === 'true' }
: {}),
...(env.REDIS_TLS_SERVERNAME
? { servername: env.REDIS_TLS_SERVERNAME }
: {}),
...(env.REDIS_TLS_CHECK_SERVER_IDENTITY === "false"
? { checkServerIdentity: () => undefined }
: {}),
...(env.REDIS_TLS_SECURE_PROTOCOL
? { secureProtocol: env.REDIS_TLS_SECURE_PROTOCOL }
: {}),
...(env.REDIS_TLS_CIPHERS ? { ciphers: env.REDIS_TLS_CIPHERS } : {}),
...(env.REDIS_TLS_HONOR_CIPHER_ORDER
? {
honorCipherOrder: env.REDIS_TLS_HONOR_CIPHER_ORDER === "true",
}
: {}),
...(env.REDIS_TLS_KEY_PASSPHRASE
? { passphrase: env.REDIS_TLS_KEY_PASSPHRASE }
: {}),
},
};
};
export const redis = new Redis(env.REDIS_URL, {
maxRetriesPerRequest: null,
...buildTlsOptions(),
});