drizzle-docs-generator 0.1.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ja.md +67 -8
- package/README.md +62 -3
- package/dist/adapter/index.d.ts +10 -0
- package/dist/adapter/index.d.ts.map +1 -0
- package/dist/adapter/types.d.ts +40 -0
- package/dist/adapter/types.d.ts.map +1 -0
- package/dist/adapter/v0-adapter.d.ts +73 -0
- package/dist/adapter/v0-adapter.d.ts.map +1 -0
- package/dist/adapter/v0-adapter.js +136 -0
- package/dist/adapter/v0-adapter.js.map +1 -0
- package/dist/adapter/v1-adapter.d.ts +40 -0
- package/dist/adapter/v1-adapter.d.ts.map +1 -0
- package/dist/adapter/v1-adapter.js +83 -0
- package/dist/adapter/v1-adapter.js.map +1 -0
- package/dist/cli/index.js +213 -40
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/integration-test-utils.d.ts +19 -0
- package/dist/cli/integration-test-utils.d.ts.map +1 -0
- package/dist/formatter/dbml-builder.d.ts +29 -0
- package/dist/formatter/dbml-builder.d.ts.map +1 -0
- package/dist/formatter/dbml-builder.js +39 -0
- package/dist/formatter/dbml-builder.js.map +1 -0
- package/dist/formatter/dbml.d.ts +81 -0
- package/dist/formatter/dbml.d.ts.map +1 -0
- package/dist/formatter/dbml.js +163 -0
- package/dist/formatter/dbml.js.map +1 -0
- package/dist/formatter/index.d.ts +7 -0
- package/dist/formatter/index.d.ts.map +1 -0
- package/dist/formatter/markdown.d.ts +125 -0
- package/dist/formatter/markdown.d.ts.map +1 -0
- package/dist/formatter/markdown.js +235 -0
- package/dist/formatter/markdown.js.map +1 -0
- package/dist/formatter/mermaid.d.ts +102 -0
- package/dist/formatter/mermaid.d.ts.map +1 -0
- package/dist/formatter/mermaid.js +177 -0
- package/dist/formatter/mermaid.js.map +1 -0
- package/dist/formatter/types.d.ts +37 -0
- package/dist/formatter/types.d.ts.map +1 -0
- package/dist/generator/common.d.ts +109 -211
- package/dist/generator/common.d.ts.map +1 -1
- package/dist/generator/common.js +252 -481
- package/dist/generator/common.js.map +1 -1
- package/dist/generator/index.d.ts +2 -1
- package/dist/generator/index.d.ts.map +1 -1
- package/dist/generator/mysql.js +3 -3
- package/dist/generator/pg.d.ts +8 -7
- package/dist/generator/pg.d.ts.map +1 -1
- package/dist/generator/pg.js +29 -31
- package/dist/generator/pg.js.map +1 -1
- package/dist/generator/sqlite.js +3 -3
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -9
- package/dist/index.js.map +1 -1
- package/dist/test-utils/cli-runner.d.ts +4 -0
- package/dist/test-utils/cli-runner.d.ts.map +1 -1
- package/dist/test-utils/dbml-validator.d.ts +37 -0
- package/dist/test-utils/dbml-validator.d.ts.map +1 -1
- package/dist/types.d.ts +132 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -2
package/dist/types.d.ts
CHANGED
|
@@ -50,4 +50,136 @@ export interface ColumnAttributes {
|
|
|
50
50
|
default?: string;
|
|
51
51
|
note?: string;
|
|
52
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Supported database types
|
|
55
|
+
*
|
|
56
|
+
* @remarks
|
|
57
|
+
* TODO: Unify with `Dialect` type in `src/cli/index.ts` when implementing CLI --format option (#59)
|
|
58
|
+
*/
|
|
59
|
+
export type DatabaseType = "postgresql" | "mysql" | "sqlite";
|
|
60
|
+
/**
|
|
61
|
+
* Column definition in the intermediate schema
|
|
62
|
+
*/
|
|
63
|
+
export interface ColumnDefinition {
|
|
64
|
+
/** Column name */
|
|
65
|
+
name: string;
|
|
66
|
+
/** SQL data type (e.g., "varchar(255)", "integer", "timestamp") */
|
|
67
|
+
type: string;
|
|
68
|
+
/** Whether the column allows NULL values */
|
|
69
|
+
nullable: boolean;
|
|
70
|
+
/** Default value expression (e.g., "now()", "'active'") */
|
|
71
|
+
defaultValue?: string;
|
|
72
|
+
/** Whether this column is a primary key */
|
|
73
|
+
primaryKey: boolean;
|
|
74
|
+
/** Whether this column has a unique constraint */
|
|
75
|
+
unique: boolean;
|
|
76
|
+
/** Whether this column auto-increments */
|
|
77
|
+
autoIncrement?: boolean;
|
|
78
|
+
/** JSDoc comment or description for this column */
|
|
79
|
+
comment?: string;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Index definition in the intermediate schema
|
|
83
|
+
*/
|
|
84
|
+
export interface IndexDefinition {
|
|
85
|
+
/** Index name */
|
|
86
|
+
name: string;
|
|
87
|
+
/** Columns included in the index */
|
|
88
|
+
columns: string[];
|
|
89
|
+
/** Whether this is a unique index */
|
|
90
|
+
unique: boolean;
|
|
91
|
+
/** Index type (e.g., "btree", "hash", "gin") - database specific */
|
|
92
|
+
type?: string;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Constraint types
|
|
96
|
+
*/
|
|
97
|
+
export type ConstraintType = "primary_key" | "foreign_key" | "unique" | "check" | "not_null";
|
|
98
|
+
/**
|
|
99
|
+
* Constraint definition in the intermediate schema
|
|
100
|
+
*/
|
|
101
|
+
export interface ConstraintDefinition {
|
|
102
|
+
/** Constraint name */
|
|
103
|
+
name: string;
|
|
104
|
+
/** Type of constraint */
|
|
105
|
+
type: ConstraintType;
|
|
106
|
+
/** Columns involved in the constraint */
|
|
107
|
+
columns: string[];
|
|
108
|
+
/** SQL definition or expression (for CHECK constraints) */
|
|
109
|
+
definition?: string;
|
|
110
|
+
/** Referenced table (for foreign keys) */
|
|
111
|
+
referencedTable?: string;
|
|
112
|
+
/** Referenced columns (for foreign keys) */
|
|
113
|
+
referencedColumns?: string[];
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Table definition in the intermediate schema
|
|
117
|
+
*/
|
|
118
|
+
export interface TableDefinition {
|
|
119
|
+
/** Table name */
|
|
120
|
+
name: string;
|
|
121
|
+
/** Schema name (e.g., "public" for PostgreSQL) */
|
|
122
|
+
schema?: string;
|
|
123
|
+
/** JSDoc comment or description for this table */
|
|
124
|
+
comment?: string;
|
|
125
|
+
/** Column definitions */
|
|
126
|
+
columns: ColumnDefinition[];
|
|
127
|
+
/** Index definitions */
|
|
128
|
+
indexes: IndexDefinition[];
|
|
129
|
+
/** Constraint definitions */
|
|
130
|
+
constraints: ConstraintDefinition[];
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Relation types for intermediate schema
|
|
134
|
+
* Note: This is more detailed than RelationType used for DBML output
|
|
135
|
+
*/
|
|
136
|
+
export type IntermediateRelationType = "one-to-one" | "one-to-many" | "many-to-one" | "many-to-many";
|
|
137
|
+
/**
|
|
138
|
+
* Relation/Reference definition in the intermediate schema
|
|
139
|
+
*/
|
|
140
|
+
export interface RelationDefinition {
|
|
141
|
+
/** Optional relation name */
|
|
142
|
+
name?: string;
|
|
143
|
+
/** Source table name */
|
|
144
|
+
fromTable: string;
|
|
145
|
+
/** Source column names */
|
|
146
|
+
fromColumns: string[];
|
|
147
|
+
/** Target table name */
|
|
148
|
+
toTable: string;
|
|
149
|
+
/** Target column names */
|
|
150
|
+
toColumns: string[];
|
|
151
|
+
/** Relation cardinality */
|
|
152
|
+
type: IntermediateRelationType;
|
|
153
|
+
/** ON DELETE action */
|
|
154
|
+
onDelete?: string;
|
|
155
|
+
/** ON UPDATE action */
|
|
156
|
+
onUpdate?: string;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Enum definition in the intermediate schema (PostgreSQL specific)
|
|
160
|
+
*/
|
|
161
|
+
export interface EnumDefinition {
|
|
162
|
+
/** Enum type name */
|
|
163
|
+
name: string;
|
|
164
|
+
/** Schema name (e.g., "public" for PostgreSQL) */
|
|
165
|
+
schema?: string;
|
|
166
|
+
/** Enum values */
|
|
167
|
+
values: string[];
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* The complete intermediate schema representation
|
|
171
|
+
*
|
|
172
|
+
* This is a database-agnostic representation of a schema that can be
|
|
173
|
+
* used to generate various output formats (DBML, Markdown, JSON, etc.)
|
|
174
|
+
*/
|
|
175
|
+
export interface IntermediateSchema {
|
|
176
|
+
/** Database type that this schema was extracted from */
|
|
177
|
+
databaseType: DatabaseType;
|
|
178
|
+
/** Table definitions */
|
|
179
|
+
tables: TableDefinition[];
|
|
180
|
+
/** Relation/Reference definitions */
|
|
181
|
+
relations: RelationDefinition[];
|
|
182
|
+
/** Enum definitions (PostgreSQL specific) */
|
|
183
|
+
enums: EnumDefinition[];
|
|
184
|
+
}
|
|
53
185
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAEjC;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtE,2EAA2E;IAC3E,MAAM,EAAE,OAAO,CAAC;IAChB,uEAAuE;IACvE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,aAAa,GAAG,aAAa,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAEjC;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtE,2EAA2E;IAC3E,MAAM,EAAE,OAAO,CAAC;IAChB,uEAAuE;IACvE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,aAAa,GAAG,aAAa,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAQD;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,QAAQ,EAAE,OAAO,CAAC;IAClB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,UAAU,EAAE,OAAO,CAAC;IACpB,kDAAkD;IAClD,MAAM,EAAE,OAAO,CAAC;IAChB,0CAA0C;IAC1C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,qCAAqC;IACrC,MAAM,EAAE,OAAO,CAAC;IAChB,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;AAE7F;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,IAAI,EAAE,cAAc,CAAC;IACrB,yCAAyC;IACzC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4CAA4C;IAC5C,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,wBAAwB;IACxB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,6BAA6B;IAC7B,WAAW,EAAE,oBAAoB,EAAE,CAAC;CACrC;AAED;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAChC,YAAY,GACZ,aAAa,GACb,aAAa,GACb,cAAc,CAAC;AAEnB;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,2BAA2B;IAC3B,IAAI,EAAE,wBAAwB,CAAC;IAC/B,uBAAuB;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,wDAAwD;IACxD,YAAY,EAAE,YAAY,CAAC;IAC3B,wBAAwB;IACxB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,qCAAqC;IACrC,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,6CAA6C;IAC7C,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "drizzle-docs-generator",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "A CLI tool that generates DBML files from Drizzle ORM schema definitions.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cli",
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"commander": "^14.0.2",
|
|
41
41
|
"drizzle-orm": "1.0.0-beta.10-42c284e",
|
|
42
|
+
"tsx": "^4.21.0",
|
|
42
43
|
"typescript": "^5.9.3"
|
|
43
44
|
},
|
|
44
45
|
"devDependencies": {
|
|
@@ -64,6 +65,7 @@
|
|
|
64
65
|
"lint": "oxlint",
|
|
65
66
|
"format": "oxfmt --write",
|
|
66
67
|
"format:check": "oxfmt --check",
|
|
67
|
-
"typecheck": "tsc --noEmit"
|
|
68
|
+
"typecheck": "tsc --noEmit",
|
|
69
|
+
"generate:examples": "node dist/cli/index.js generate examples/pg/schema.ts -d postgresql -f dbml -o examples/pg/schema.dbml --force && node dist/cli/index.js generate examples/pg/schema.ts -d postgresql -f markdown -o examples/pg/markdown --force && node dist/cli/index.js generate examples/mysql/schema.ts -d mysql -f dbml -o examples/mysql/schema.dbml --force && node dist/cli/index.js generate examples/mysql/schema.ts -d mysql -f markdown -o examples/mysql/markdown --force && node dist/cli/index.js generate examples/sqlite/schema.ts -d sqlite -f dbml -o examples/sqlite/schema.dbml --force && node dist/cli/index.js generate examples/sqlite/schema.ts -d sqlite -f markdown -o examples/sqlite/markdown --force"
|
|
68
70
|
}
|
|
69
71
|
}
|