mirror of
https://github.com/PretendoNetwork/account.git
synced 2026-07-19 09:22:05 -05:00
Added base config manager
This commit is contained in:
parent
20e593832b
commit
3dceb422c5
|
|
@ -1,6 +1,6 @@
|
|||
const fs = require('fs-extra');
|
||||
const redis = require('redis');
|
||||
const config = require('../config.json');
|
||||
const { config } = require('./config-manager');
|
||||
let client;
|
||||
|
||||
const SERVICE_CERTS_BASE = `${__dirname}/../certs/service`;
|
||||
|
|
|
|||
52
src/config-manager.js
Normal file
52
src/config-manager.js
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
const fs = require('fs-extra');
|
||||
const logger = require('../logger');
|
||||
|
||||
/**
|
||||
* @typedef {Object} Config
|
||||
* @property {object} http HTTP server settings
|
||||
* @property {number} http.port HTTP port the server will listen on
|
||||
* @property {object} mongoose Mongose connection settings
|
||||
* @property {string} mongoose.uri URI Mongoose will connect to
|
||||
* @property {string} mongoose.database MongoDB database name
|
||||
* @property {object} mongoose.options MongoDB connection options
|
||||
* @property {object} redis redis settings
|
||||
* @property {string} redis.client redis client settings
|
||||
* @property {string} redis.client.url redis server URL
|
||||
* @property {object} email node-mailer client settings
|
||||
* @property {string} email.host SMTP server address
|
||||
* @property {number} email.port SMTP server port
|
||||
* @property {boolean} email.secure Secure SMTP
|
||||
* @property {string} email.from Email "from" name/address
|
||||
* @property {object} email.auth Email authentication settings
|
||||
* @property {string} email.auth.user Email username
|
||||
* @property {string} email.auth.pass Email password
|
||||
* @property {object} aws s3 client settings
|
||||
* @property {object} aws.spaces Digital Ocean Spaces settings
|
||||
* @property {string} aws.spaces.key s3 access key
|
||||
* @property {string} aws.spaces.secret s3 access secret
|
||||
* @property {object} hcaptcha hCaptcha settings
|
||||
* @property {string} hcaptcha.secret hCaptcha secret
|
||||
* @property {string} cdn_base Base URL for CDN location
|
||||
* @property {string} website_base Base URL for service website (used with emails)
|
||||
*/
|
||||
|
||||
/**
|
||||
* @type {Config}
|
||||
*/
|
||||
let config = {};
|
||||
|
||||
function configure() {
|
||||
if (!fs.pathExistsSync(`${__dirname}/../config.json`)) {
|
||||
logger.error('Failed to locate config.json file');
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
config = require(`${__dirname}/../config.json`);
|
||||
|
||||
module.exports.config = config;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
configure,
|
||||
config
|
||||
};
|
||||
|
|
@ -5,7 +5,7 @@ const util = require('./util');
|
|||
const { PNID } = require('./models/pnid');
|
||||
const { Server } = require('./models/server');
|
||||
const logger = require('../logger');
|
||||
const config = require('../config.json');
|
||||
const { config } = require('./config-manager');
|
||||
const { uri, database, options } = config.mongoose;
|
||||
|
||||
// TODO: Extend this later with more settings
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
const nodemailer = require('nodemailer');
|
||||
const config = require('../config.json');
|
||||
const { config } = require('./config-manager');
|
||||
|
||||
const transporter = nodemailer.createTransport(config.email);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
process.title = 'Pretendo - Account';
|
||||
|
||||
const configManager = require('./config-manager');
|
||||
|
||||
configManager.configure();
|
||||
|
||||
const express = require('express');
|
||||
const morgan = require('morgan');
|
||||
const xmlparser = require('./middleware/xml-parser');
|
||||
|
|
@ -7,7 +11,8 @@ const cache = require('./cache');
|
|||
const database = require('./database');
|
||||
const util = require('./util');
|
||||
const logger = require('../logger');
|
||||
const config = require('../config.json');
|
||||
|
||||
const { config } = configManager;
|
||||
|
||||
const { http: { port } } = config;
|
||||
const app = express();
|
||||
|
|
@ -19,8 +24,6 @@ const datastore = require('./services/datastore');
|
|||
const api = require('./services/api');
|
||||
|
||||
// START APPLICATION
|
||||
app.set('etag', false);
|
||||
app.disable('x-powered-by');
|
||||
|
||||
// Create router
|
||||
logger.info('Setting up Middleware');
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ const database = require('../../../../database');
|
|||
const cache = require('../../../../cache');
|
||||
const util = require('../../../../util');
|
||||
const logger = require('../../../../../logger');
|
||||
const config = require('../../../../../config.json');
|
||||
const { config } = require('../../../../config-manager');
|
||||
|
||||
const PNID_VALID_CHARACTERS_REGEX = /^[\w\-\.]*$/gm;
|
||||
const PNID_PUNCTUATION_START_REGEX = /^[\_\-\.]/gm;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
const router = require('express').Router();
|
||||
const joi = require('joi');
|
||||
const { PNID } = require('../../../../models/pnid');
|
||||
const config = require('../../../../../config.json');
|
||||
const { config } = require('../../../../config-manager');
|
||||
|
||||
// TODO: Extend this later with more settings
|
||||
const userSchema = joi.object({
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
const router = require('express').Router();
|
||||
const xmlbuilder = require('xmlbuilder');
|
||||
const { PNID } = require('../../../models/pnid');
|
||||
const config = require('../../../../config.json');
|
||||
const { config } = require('../../../config-manager');
|
||||
|
||||
/**
|
||||
* [GET]
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ const NodeRSA = require('node-rsa');
|
|||
const aws = require('aws-sdk');
|
||||
const mailer = require('./mailer');
|
||||
const cache = require('./cache');
|
||||
const config = require('../config.json');
|
||||
const { config } = require('./config-manager');
|
||||
|
||||
const spacesEndpoint = new aws.Endpoint('nyc3.digitaloceanspaces.com');
|
||||
const s3 = new aws.S3({
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user