conflutora
Version:
Provider to convert and publish Antora documentation on Confluence
84 lines • 2.77 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.configService = exports.createDefaultConfig = void 0;
const convict_1 = __importDefault(require("convict"));
const Logger_js_1 = require("../utils/Logger.js");
// Pre-process environment variables to keep only non empty values
const getNonEmptyEnvVars = () => {
return Object.entries(process.env).reduce((acc, [key, value]) => {
if (value && value !== '')
acc[key] = value;
return acc;
}, {});
};
const createDefaultConfig = () => {
return (0, convict_1.default)({
nodeEnv: {
doc: 'The node environment',
format: ['production', 'development', 'test'],
default: 'development',
env: 'NODE_ENV'
},
application: {
name: {
doc: 'The application name',
format: String,
default: 'Conflutora'
},
version: {
doc: 'The application version',
format: String,
default: '1.0.0'
}
},
confluence: {
url: {
doc: 'The confluence base url',
format: String,
default: '',
env: 'CONFLUENCE_URL'
},
username: {
doc: 'The confluence user name',
format: String,
default: '',
env: 'CONFLUENCE_USERNAME'
},
password: {
doc: 'The confluence password or token',
format: String,
default: 'https://test.atlassian.net'
},
spaceKey: {
doc: 'The confluence space key',
format: String,
default: 'TEST'
},
ancestorId: {
doc: 'The confluence ancestor id (Page Id)',
format: String,
default: '',
nullable: true
},
skipPublish: {
doc: 'Skip publishing to confluence',
format: Boolean,
default: false,
env: 'SKIP_CONFLUENCE'
}
}
}, { env: getNonEmptyEnvVars() });
};
exports.createDefaultConfig = createDefaultConfig;
exports.configService = (0, exports.createDefaultConfig)();
try {
exports.configService.validate({ allowed: 'strict' });
}
catch (err) {
new Logger_js_1.Logger('Config').error('Error while loading config', err.stack);
process.exit(1);
}
//# sourceMappingURL=config.service.js.map