UNPKG

asciidoctor-liquibase

Version:

Asciidoctor.js extension to render liquibase changesets as entity relationship diagram

157 lines (153 loc) 6.67 kB
// *** WARNING: DO NOT MODIFY *** This is a generated JavaScript source code! // // Generated by LF-ET 2.2.1 (230826a), https://www.lohrfink.de/lfet // From decision table // "/opt/data/github/asciidoctor/asciidoctor-liquibase/lfet/liquibase-parser.lfet" // 03.09.2023 22:06 // // Changes to this code resulting from refactorings can be synchronised // with LF-ET using the function "Scrapbook Import". // // Prolog Decision Table ----> const { stringify } = require('./utils') function parseLiquibaseChangeSet (processModel, currentFile, elements, logger, vfs, tillTag) { const content = [] let _step = 1 let _exit = false let currentElement let elementIndex = 0 let elementDetails // do { _exit = true // $$BasicIndentLevel=2 // Prolog Decision Table <---- // Condition B01/01: Step / 1 / Step 1 if (_step === 1) { // Condition B02/01: One more element to process / Y / Yes if (elementIndex < elements.length) { // Condition B05/01: changeset format / xml / xml based changeset definitions if (currentFile.endsWith('xml')) { // Rule R01 ----> // Trace ----> logger.info(`liquibase-parser - 20230903.220611 - 1 / 9 - ${currentFile} - ${stringify(processModel)}`) // Trace <---- // Action A01/01: define elementName callback function / xml / xml const elementNameCallback = (_element, _elementName) => { return _element['#name'] === _elementName } // Action A02/01: define tagValue callback function / xml / xml const tagValueCallback = (_element) => { return _element.$.tag } // Action A03/01: next element / X / execute action currentElement = elements[elementIndex++] elementDetails = require('./liquibase-elements.js').liquibaseElement(currentElement, logger, processModel.tillTag, elementNameCallback, tagValueCallback) processModel.finishedProcessing = (processModel.finishedProcessing ^ elementDetails.finishedProcessing) === 1 // Action A06/01: next Step / + / next Step _step++ _exit = false // Rule R01 <---- // Condition B05/02: changeset format / yaml / yaml based changeset definitions } else if (currentFile.endsWith('yaml')) { // Rule R02 ----> // Trace ----> logger.info(`liquibase-parser - 20230903.220611 - 2 / 9 - ${currentFile} - ${stringify(processModel)}`) // Trace <---- // Action A01/02: define elementName callback function / yaml / yaml const elementNameCallback = (_element, _elementName) => { return _element[_elementName] } // Action A02/02: define tagValue callback function / yaml / yaml const tagValueCallback = (_element) => { return _element.tagDatabase.tag } // Action A03/01: next element / X / execute action currentElement = elements[elementIndex++] elementDetails = require('./liquibase-elements.js').liquibaseElement(currentElement, logger, processModel.tillTag, elementNameCallback, tagValueCallback) processModel.finishedProcessing = (processModel.finishedProcessing ^ elementDetails.finishedProcessing) === 1 // Action A06/01: next Step / + / next Step _step++ _exit = false // Rule R02 <---- } else { // Rule R03 ----> // Trace ----> logger.info(`liquibase-parser - 20230903.220611 - 3 / 9 - ${currentFile} - ${stringify(processModel)}`) // Trace <---- // Action A06/02: next Step / Ex / Exit _exit = true // Rule R03 <---- } } else { // Rule R04 ----> // Trace ----> logger.info(`liquibase-parser - 20230903.220611 - 4 / 9 - ${currentFile} - ${stringify(processModel)}`) // Trace <---- // Action A06/02: next Step / Ex / Exit _exit = true // Rule R04 <---- } // Condition B01/02: Step / 2 / Step 2 } else if (_step === 2) { // Condition B03/01: Element should ignored / Y / Yes if (elementDetails.ignore) { // Rule R05 ----> // Trace ----> logger.info(`liquibase-parser - 20230903.220611 - 5 / 9 - ${currentFile} - ${stringify(processModel)}`) // Trace <---- // Action A05/01: ignore element / X / execute action logger.info(`${stringify(currentElement)} ignored.`) // Action A06/03: next Step / 1 / Step 1 _step = 1 _exit = false // Rule R05 <---- } else { // Condition B04/01: Processing finished / Y / Yes if (processModel.finishedProcessing) { // Rule R06 ----> // Trace ----> logger.info(`liquibase-parser - 20230903.220611 - 6 / 9 - ${currentFile} - ${stringify(processModel)}`) // Trace <---- // Action A06/02: next Step / Ex / Exit _exit = true // Rule R06 <---- } else { // Rule R07 ----> // Trace ----> logger.info(`liquibase-parser - 20230903.220611 - 7 / 9 - ${currentFile} - ${stringify(processModel)}`) // Trace <---- // Action A04/01: call extractor / X / execute action require(`./extractor/${elementDetails.elementName}.js`).extract(currentElement, currentFile, processModel, logger, vfs) // Action A06/01: next Step / + / next Step _step++ _exit = false // Rule R07 <---- } } } else { // Condition B04/01: Processing finished / Y / Yes if (processModel.finishedProcessing) { // Rule R08 ----> // Trace ----> logger.info(`liquibase-parser - 20230903.220611 - 8 / 9 - ${currentFile} - ${stringify(processModel)}`) // Trace <---- // Action A06/02: next Step / Ex / Exit _exit = true // Rule R08 <---- } else { // Rule R09 ----> // Trace ----> logger.info(`liquibase-parser - 20230903.220611 - 9 / 9 - ${currentFile} - ${stringify(processModel)}`) // Trace <---- // Action A06/03: next Step / 1 / Step 1 _step = 1 _exit = false // Rule R09 <---- } } // Epilog Decision Table ----> // } while (_exit === false) return content } module.exports = { parseLiquibaseChangeSet: (processModel, currentFile, elements, logger, vfs, tillTag) => { return parseLiquibaseChangeSet(processModel, currentFile, elements, logger, vfs, tillTag) } } // Epilog Decision Table <---- // End of generated JavaScript source code // Generated by LF-ET 2.2.1 (230826a), https://www.lohrfink.de/lfet