mirror of
https://github.com/ragestudio/comty.git
synced 2025-06-10 02:54:15 +00:00
remove classes
This commit is contained in:
parent
4fb81648f8
commit
0b92dfc74b
@ -1,9 +0,0 @@
|
||||
import createClient from "comty.js"
|
||||
|
||||
export default (params = {}) => {
|
||||
return createClient({
|
||||
...params,
|
||||
accessKey: process.env.COMTY_ACCESS_KEY,
|
||||
privateKey: process.env.COMTY_PRIVATE_KEY,
|
||||
})
|
||||
}
|
@ -1,58 +0,0 @@
|
||||
import mongoose from "mongoose"
|
||||
|
||||
function getConnectionConfig(obj) {
|
||||
const { DB_USER, DB_DRIVER, DB_NAME, DB_PWD, DB_HOSTNAME, DB_PORT } = obj
|
||||
|
||||
let auth = [
|
||||
DB_DRIVER ?? "mongodb",
|
||||
"://",
|
||||
]
|
||||
|
||||
if (DB_USER && DB_PWD) {
|
||||
auth.push(`${DB_USER}:${DB_PWD}@`)
|
||||
}
|
||||
|
||||
auth.push(DB_HOSTNAME ?? "localhost")
|
||||
auth.push(`:${DB_PORT ?? "27017"}`)
|
||||
|
||||
if (DB_USER) {
|
||||
auth.push("/?authMechanism=DEFAULT")
|
||||
}
|
||||
|
||||
auth = auth.join("")
|
||||
|
||||
return [
|
||||
auth,
|
||||
{
|
||||
dbName: DB_NAME,
|
||||
useNewUrlParser: true,
|
||||
useUnifiedTopology: true,
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
export default class DBManager {
|
||||
initialize = async (config) => {
|
||||
console.log("🔌 Connecting to DB...")
|
||||
|
||||
const dbConfig = getConnectionConfig(config ?? process.env)
|
||||
|
||||
mongoose.set("strictQuery", false)
|
||||
|
||||
const connection = await mongoose.connect(...dbConfig)
|
||||
.catch((err) => {
|
||||
console.log(`❌ Failed to connect to DB, retrying...\n`)
|
||||
console.log(error)
|
||||
|
||||
// setTimeout(() => {
|
||||
// this.initialize()
|
||||
// }, 1000)
|
||||
|
||||
return false
|
||||
})
|
||||
|
||||
if (connection) {
|
||||
console.log(`✅ Connected to DB.`)
|
||||
}
|
||||
}
|
||||
}
|
@ -1,44 +0,0 @@
|
||||
import { createClient } from "redis"
|
||||
|
||||
function composeURL() {
|
||||
// support for auth
|
||||
let url = "redis://"
|
||||
|
||||
if (process.env.REDIS_PASSWORD && process.env.REDIS_USERNAME) {
|
||||
url += process.env.REDIS_USERNAME + ":" + process.env.REDIS_PASSWORD + "@"
|
||||
}
|
||||
|
||||
url += process.env.REDIS_HOST ?? "localhost"
|
||||
|
||||
if (process.env.REDIS_PORT) {
|
||||
url += ":" + process.env.REDIS_PORT
|
||||
}
|
||||
|
||||
return url
|
||||
}
|
||||
|
||||
export default () => {
|
||||
let client = createClient({
|
||||
url: composeURL(),
|
||||
})
|
||||
|
||||
client.initialize = async () => {
|
||||
console.log("🔌 Connecting to Redis client...")
|
||||
|
||||
await client.connect()
|
||||
|
||||
return client
|
||||
}
|
||||
|
||||
// handle when client disconnects unexpectedly to avoid main crash
|
||||
client.on("error", (error) => {
|
||||
console.error("❌ Redis client error:", error)
|
||||
})
|
||||
|
||||
// handle when client connects
|
||||
client.on("connect", () => {
|
||||
console.log("✅ Redis client connected.")
|
||||
})
|
||||
|
||||
return client
|
||||
}
|
@ -1,97 +0,0 @@
|
||||
const Minio = require("minio")
|
||||
import path from "path"
|
||||
|
||||
export const generateDefaultBucketPolicy = (payload) => {
|
||||
const { bucketName } = payload
|
||||
|
||||
if (!bucketName) {
|
||||
throw new Error("bucketName is required")
|
||||
}
|
||||
|
||||
return {
|
||||
Version: "2012-10-17",
|
||||
Statement: [
|
||||
{
|
||||
Action: [
|
||||
"s3:GetObject"
|
||||
],
|
||||
Effect: "Allow",
|
||||
Principal: {
|
||||
AWS: [
|
||||
"*"
|
||||
]
|
||||
},
|
||||
Resource: [
|
||||
`arn:aws:s3:::${bucketName}/*`
|
||||
],
|
||||
Sid: ""
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
export class StorageClient extends Minio.Client {
|
||||
constructor(options) {
|
||||
super(options)
|
||||
|
||||
this.defaultBucket = String(options.defaultBucket)
|
||||
this.defaultRegion = String(options.defaultRegion)
|
||||
}
|
||||
|
||||
composeRemoteURL = (key) => {
|
||||
const _path = path.join(this.defaultBucket, key)
|
||||
|
||||
return `${this.protocol}//${this.host}:${this.port}/${_path}`
|
||||
}
|
||||
|
||||
setDefaultBucketPolicy = async (bucketName) => {
|
||||
const policy = generateDefaultBucketPolicy({ bucketName })
|
||||
|
||||
return this.setBucketPolicy(bucketName, JSON.stringify(policy))
|
||||
}
|
||||
|
||||
initialize = async () => {
|
||||
console.log("🔌 Checking if storage client have default bucket...")
|
||||
|
||||
// check connection with s3
|
||||
const bucketExists = await this.bucketExists(this.defaultBucket).catch(() => {
|
||||
return false
|
||||
})
|
||||
|
||||
if (!bucketExists) {
|
||||
console.warn("🪣 Default bucket not exists! Creating new bucket...")
|
||||
|
||||
await this.makeBucket(this.defaultBucket, "s3")
|
||||
|
||||
// set default bucket policy
|
||||
await this.setDefaultBucketPolicy(this.defaultBucket)
|
||||
}
|
||||
|
||||
// check if default bucket policy exists
|
||||
const bucketPolicy = await this.getBucketPolicy(this.defaultBucket).catch(() => {
|
||||
return null
|
||||
})
|
||||
|
||||
if (!bucketPolicy) {
|
||||
// set default bucket policy
|
||||
await this.setDefaultBucketPolicy(this.defaultBucket)
|
||||
}
|
||||
|
||||
console.log("✅ Storage client is ready.")
|
||||
}
|
||||
}
|
||||
|
||||
export const createStorageClientInstance = (options) => {
|
||||
return new StorageClient({
|
||||
...options,
|
||||
endPoint: process.env.S3_ENDPOINT,
|
||||
port: Number(process.env.S3_PORT),
|
||||
useSSL: toBoolean(process.env.S3_USE_SSL),
|
||||
accessKey: process.env.S3_ACCESS_KEY,
|
||||
secretKey: process.env.S3_SECRET_KEY,
|
||||
defaultBucket: process.env.S3_BUCKET,
|
||||
defaultRegion: process.env.S3_REGION,
|
||||
})
|
||||
}
|
||||
|
||||
export default createStorageClientInstance
|
Loading…
x
Reference in New Issue
Block a user