UNPKG

@dbml/cli

Version:

See our website [@dbml/cli](https://dbml.dbdiagram.io/cli/) for more information

37 lines (36 loc) 2.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exportHandler; var _figures = _interopRequireDefault(require("figures")); var _chalk = _interopRequireDefault(require("chalk")); var _path = _interopRequireDefault(require("path")); var _core = require("@dbml/core"); var _utils = require("./utils"); var _validatePlugins = require("./validatePlugins/validatePlugins"); var _outputConsolePlugin = _interopRequireDefault(require("./outputPlugins/outputConsolePlugin")); var _outputFilePlugin = _interopRequireDefault(require("./outputPlugins/outputFilePlugin")); var _config = _interopRequireDefault(require("./config")); var _logger = _interopRequireDefault(require("../helpers/logger")); var _errors = require("../errors"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } async function exportHandler(program) { try { const inputPaths = (0, _utils.resolvePaths)(program.args); (0, _utils.validateInputFilePaths)(inputPaths, _validatePlugins.validateFilePlugin); const opts = program.opts(); const format = (0, _utils.getFormatOpt)(opts); if (!opts.outFile && !opts.outDir) { (0, _utils.generate)(inputPaths, dbml => _core.exporter.export(dbml, format), _outputConsolePlugin.default); } else if (opts.outFile) { const header = ['-- SQL dump generated using DBML (dbml.dbdiagram.io)\n', `-- Database: ${_config.default[format].name}\n`, `-- Generated at: ${new Date().toISOString()}\n\n`].join(''); (0, _utils.generate)(inputPaths, dbml => _core.exporter.export(dbml, format), new _outputFilePlugin.default((0, _utils.resolvePaths)(opts.outFile), header)); console.log(` ${_chalk.default.green(_figures.default.main.tick)} Generated SQL dump file (${_config.default[format].name}): ${_path.default.basename(opts.outFile)}`); } } catch (error) { _logger.default.error(`\n ${error.diags.map(diag => new _errors.SyntaxError(diag.filepath, diag)).map(({ message }) => message).join('\n ')}`); } }