remove global variable (#14907)

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
This commit is contained in:
Carina Wollendorfer
2024-05-07 11:04:27 +01:00
committed by GitHub
co-authored by CarinaWolli
parent c87b8b43f9
commit f4bd0dbcc9
@@ -6,25 +6,13 @@ import { setTestSMS } from "@calcom/lib/testSMS";
import prisma from "@calcom/prisma";
import { SMSLockState } from "@calcom/prisma/enums";
declare global {
// eslint-disable-next-line no-var
var twilio: TwilioClient.Twilio | undefined;
}
const log = logger.getSubLogger({ prefix: ["[twilioProvider]"] });
export const twilio =
globalThis.twilio ||
(process.env.TWILIO_SID && process.env.TWILIO_TOKEN && process.env.TWILIO_MESSAGING_SID)
? TwilioClient(process.env.TWILIO_SID, process.env.TWILIO_TOKEN)
: undefined;
if (process.env.NODE_ENV !== "production") {
globalThis.twilio = twilio;
}
function assertTwilio(twilio: TwilioClient.Twilio | undefined): asserts twilio is TwilioClient.Twilio {
if (!twilio) throw new Error("Twilio credentials are missing from the .env file");
function createTwilioClient() {
if (process.env.TWILIO_SID && process.env.TWILIO_TOKEN && process.env.TWILIO_MESSAGING_SID) {
return TwilioClient(process.env.TWILIO_SID, process.env.TWILIO_TOKEN);
}
throw new Error("Twilio credentials are missing from the .env file");
}
function getDefaultSender(whatsapp = false) {
@@ -69,7 +57,7 @@ export const sendSMS = async (
return;
}
assertTwilio(twilio);
const twilio = createTwilioClient();
if (!teamId && userId) {
await checkSMSRateLimit({
@@ -97,7 +85,7 @@ export const scheduleSMS = async (
teamId?: number | null,
whatsapp = false
) => {
assertTwilio(twilio);
const twilio = createTwilioClient();
const isSMSSendingLocked = await isLockedForSMSSending(userId, teamId);
@@ -126,12 +114,12 @@ export const scheduleSMS = async (
};
export const cancelSMS = async (referenceId: string) => {
assertTwilio(twilio);
const twilio = createTwilioClient();
await twilio.messages(referenceId).update({ status: "canceled" });
};
export const sendVerificationCode = async (phoneNumber: string) => {
assertTwilio(twilio);
const twilio = createTwilioClient();
if (process.env.TWILIO_VERIFY_SID) {
await twilio.verify
.services(process.env.TWILIO_VERIFY_SID)
@@ -140,7 +128,7 @@ export const sendVerificationCode = async (phoneNumber: string) => {
};
export const verifyNumber = async (phoneNumber: string, code: string) => {
assertTwilio(twilio);
const twilio = createTwilioClient();
if (process.env.TWILIO_VERIFY_SID) {
try {
const verification_check = await twilio.verify.v2