UNPKG

docusaurus-plugin-structurizr

Version:

This plugin allows you to use structurizr diagrams in your docusaurus documentation.

39 lines 1.48 kB
import path from 'node:path'; import { exec } from './exec.js'; import { PLUGIN_NAME } from './globals.js'; /** * Runs structurizr-cli or docker to generate diagrams. */ export async function runStructurizr(file, options) { const { format, docsPath, additionalStructurizrArgs, executor, dockerImage, outputDir } = options; const fileName = path.relative(docsPath, file); const resolvedOutputDir = outputDir ? path.resolve(outputDir) : ''; const executorMap = { docker: [ `docker run --rm`, `-v "${docsPath}:/usr/local/structurizr"`, resolvedOutputDir ? `-v "${resolvedOutputDir}:/usr/local/output"` : null, dockerImage, `export -workspace "${fileName}"`, resolvedOutputDir ? `-output "/usr/local/output"` : null, additionalStructurizrArgs, ] .filter(Boolean) .join(' '), cli: [ `structurizr-cli export -workspace ${file}`, resolvedOutputDir ? `-output "${resolvedOutputDir}"` : null, additionalStructurizrArgs, ] .filter(Boolean) .join(' '), auto: '', }; const executorCommand = executorMap[executor]; if (!executorCommand) { throw new Error(`${PLUGIN_NAME}: Unknown executor: ${executor}`); } const command = `${executorCommand} -format "${format}"`; await exec(command); } //# sourceMappingURL=run-structurizr.js.map