mirror of
https://github.com/ragestudio/comty.git
synced 2025-06-10 19:14:16 +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