zipline/server/validateConfig.js

34 lines
988 B
JavaScript
Raw Normal View History

2021-06-23 11:20:20 -07:00
const Logger = require('../src/lib/logger');
2021-09-17 21:38:24 -07:00
const yup = require('yup');
2021-06-23 11:20:20 -07:00
2021-09-17 21:38:24 -07:00
const validator = yup.object({
core: yup.object({
secure: yup.bool().default(false),
secret: yup.string().min(8).required(),
host: yup.string().default('0.0.0.0'),
port: yup.number().default(3000),
database_url: yup.string().required(),
}).required(),
uploader: yup.object({
route: yup.string().required(),
length: yup.number().default(6),
directory: yup.string().required(),
admin_limit: yup.number().default(104900000),
user_limit: yup.number().default(104900000),
disabled_extensions: yup.array().default([]),
}).required(),
2021-09-24 20:31:45 -07:00
urls: yup.object({
route: yup.string().required(),
length: yup.number().default(6),
}).required(),
2021-09-17 21:38:24 -07:00
});
2021-06-23 11:20:20 -07:00
2021-09-24 20:31:45 -07:00
module.exports = config => {
2021-09-17 21:38:24 -07:00
try {
2021-09-24 20:31:45 -07:00
return validator.validateSync(config, { abortEarly: false });
2021-09-17 21:38:24 -07:00
} catch (e) {
throw `${e.errors.length} errors occured\n${e.errors.map(x => '\t' + x).join('\n')}`;
}
2021-06-23 11:20:20 -07:00
};