Skip to content

Commit 249d340

Browse files
committed
fix parameters
1 parent 7920bb7 commit 249d340

File tree

3 files changed

+38
-25
lines changed

3 files changed

+38
-25
lines changed

src/Library.ts

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import {
1616
} from "../deps/mermaid/src/diagram-api/detectType";
1717
import { log } from "../deps/mermaid/src/logger";
1818
import erDb from "./mermaid/src/diagrams/er/erDb";
19-
import { DiagramDefinition } from "./types";
19+
import { DiagramDefinition, MarkdownContentResponseI } from "./types";
2020
import { DbParser } from "./generate-sql-ddl";
2121
const diagrams: Record<string, DiagramDefinition> = {};
2222

@@ -80,10 +80,9 @@ export const getDiagram = (name: string): DiagramDefinition => {
8080
* @returns
8181
*/
8282
export const WriteMermaidErDiagramsToSqlFiles= async function (
83-
definition: string,
84-
databaseType: string
83+
markdownContent: MarkdownContentResponseI
8584
): Promise<string> {
86-
const sqlOutputs = GenerateSqlFromMermaid(definition, databaseType);
85+
const sqlOutputs = GenerateSqlFromMermaid(markdownContent);
8786
for (const key in sqlOutputs) {
8887
if (Object.prototype.hasOwnProperty.call(sqlOutputs, key)) {
8988
await fs.promises.writeFile(key, sqlOutputs[key]);
@@ -100,8 +99,7 @@ export const WriteMermaidErDiagramsToSqlFiles= async function (
10099
* @returns
101100
*/
102101
export const GenerateSqlFromMermaid = function (
103-
definition: string,
104-
databaseType: string
102+
markdownContent: MarkdownContentResponseI
105103
): Record<string, string> {
106104
const outputDiagrams: Record<string,string> = {};
107105
const parser = erParser();
@@ -134,7 +132,7 @@ export const GenerateSqlFromMermaid = function (
134132
"gm"
135133
);
136134
const mermaidChartsInMarkdownRegex = new RegExp(mermaidChartsInMarkdown);
137-
const output = "output.sql";
135+
const output = `${markdownContent.settings.outputName}.sql`;
138136
let outputFormat = "";
139137
if (!outputFormat) {
140138
outputFormat = path.extname(output).replace(".", "");
@@ -147,7 +145,7 @@ export const GenerateSqlFromMermaid = function (
147145
throw new Error("Output format must be one of \"sql\"");
148146
}
149147
const diagrams: string[][] = [];
150-
const outDefinition = definition.replace(
148+
const outDefinition = markdownContent.content.replace(
151149
mermaidChartsInMarkdownRegexGlobal,
152150
(mermaidMd) => {
153151
const regexResult = mermaidChartsInMarkdownRegex.exec(mermaidMd);
@@ -200,10 +198,10 @@ export const GenerateSqlFromMermaid = function (
200198
diag = getDiagram(type);
201199
const r: boolean = diag.parser.parse(md);
202200
if (r) {
203-
const sqlHeader = getSqlHeader(databaseType);
201+
const sqlHeader = getSqlHeader(markdownContent.settings.database);
204202
// models to sql
205203
const ddlSyntax = new DbParser(
206-
databaseType,
204+
markdownContent.settings.database,
207205
diag.db
208206
).getSQLDataDefinition();
209207

src/index.ts

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@
22
import chalk from "chalk";
33
import clear from "clear";
44
import figlet from "figlet";
5-
import path from "path";
5+
// import path from "path";
66
import { program } from "commander";
77
import * as fs from "fs";
88
import { WriteMermaidErDiagramsToSqlFiles } from "./Library";
9+
import { MarkdownContentResponseI, MarkdownInputSettingsI } from "./types";
910
clear();
1011
console.log(
1112
chalk.red(
@@ -21,7 +22,7 @@ program
2122
.option("-r, --raw", "src is raw content rather than file")
2223
.option(
2324
"-o, --output <string>",
24-
"Output file e.g. result becomes result-1.sql"
25+
"Output file format e.g. result becomes result-1.sql"
2526
)
2627
.option(
2728
"-d, --database <string>",
@@ -32,38 +33,37 @@ program
3233
const options = program.opts();
3334

3435
console.log("current options:");
35-
if (options.src) console.log(" - src");
36+
if (options.src) console.log(` - src ${options.src}`);
3637
// else {
3738
// console.log(`error: required option '-s, --src <string>' not specified`);
3839
// process.exit(1);
3940
// }
40-
if (options.database) console.log(" - database");
41+
if (options.database) console.log(` - database ${options.database}`);
42+
43+
if (options.raw) console.log(" - raw true");
4144

4245
const database: string =
4346
undefined === options.database ? "postgres" : options.database || "no";
4447

4548
const output: string =
46-
undefined === options.database ? "result" : options.database || "result";
49+
undefined === options.output ? "output" : options.output || "result";
4750

4851
const src: string = options.src;
4952

5053
const isRaw = options.raw ? true : false;
5154
// required params, input only
5255

53-
console.log(" - %s database", database);
56+
// console.log(" - %s database", database);
5457

5558
if (!process.argv.slice(2).length) {
5659
program.outputHelp();
5760
}
5861

59-
interface MarkdownInputSettingsI {
60-
src: string;
61-
isRaw: boolean;
62-
}
63-
6462
const markdownFileSettings: MarkdownInputSettingsI = {
6563
src,
6664
isRaw,
65+
outputName: output,
66+
database
6767
};
6868

6969
/**
@@ -72,7 +72,7 @@ const markdownFileSettings: MarkdownInputSettingsI = {
7272
*/
7373
async function LoadMarkDownFile(
7474
inputInformation: MarkdownInputSettingsI
75-
): Promise<string> {
75+
): Promise<MarkdownContentResponseI> {
7676
let fileContents: string | null = null;
7777
if (inputInformation.isRaw) {
7878
fileContents = inputInformation.src;
@@ -83,13 +83,16 @@ async function LoadMarkDownFile(
8383
}
8484
fileContents = await fs.readFileSync(inputInformation.src, "utf8");
8585
}
86-
return fileContents;
86+
return {
87+
settings: inputInformation,
88+
content: fileContents
89+
};
8790
}
8891

8992
LoadMarkDownFile(markdownFileSettings)
90-
.then(async (contents) => {
93+
.then(async (response) => {
9194
console.log("done loading file");
92-
await WriteMermaidErDiagramsToSqlFiles(contents, options.database).then((result) => {
95+
await WriteMermaidErDiagramsToSqlFiles(response).then((result) => {
9396
console.log(result);
9497
console.log("done generating sql");
9598
});

src/types/index.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
export interface MarkdownInputSettingsI {
2+
src: string;
3+
isRaw: boolean;
4+
outputName: string;
5+
database: string;
6+
}
7+
8+
export interface MarkdownContentResponseI {
9+
content: string;
10+
settings: MarkdownInputSettingsI;
11+
}
12+
113
/**
214
* diagram definition, don't need renderer or styles
315
*/

0 commit comments

Comments
 (0)