Skip to content

Commit a876bec

Browse files
committed
feat(output-name): add option for outputName
* document output and outputName
1 parent 91e4c84 commit a876bec

File tree

4 files changed

+34
-57
lines changed

4 files changed

+34
-57
lines changed

README.md

+17
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,23 @@ Ref: Post.authorId > User.id
105105

106106
4. [Visualize](https://dbdiagram.io/d) the `schema.dbml`
107107

108+
## Additional Options
109+
110+
| Option |  Description | Type |  Default |
111+
| ------------ | ---------------------------------- | -------- | ------------- |
112+
| `output` | Output directory for the DBML file | `string` | `./dbml` |
113+
| `outputName` | Name for the DBML file | `string` | `dbml.schema` |
114+
115+
Use additional options in the `prisma.schema`
116+
117+
```prisma
118+
generator dbml {
119+
provider = "prisma-dbml-generator"
120+
output = "../dbml"
121+
outputName = "awesome.dbml"
122+
}
123+
```
124+
108125
## Development
109126

110127
```bash

prisma/dbml/schema.dbml

-41
This file was deleted.

prisma/schema.prisma

+3-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ generator client {
1111
}
1212

1313
generator dbml {
14-
provider = "node ./dist/generator.js"
14+
provider = "node ./dist/generator.js"
15+
output = "../dbml"
16+
outputName = "awesome.dbml"
1517
}
1618

1719
model User {

src/cli/dbml-generator.ts

+14-15
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,23 @@ import { join } from 'path';
55

66
const { mkdir, writeFile } = promises;
77

8+
export const defaultDBMLFileName = 'schema.dbml';
9+
810
export async function generate(options: GeneratorOptions) {
9-
if (options.generator.output) {
10-
try {
11-
await mkdir(options.generator.output, { recursive: true });
11+
const outputDir = options.generator.output!;
12+
const dbmlFileName =
13+
options.generator.config.outputName || defaultDBMLFileName;
14+
15+
try {
16+
await mkdir(outputDir, { recursive: true });
1217

13-
// await writeFile('./test.json', JSON.stringify(options.dmmf.datamodel));
18+
// await writeFile('./test.json', JSON.stringify(options.dmmf.datamodel));
1419

15-
const dbmlSchema = generateDBMLSchema(options.dmmf);
20+
const dbmlSchema = generateDBMLSchema(options.dmmf);
1621

17-
await writeFile(
18-
join(options.generator.output, 'schema.dbml'),
19-
dbmlSchema
20-
);
21-
} catch (e) {
22-
console.error('Error: unable to write files for Prisma DBML Generator');
23-
throw e;
24-
}
25-
} else {
26-
throw new Error('No output was specified for Prisma DBML Generator');
22+
await writeFile(join(outputDir, dbmlFileName), dbmlSchema);
23+
} catch (e) {
24+
console.error('Error: unable to write files for Prisma DBML Generator');
25+
throw e;
2726
}
2827
}

0 commit comments

Comments
 (0)