conflutora
Version:
Provider to convert and publish Antora documentation on Confluence
48 lines • 2.13 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const node_path_1 = __importDefault(require("node:path"));
const provider_service_1 = require("./services/provider.service");
const Logger_1 = require("./utils/Logger");
const config_service_1 = require("./config/config.service");
module.exports = async (destConfig, files, playbook) => {
const logger = new Logger_1.Logger(config_service_1.configService.get('application.name'));
// Check if publishing to Confluence should be skipped
if (config_service_1.configService.get('confluence.skipPublish')) {
logger.info('Skip publishing to Confluence, because SKIP_CONFLUENCE was set');
return;
}
// Prepare files data
const filesData = [];
for await (const file of files) {
filesData.push({
base: node_path_1.default.join(file.base, playbook.output.dir),
path: file.path
});
}
// Filter out files that should not be published
const filteredFiles = filesData.filter((file) => !file.path.startsWith('_'));
if (filteredFiles.length === 0) {
logger.info('No files to publish to Confluence');
return;
}
// Set config based on destConfig
if (destConfig.confluenceUrl)
config_service_1.configService.set('confluence.url', destConfig.confluenceUrl);
if (destConfig.confluenceSpaceKey)
config_service_1.configService.set('confluence.spaceKey', destConfig.confluenceSpaceKey);
if (destConfig.confluenceAncestorId)
config_service_1.configService.set('confluence.ancestorId', destConfig.confluenceAncestorId);
// Log and publish
logger.info(`Publishing "${playbook.site.title}" to Confluence`);
try {
await new provider_service_1.ProviderService().handle(filteredFiles);
}
catch (error) {
// eslint-disable-next-line no-console
console.error('Provider processing failed:', error.message);
}
};
//# sourceMappingURL=main.js.map