Skip to content

Commit 7c5dd94

Browse files
committed
doc: update doc
1 parent a8be440 commit 7c5dd94

12 files changed

Lines changed: 102 additions & 91 deletions

File tree

dbml-homepage/docs/js-module/core.md

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,13 @@ npm install @dbml/core
2525
const { importer } = require('@dbml/core');
2626
```
2727

28-
#### `importer.import(str, format)`
28+
#### `importer.import(str, format[, options])`
2929

3030
* **Arguments:**
3131
* ```{string} str```
3232
* ```{'mysql'|'mysqlLegacy'|'postgres'|'postgresLegacy'|'dbml'|'schemarb'|'mssql'|'mssqlLegacy'|'snowflake'|'json'|'oracle'} format```
33+
* ```{ImportOptions} options``` *(optional)*
34+
* `includeRecords` `{boolean}` — whether to include `Records` blocks in the output DBML. Defaults to `true`.
3335

3436
* **Returns:**
3537
* ```{string} DBML```
@@ -85,11 +87,14 @@ const dbml = importer.generateDbml(schemaJson);
8587
const { exporter } = require('@dbml/core');
8688
```
8789

88-
#### `exporter.export(str, format)`
90+
#### `exporter.export(str, format[, options])`
8991

9092
* **Arguments:**
9193
* ```{string} str```
92-
* ```{'mysql'|'postgres'|'oracle'|'dbml'|'schemarb'|'mssql'|'json'} format```
94+
* ```{'mysql'|'postgres'|'oracle'|'dbml'|'mssql'|'json'} format```
95+
* ```{ExportOptions} options``` *(optional)*
96+
* `includeRecords` `{boolean}` — whether to include `Records` blocks in the DBML output. Defaults to `true`. Only applies to the `dbml` format.
97+
* `isNormalized` `{boolean}` — whether the model is already normalized. Defaults to `true`. Only applies to the `json` format.
9398

9499
* **Returns:**
95100
* ```{string} SQL```
@@ -154,12 +159,18 @@ const database = parser.parse(dbml, 'dbml');
154159
const { ModelExporter } = require('@dbml/core');
155160
```
156161

157-
#### `ModelExporter.export(model, format, isNormalized)`
162+
#### `ModelExporter.export(model, format[, options])`
158163

159164
* **Arguments:**
160-
* ```{model} Database```
161-
* ```{'mysql'|'postgres'|'oracle'|'dbml'|'schemarb'|'mssql'|'json'} format```
162-
* ```{boolean} isNormalized```
165+
* ```{Database|NormalizedModel} model```
166+
* ```{'mysql'|'postgres'|'oracle'|'dbml'|'mssql'|'json'} format```
167+
* ```{ExportOptions} options``` *(optional)*
168+
* `includeRecords` `{boolean}` — whether to include `Records` blocks in the DBML output. Defaults to `true`. Only applies to the `dbml` format.
169+
* `isNormalized` `{boolean}` — whether the passed model is already normalized. Defaults to `true`. Only applies to the `json` format.
170+
171+
:::note
172+
Passing a boolean as the third argument is deprecated. Use `ExportOptions` instead.
173+
:::
163174

164175
* **Returns:** specified format string
165176

@@ -177,7 +188,5 @@ const parser = new Parser();
177188
const database = parser.parse(dbml, 'dbml');
178189

179190
// Export Database object to PostgreSQL
180-
const postgreSQL = ModelExporter.export(database, 'postgres', false);
181-
// or
182-
const postgreSQL = ModelExporter.export(database.normalize(), 'postgres');
191+
const postgreSQL = ModelExporter.export(database, 'postgres');
183192
```

packages/dbml-core/src/export/DbmlExporter.ts

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,11 @@ import type { NormalizedModel, RecordValue } from '../../types/model_structure/d
66
import type { NormalizedTable } from '../../types/model_structure/table';
77
import type { NormalizedTableGroup } from '../../types/model_structure/tableGroup';
88

9-
export interface DbmlExporterFlags {
10-
/** When false, TableData (Records) blocks are omitted from the output. Defaults to true. */
9+
export interface DbmlExporterOptions {
10+
/** When false, Records blocks are omitted from the output. Defaults to true. */
1111
includeRecords: boolean;
1212
}
1313

14-
15-
interface TableContent {
16-
tableId: number;
17-
fieldContents: string[];
18-
checkContents: string[];
19-
indexContents: string[];
20-
}
21-
2214
class DbmlExporter {
2315
static hasWhiteSpace (str: string): boolean {
2416
return /\s/g.test(str);
@@ -202,7 +194,12 @@ class DbmlExporter {
202194
return lines;
203195
}
204196

205-
static getTableContentArr (tableIds: number[], model: NormalizedModel): TableContent[] {
197+
static getTableContentArr (tableIds: number[], model: NormalizedModel): {
198+
tableId: number;
199+
fieldContents: string[];
200+
checkContents: string[];
201+
indexContents: string[];
202+
}[] {
206203
const tableContentArr = tableIds.map((tableId) => {
207204
const fieldContents = DbmlExporter.getFieldLines(tableId, model);
208205
const checkContents = DbmlExporter.getCheckLines(tableId, model);
@@ -411,10 +408,10 @@ class DbmlExporter {
411408
return recordStrs.join('\n');
412409
}
413410

414-
static export (model: NormalizedModel, flags: DbmlExporterFlags): string {
411+
static export (model: NormalizedModel, options: DbmlExporterOptions): string {
415412
const elementStrs: string[] = [];
416413
const database = model.database['1'];
417-
const { includeRecords } = flags;
414+
const { includeRecords } = options;
418415

419416
database.schemaIds.forEach((schemaId) => {
420417
const {

packages/dbml-core/src/export/JsonExporter.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import Database from '../model_structure/database';
22
import type { NormalizedModel } from '../../types/model_structure/database';
33

4-
export interface JsonExporterFlags {
4+
export interface JsonExporterOptions {
55
/** When false, the model is exported via its `.export()` method before stringifying. Defaults to true. */
66
isNormalized: boolean;
77
}
88

99
class JsonExporter {
10-
static export (model: Database | NormalizedModel, flags: JsonExporterFlags): string {
11-
const { isNormalized } = flags;
10+
static export (model: Database | NormalizedModel, options: JsonExporterOptions): string {
11+
const { isNormalized } = options;
1212

1313
if (!isNormalized && model instanceof Database) {
1414
return JSON.stringify(model.export(), null, 2);

packages/dbml-core/src/export/ModelExporter.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,36 +6,36 @@ import SqlServerExporter from './SqlServerExporter';
66
import OracleExporter from './OracleExporter';
77
import Database from '../model_structure/database';
88
import type { NormalizedModel } from '../../types/model_structure/database';
9-
import { ExportFlags, ExportFormatOption, normalizeExportFlags } from './index';
9+
import { ExportOptions, ExportFormat, normalizeExportOptions } from './index';
1010

1111
class ModelExporter {
1212
/**
13-
* @deprecated Passing a boolean as the third argument is deprecated. Use `ExportFlags` instead.
13+
* @deprecated Passing a boolean as the third argument is deprecated. Use `ExportOptions` instead.
1414
*/
1515
static export (
1616
model: Database | NormalizedModel,
17-
format: ExportFormatOption,
18-
flags: boolean,
17+
format: ExportFormat,
18+
options: boolean,
1919
): string;
2020

2121
static export (
2222
model: Database | NormalizedModel,
23-
format: ExportFormatOption,
24-
flags?: ExportFlags,
23+
format: ExportFormat,
24+
options?: ExportOptions,
2525
): string;
2626

2727
static export (
2828
model: Database | NormalizedModel,
29-
format: ExportFormatOption,
30-
flags: ExportFlags | boolean = {
29+
format: ExportFormat,
30+
options: ExportOptions | boolean = {
3131
isNormalized: true,
3232
includeRecords: true,
3333
},
3434
): string {
3535
const {
3636
isNormalized,
3737
includeRecords,
38-
} = normalizeExportFlags(flags);
38+
} = normalizeExportOptions(options);
3939

4040
const normalizedModel: NormalizedModel = model instanceof Database
4141
? model.normalize()

packages/dbml-core/src/export/index.ts

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,60 @@
11
import ModelExporter from './ModelExporter';
22
import Parser from '../parse/Parser';
3-
import { DbmlExporterFlags } from '../types';
4-
import { JsonExporterFlags } from './JsonExporter';
3+
import { DbmlExporterOptions } from './DbmlExporter';
4+
import { JsonExporterOptions } from './JsonExporter';
55

6-
export type ExportFormatOption = 'dbml' | 'mysql' | 'postgres' | 'json' | 'mssql' | 'oracle';
6+
export type ExportFormat = 'dbml' | 'mysql' | 'postgres' | 'json' | 'mssql' | 'oracle';
77

8-
export type ExportFlags =
9-
Partial<DbmlExporterFlags> &
10-
Partial<JsonExporterFlags>;
8+
export type ExportOptions =
9+
Partial<DbmlExporterOptions> &
10+
Partial<JsonExporterOptions>;
1111

1212
/**
13-
* @deprecated Passing a boolean as the third argument is deprecated. Use `ExportFlags` instead.
13+
* @deprecated Passing a boolean as the third argument is deprecated. Use `ExportOptions` instead.
1414
*/
1515
function _export (
1616
str: string,
17-
format: ExportFormatOption,
18-
flags: boolean,
17+
format: ExportFormat,
18+
options: boolean,
1919
): string;
2020

2121
function _export (
2222
str: string,
23-
format: ExportFormatOption,
24-
flags?: ExportFlags,
23+
format: ExportFormat,
24+
options?: ExportOptions,
2525
): string;
2626

2727
function _export (
2828
str: string,
29-
format: ExportFormatOption,
30-
flags: ExportFlags | boolean = {
29+
format: ExportFormat,
30+
options: ExportOptions | boolean = {
3131
isNormalized: true,
3232
includeRecords: true
3333
},
3434
): string {
35-
const resolvedFlags = normalizeExportFlags(flags);
35+
const resolvedFlags = normalizeExportOptions(options);
3636
const database = (new Parser()).parse(str, 'dbmlv2');
3737
return ModelExporter.export(database.normalize(), format, resolvedFlags);
3838
}
3939

40-
export function normalizeExportFlags (
41-
flags: ExportFlags | boolean = {},
42-
): Required<ExportFlags> {
43-
if (typeof flags === 'boolean') {
40+
export function normalizeExportOptions (
41+
options: ExportOptions | boolean = {},
42+
): Required<ExportOptions> {
43+
if (typeof options === 'boolean') {
4444
return {
45-
isNormalized: flags,
45+
isNormalized: options,
4646
includeRecords: true,
4747
};
4848
}
4949

5050
const {
5151
isNormalized = true,
5252
includeRecords = true,
53-
} = flags;
53+
} = options;
5454

5555
return {
56-
isNormalized: isNormalized,
57-
includeRecords: includeRecords,
56+
isNormalized,
57+
includeRecords,
5858
};
5959
}
6060

packages/dbml-core/src/import/index.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
import { generateDatabase } from '../parse/databaseGenerator';
22
import Parser from '../parse/Parser';
33
import ModelExporter from '../export/ModelExporter';
4-
import { DbmlExporterFlags } from 'export/DbmlExporter';
4+
import { DbmlExporterOptions } from 'export/DbmlExporter';
55

6-
export type ImportFormatOption = 'dbml' | 'mysql' | 'postgres' | 'json' | 'mssql' | 'postgresLegacy' | 'mssqlLegacy' | 'oracle';
6+
export type ImportFormat = 'dbml' | 'mysql' | 'postgres' | 'json' | 'mssql' | 'postgresLegacy' | 'mssqlLegacy' | 'schemarb' | 'snowflake' | 'oracle';
77

8-
export type ImportFlags = Partial<DbmlExporterFlags>;
8+
export type ImportOptions = Partial<DbmlExporterOptions>;
99

1010
function _import (
1111
str: string,
12-
format: ImportFormatOption,
13-
flags: ImportFlags = {
12+
format: ImportFormat,
13+
options: ImportOptions = {
1414
includeRecords: true,
1515
},
1616
): string {
1717
const database = (new Parser()).parse(str, format);
18-
const dbml = ModelExporter.export(database.normalize(), 'dbml', normalizeImportFlags(flags));
18+
const dbml = ModelExporter.export(database.normalize(), 'dbml', normalizeImportOptions(options));
1919

2020
return dbml;
2121
}
@@ -27,12 +27,12 @@ function generateDbml (schemaJson: unknown): string {
2727
return dbml;
2828
}
2929

30-
export function normalizeImportFlags(
31-
flags: ImportFlags,
32-
): Required<ImportFlags> {
30+
export function normalizeImportOptions(
31+
options: ImportOptions,
32+
): Required<ImportOptions> {
3333
const {
3434
includeRecords = true,
35-
} = flags;
35+
} = options;
3636

3737
return {
3838
includeRecords,

packages/dbml-core/types/export/DbmlExporter.d.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import type { NormalizedModel } from '../model_structure/database';
22
import type { NormalizedTable } from '../model_structure/table';
33
import type { NormalizedTableGroup } from '../model_structure/tableGroup';
44

5-
export interface DbmlExporterFlags {
5+
export interface DbmlExporterOptions {
66
/** When false, TableData (Records) blocks are omitted from the output. Defaults to true. */
77
includeRecords: boolean;
88
}
@@ -24,7 +24,7 @@ declare class DbmlExporter {
2424
static exportTableGroups(tableGroupIds: number[], model: NormalizedModel): string;
2525
static exportStickyNotes(model: NormalizedModel): string;
2626
static exportRecords(model: NormalizedModel): string;
27-
static export(model: NormalizedModel, flags: DbmlExporterFlags): string;
27+
static export(model: NormalizedModel, flags: DbmlExporterOptions): string;
2828
}
2929

3030
export default DbmlExporter;
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import type Database from '../model_structure/database';
22
import type { NormalizedModel } from '../model_structure/database';
33

4-
export interface JsonExporterFlags {
4+
export interface JsonExporterOptions {
55
/** When false, the model is exported via its `.export()` method before stringifying. Defaults to true. */
66
isNormalized: boolean;
77
}
88

99
declare class JsonExporter {
10-
static export(model: Database | NormalizedModel, flags: JsonExporterFlags): string;
10+
static export(model: Database | NormalizedModel, flags: JsonExporterOptions): string;
1111
}
1212

1313
export default JsonExporter;
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import type Database from '../model_structure/database';
22
import type { NormalizedModel } from '../model_structure/database';
3-
import type { ExportFormatOption, ExportFlags } from './index';
3+
import type { ExportFormat, ExportOptions } from './index';
44

55
declare class ModelExporter {
66
/**
7-
* @deprecated Passing a boolean as the third argument is deprecated. Use `ExportFlags` instead.
7+
* @deprecated Passing a boolean as the third argument is deprecated. Use `ExportOptions` instead.
88
*/
9-
static export(model: Database | NormalizedModel, format: ExportFormatOption, flags: boolean): string;
10-
static export(model: Database | NormalizedModel, format: ExportFormatOption, flags?: ExportFlags): string;
9+
static export(model: Database | NormalizedModel, format: ExportFormat, flags: boolean): string;
10+
static export(model: Database | NormalizedModel, format: ExportFormat, flags?: ExportOptions): string;
1111
}
1212

1313
export default ModelExporter;

packages/dbml-core/types/export/index.d.ts

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
1-
import type { DbmlExporterFlags } from './DbmlExporter';
2-
import type { JsonExporterFlags } from './JsonExporter';
1+
import type { DbmlExporterOptions } from './DbmlExporter';
2+
import type { JsonExporterOptions } from './JsonExporter';
33

4-
export type ExportFormatOption = 'dbml' | 'mysql' | 'postgres' | 'json' | 'mssql' | 'oracle';
4+
export type ExportFormat = 'dbml' | 'mysql' | 'postgres' | 'json' | 'mssql' | 'oracle';
55

6-
export type ExportFlags =
7-
Partial<DbmlExporterFlags> &
8-
Partial<JsonExporterFlags>;
6+
export type ExportOptions =
7+
Partial<DbmlExporterOptions> &
8+
Partial<JsonExporterOptions>;
99

10-
declare function _export(str: string, format: ExportFormatOption, flags: boolean): string;
11-
declare function _export(str: string, format: ExportFormatOption, flags?: ExportFlags): string;
10+
export declare function normalizeExportOptions(flags: ExportOptions | boolean): Required<ExportOptions>;
11+
export declare function normalizeExportOptions(flags?: ExportOptions | boolean): Required<ExportOptions>;
12+
13+
declare function _export(str: string, format: ExportFormat, flags: boolean): string;
14+
declare function _export(str: string, format: ExportFormat, flags?: ExportOptions): string;
1215

1316
declare const _default: {
1417
export: typeof _export;

0 commit comments

Comments
 (0)