Files
StevenandGitHub 4466ba436b chore(examples): use default prettier for examples/templates (#60530)
## Description
This PR ensures that the default prettier config is used for examples
and templates.

This config is compatible with `prettier@3` as well (upgrading prettier
is bigger change that can be a future PR).

## Changes
- Updated `.prettierrc.json` in root with `"trailingComma": "es5"` (will
be needed upgrading to prettier@3)
- Added `examples/.prettierrc.json` with default config (this will
change every example)
- Added `packages/create-next-app/templates/.prettierrc.json` with
default config (this will change every template)

## Related

- Fixes #54402
- Closes #54409
2024-01-11 16:01:44 -07:00

32 lines
726 B
TypeScript

import IORedis, { Redis } from "ioredis";
function fixUrl(url: string) {
if (!url) {
return "";
}
if (url.startsWith("redis://") && !url.startsWith("redis://:")) {
return url.replace("redis://", "redis://:");
}
if (url.startsWith("rediss://") && !url.startsWith("rediss://:")) {
return url.replace("rediss://", "rediss://:");
}
return url;
}
class ClientRedis {
static instance: Redis;
constructor() {
throw new Error("Use Singleton.getInstance()");
}
static getInstance(): Redis | null {
if (!ClientRedis.instance) {
ClientRedis.instance = new IORedis(fixUrl(process.env.REDIS_URL!));
}
return ClientRedis.instance;
}
}
export default ClientRedis.getInstance();