@anyme/anymejs
Version:
179 lines (175 loc) • 5.27 kB
JavaScript
'use strict';
var require$$0 = require('node:path');
var winston = require('winston');
const ENV_KEY_VALUES = [
{
key: "server.port",
value: "PORT",
type: "number",
},
{ key: "server.route.routePrefix", value: "API_PREFIX", type: "string" },
{ key: "logger.level", value: "LOG_LEVEL", type: "string" },
{ key: "db.client.host", value: "DB_HOST", type: "string" },
{
key: "db.client.port",
value: "DB_PORT",
type: "number",
},
{ key: "db.client.username", value: "DB_USER", type: "string" },
{ key: "db.client.password", value: "DB_PASSWORD", type: "string" },
{ key: "db.client.database", value: "DB_DATABASE", type: "number" },
{ key: "redis.client.name", value: "REDIS_MASTER_NAME", type: "string" },
{ key: "redis.client.username", value: "REDIS_USERNAME", type: "string" },
{ key: "redis.client.host", value: "REDIS_HOST", type: "string" },
{
key: "redis.client.port",
value: "REDIS_PORT",
type: "number",
},
{ key: "redis.client.password", value: "REDIS_PASSWORD", type: "string" },
{
key: "redis.client.db",
value: "REDIS_DATABASE",
type: "string",
},
{ key: "session.client.secret", value: "SESSION_SECRET", type: "string" },
{
key: "session.prefix",
value: "SESSION_PREFIX",
type: "string",
},
{
key: "https.options.port",
value: "HTTPS_PORT",
type: "number",
},
{
key: "https.options.key",
value: "HTTPS_KEY",
type: "resolve",
},
{
key: "https.options.cert",
value: "HTTPS_CERT",
type: "resolve",
},
];
const CONFIG = {
logger: {
level: "info",
format: winston.format.combine(winston.format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }), winston.format.errors({ stack: true }), winston.format.printf(({ timestamp, level, message, stack }) => {
level = level.toUpperCase();
const printf = `${timestamp} [${level}] ${message}`;
return stack ? `${printf}\n${stack}` : printf;
})),
transports: {
console: {
format: winston.format.colorize({ all: true }),
},
file: false,
},
},
db: {
enable: false,
client: {
type: "mysql",
host: "localhost",
port: 3306,
username: "root",
entities: ["src/models/**/*.{ts,js,mjs,cjs}"],
migrations: ["src/migrations/**/*.{ts,js,mjs,cjs}"],
subscribers: ["src/subscriber/**/*.{ts,js,mjs,cjs}"],
entitySchemas: ["src/schema/**/*.json"],
poolSize: 5,
synchronize: false,
logging: process.env.NODE_ENV === "development",
},
},
redis: {
enable: false,
},
session: {
enable: false,
prefix: "session:",
store: "memory",
client: {
secret: "session",
resave: false,
saveUninitialized: false,
cookie: {
secure: process.env.NODE_ENV === "production",
httpOnly: true,
maxAge: 1000 * 60 * 60,
},
},
},
server: {
port: 3000,
proxy: false,
https: {
enable: false,
port: 443,
ssl: {
key: "./ssl/server.key",
cert: "./ssl/server.crt",
},
},
route: {
cors: {
origin: "*",
methods: "GET,POST,PUT,DELETE,OPTIONS",
credentials: false,
},
development: process.env.NODE_ENV === "development",
routePrefix: "",
controllers: [require$$0.resolve("src/controllers/**/*.{ts,js,mjs,cjs}")],
middlewares: [require$$0.resolve("src/middlewares/**/*.{ts,js,mjs,cjs}")],
interceptors: [require$$0.resolve("src/interceptors/**/*.{ts,js,mjs,cjs}")],
},
},
limiter: {
enable: false,
store: "memory",
redis: "limiter",
rule: {
slowDownOptions: {
windowMs: 15 * 60 * 1000,
delayAfter: 100,
delayMs: (hits) => hits * 100,
maxDelayMs: 20000,
},
rateLimitOptions: {
windowMs: 15 * 60 * 1000,
limit: 1000,
message: {
status: 429,
message: "Too many requests from this IP, please try again later.",
},
standardHeaders: true,
legacyHeaders: false,
skipSuccessfulRequests: true,
},
},
},
cache: {
enable: false,
},
sse: {
enable: false,
prefix: "/",
options: {
cors: {
origins: "*",
methods: "GET",
},
},
},
io: {
enable: false,
sticky: false,
client: "socket",
},
};
exports.CONFIG = CONFIG;
exports.ENV_KEY_VALUES = ENV_KEY_VALUES;
//# sourceMappingURL=default.config.js.map