coddyger
Version:
Coddyger est une bibliothèque JavaScript/TypeScript qui fournit des fonctions communes et des plugins pour la gestion des données, la communication entre services, et des utilitaires avancés pour le développement d'applications.
200 lines (199 loc) • 8.8 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.defines = exports.mails = void 0;
// Environment variables imported from .env file
const dotenv = __importStar(require("dotenv"));
dotenv.config();
const env = {
appName: process.env.APP_NAME || process.env.SERVICE_NAME || 'Coddyger Typescript API',
mode: process.env.ENV || 'dev',
domain: process.env.DOMAIN,
description: process.env.DESCRIPTION || '',
server: {
port: process.env.SERVER_PORT || process.env.PORT || 3000,
apiVersion: process.env.API_VERSION || 'v1',
serverPath: process.env.SERVER_PATH || process.env.SERVICE_PATH || '/coddyger',
origins: process.env.ORIGINS || process.env.CORS_ORIGIN || '*',
swaggerHost: process.env.SWAGGER_HOST
},
database: {
useDatabase: process.env.USE_DB || 'no',
connectionString: process.env.DB_URI || process.env.MONGODB_URI,
dialect: process.env.DB_DIALECT,
storage: process.env.DB_STORAGE,
name: process.env.DB_NAME
},
transporter: {
broker: process.env.TR_BROKER || process.env.KAFKA_BROKER,
client: process.env.TR_CLIENT || process.env.KAFKA_CLIENT,
topic: process.env.TR_TOPIC || process.env.KAFKA_TOPIC,
group: process.env.TR_GROUP || process.env.KAFKA_GROUP,
foreigners: process.env.TR_FOREIGNERS || process.env.KAFKA_FOREIGNERS
},
jwt: {
secret: process.env.JWT_SECRET,
secretAuth: process.env.JWT_AUTH_SECRET,
public: process.env.JWT_PUBLIC,
expire: process.env.JWT_EXPIRE || process.env.JWT_EXPIRATION || '1h',
expireRefresh: process.env.JWT_REFRESH_EXPIRE || '24h'
},
paths: {
logger: process.env.LOGGER_PATH
},
cache: {
type: process.env.CACHE_TYPE || 'redis',
host: process.env.CACHE_HOST || 'localhost',
port: process.env.CACHE_PORT || 6379,
password: process.env.CACHE_PASSWORD,
db: process.env.CACHE_DB ? parseInt(process.env.CACHE_DB) : 0,
ttl: process.env.CACHE_TTL ? parseInt(process.env.CACHE_TTL) : 3600,
url: process.env.CACHE_URL
}
};
exports.mails = {
support: process.env.SUPPORT_MAIL || 'grebejordan@gmail.com',
logReport: process.env.SUPPORT_MAIL || 'grebejordan@gmail.com'
};
exports.defines = {
status: {
// Codes de Succès (2xx)
requestOK: 200,
created: 201,
accepted: 202,
noContent: 204,
// Codes de Redirection (3xx)
movedPerm: 301,
found: 302,
seeOther: 303,
notModified: 304,
tempRedirect: 307,
permRedirect: 308,
// Codes d'Erreur Client (4xx)
badRequest: 400,
authError: 401,
forbidden: 403,
notFound: 404,
notAllowed: 405,
notAcceptable: 406,
conflict: 409,
gone: 410,
lengthReq: 411,
precondFailed: 412,
payloadLarge: 413,
uriTooLong: 414,
unsupported: 415,
rangeInvalid: 416,
clientError: 422,
locked: 423,
tooEarly: 425,
tooMany: 429,
headerLarge: 431,
legalReasons: 451,
unauthorized: 401,
// Codes d'Erreur Serveur (5xx)
serverError: 500,
notImpl: 501,
badGateway: 502,
unavailable: 503,
gatewayTimeout: 504,
httpVersion: 505,
variantAlso: 506,
insuffStorage: 507,
loopDetected: 508,
bandwidthLimit: 509
},
message: {
// Messages Génériques
tryCatch: "Une erreur imprévue s'est produite. Veuillez réessayer. Si le problème persiste, veuillez contacter le service client.",
validation: "Les données fournies sont invalides.",
timeout: "Le délai d'attente a été dépassé.",
// Messages 2xx
requestOK: "La requête a été traitée avec succès.",
created: "La ressource a été créée avec succès.",
accepted: "La requête a été acceptée et est en cours de traitement.",
noContent: "La requête a été traitée avec succès, mais aucune donnée n'est à renvoyer.",
// Messages 3xx
movedPerm: "Cette ressource a été déplacée définitivement.",
found: "Cette ressource est temporairement disponible à une autre adresse.",
seeOther: "Veuillez consulter une autre ressource pour compléter votre requête.",
notModified: "La ressource n'a pas été modifiée depuis votre dernière requête.",
// Messages 4xx
badRequest: "Votre requête contient une ou plusieurs erreurs.",
unauthorized: "Vous n'êtes pas autorisé à accéder à cette ressource.",
authError: "Authentification requise pour accéder à cette ressource.",
forbidden: "Vous n'avez pas les droits nécessaires pour accéder à cette ressource.",
notFound: "La ressource demandée n'existe pas.",
notAllowed: "Cette méthode n'est pas autorisée sur cette ressource.",
notAcceptable: "Le format demandé n'est pas disponible.",
conflict: "Cette opération crée un conflit avec l'état actuel des données.",
gone: "Cette ressource n'est plus disponible sur le serveur.",
lengthReq: "La longueur du contenu doit être spécifiée.",
precondFailed: "Les préconditions de la requête ont échoué.",
payloadLarge: "Les données envoyées sont trop volumineuses.",
uriTooLong: "L'URI de la requête est trop longue.",
unsupported: "Le format des données n'est pas supporté.",
rangeInvalid: "La plage demandée n'est pas valide.",
clientError: "La requête contient des erreurs de validation.",
locked: "La ressource est verrouillée.",
tooEarly: "La requête a été rejetée pour prévenir une attaque par rejeu.",
tooMany: "Vous avez dépassé la limite de requêtes autorisées.",
headerLarge: "Les en-têtes de la requête sont trop volumineux.",
legalReasons: "Cette ressource n'est pas accessible pour des raisons légales.",
// Messages 5xx
serverError: "Une erreur interne s'est produite sur le serveur.",
notImpl: "Cette fonctionnalité n'est pas encore implémentée.",
badGateway: "Le serveur a reçu une réponse invalide d'un serveur en amont.",
unavailable: "Le service est temporairement indisponible.",
gatewayTimeout: "Le délai d'attente de la passerelle a été dépassé.",
httpVersion: "La version HTTP utilisée n'est pas supportée.",
variantAlso: "Une erreur de négociation de contenu s'est produite.",
insuffStorage: "Le serveur ne dispose pas d'assez d'espace de stockage.",
loopDetected: "Une boucle infinie a été détectée lors du traitement de la requête.",
bandwidthLimit: "La limite de bande passante a été dépassée."
},
tryCatchObject: (data) => {
return {
data,
error: true,
message: "Une erreur imprévue s'est produite. Veuillez réessayer. Si le problème persiste, veuillez contacter le service client."
};
},
controlerTryCatchObject: {
status: 500,
message: "Une erreur imprévue s'est produite. Veuillez réessayer. Si le problème persiste, veuillez contacter le service client."
}
};
exports.default = env;