@chihqiang/sql-quicktype 0.0.2 → 0.0.3
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/dist/cli.js +46 -46
- package/dist/index.d.mts +1 -4
- package/dist/index.d.ts +1 -4
- package/dist/index.global.js +92 -92
- package/dist/index.js +47 -83
- package/dist/index.mjs +46 -70
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -61,8 +61,8 @@ SQL length: ${sql.length} characters`
|
|
|
61
61
|
var SQLParser = class {
|
|
62
62
|
constructor(options = { dialect: "mysql" }) {
|
|
63
63
|
/**
|
|
64
|
-
*
|
|
65
|
-
*
|
|
64
|
+
* Default type resolver
|
|
65
|
+
* Provides basic SQL type to SQLType mapping logic
|
|
66
66
|
*/
|
|
67
67
|
this.defaultTypeResolver = {
|
|
68
68
|
resolve: (def) => {
|
|
@@ -162,8 +162,8 @@ var SQLParser = class {
|
|
|
162
162
|
};
|
|
163
163
|
return emptyEnumType;
|
|
164
164
|
/**
|
|
165
|
-
*
|
|
166
|
-
*
|
|
165
|
+
* Unrecognized types fall back to text by default to avoid parse failure
|
|
166
|
+
* In strict mode, unrecognized types throw an error
|
|
167
167
|
*/
|
|
168
168
|
default:
|
|
169
169
|
if (this.options.strictMode) {
|
|
@@ -185,7 +185,7 @@ var SQLParser = class {
|
|
|
185
185
|
this.parser = new import_node_sql_parser.Parser();
|
|
186
186
|
}
|
|
187
187
|
/**
|
|
188
|
-
*
|
|
188
|
+
* Traverse AST, extract all CREATE TABLE statements
|
|
189
189
|
*/
|
|
190
190
|
parseDatabase(ast, dbName = this.options.dbName || "db") {
|
|
191
191
|
const db = {
|
|
@@ -204,7 +204,7 @@ var SQLParser = class {
|
|
|
204
204
|
return db;
|
|
205
205
|
}
|
|
206
206
|
/**
|
|
207
|
-
*
|
|
207
|
+
* Type guard: check if node is a CREATE TABLE statement
|
|
208
208
|
*/
|
|
209
209
|
isCreateTable(node) {
|
|
210
210
|
if (!node || typeof node !== "object") return false;
|
|
@@ -212,7 +212,7 @@ var SQLParser = class {
|
|
|
212
212
|
return n.type === "create" && n.keyword === "table";
|
|
213
213
|
}
|
|
214
214
|
/**
|
|
215
|
-
*
|
|
215
|
+
* Parse single table AST -> TableSchema
|
|
216
216
|
*/
|
|
217
217
|
parseTable(node) {
|
|
218
218
|
var _a, _b, _c, _d;
|
|
@@ -256,9 +256,9 @@ var SQLParser = class {
|
|
|
256
256
|
return table;
|
|
257
257
|
}
|
|
258
258
|
/**
|
|
259
|
-
*
|
|
259
|
+
* Parse column definition AST -> ColumnSchema
|
|
260
260
|
*
|
|
261
|
-
*
|
|
261
|
+
* Note: Field-level primary/unique and table-level definitions will overlap
|
|
262
262
|
*/
|
|
263
263
|
parseColumn(def) {
|
|
264
264
|
var _a, _b, _c;
|
|
@@ -272,18 +272,18 @@ var SQLParser = class {
|
|
|
272
272
|
return {
|
|
273
273
|
name: columnName,
|
|
274
274
|
/**
|
|
275
|
-
*
|
|
275
|
+
* Abstract SQL type mapping
|
|
276
276
|
*/
|
|
277
277
|
type: this.mapSQLType(def.definition),
|
|
278
278
|
/**
|
|
279
|
-
* node-sql-parser
|
|
280
|
-
* nullable
|
|
279
|
+
* In node-sql-parser:
|
|
280
|
+
* nullable is an object; when it exists and type is "not null", it means NOT NULL
|
|
281
281
|
*/
|
|
282
282
|
nullable: !(def.nullable && def.nullable.type === "not null"),
|
|
283
283
|
primaryKey: !!def.primary_key,
|
|
284
284
|
unique: !!def.unique,
|
|
285
285
|
/**
|
|
286
|
-
*
|
|
286
|
+
* Default value needs to be serialized as SQL string
|
|
287
287
|
*/
|
|
288
288
|
default: def.default_val ? this.parseDefault(def.default_val) : void 0,
|
|
289
289
|
comment: (_c = (_b = def.comment) == null ? void 0 : _b.value) == null ? void 0 : _c.value,
|
|
@@ -292,7 +292,7 @@ var SQLParser = class {
|
|
|
292
292
|
};
|
|
293
293
|
}
|
|
294
294
|
/**
|
|
295
|
-
*
|
|
295
|
+
* Parse table-level PRIMARY KEY / UNIQUE / FOREIGN KEY
|
|
296
296
|
*/
|
|
297
297
|
parseTableConstraint(def, table) {
|
|
298
298
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
@@ -344,7 +344,7 @@ var SQLParser = class {
|
|
|
344
344
|
}
|
|
345
345
|
}
|
|
346
346
|
/**
|
|
347
|
-
*
|
|
347
|
+
* Parse regular index
|
|
348
348
|
*/
|
|
349
349
|
parseIndex(def, table) {
|
|
350
350
|
var _a;
|
|
@@ -358,7 +358,7 @@ var SQLParser = class {
|
|
|
358
358
|
}
|
|
359
359
|
}
|
|
360
360
|
/**
|
|
361
|
-
* SQL AST
|
|
361
|
+
* SQL AST type -> SQLType (cross-dialect abstraction)
|
|
362
362
|
*/
|
|
363
363
|
mapSQLType(def) {
|
|
364
364
|
const allResolvers = [
|
|
@@ -375,9 +375,9 @@ var SQLParser = class {
|
|
|
375
375
|
return textType;
|
|
376
376
|
}
|
|
377
377
|
/**
|
|
378
|
-
*
|
|
378
|
+
* Default value AST -> SQL string
|
|
379
379
|
*
|
|
380
|
-
*
|
|
380
|
+
* Uses sqlify to ensure functions/expressions are serialized correctly
|
|
381
381
|
*/
|
|
382
382
|
parseDefault(def) {
|
|
383
383
|
var _a, _b;
|
|
@@ -407,13 +407,13 @@ var BaseGenerator = class {
|
|
|
407
407
|
this.needsTimeCache = null;
|
|
408
408
|
}
|
|
409
409
|
/**
|
|
410
|
-
*
|
|
410
|
+
* Format type name (e.g., PascalCase)
|
|
411
411
|
*/
|
|
412
412
|
formatTypeName(name) {
|
|
413
413
|
return name.split("_").map((part) => part.charAt(0).toUpperCase() + part.slice(1).toLowerCase()).join("");
|
|
414
414
|
}
|
|
415
415
|
/**
|
|
416
|
-
*
|
|
416
|
+
* Format field name
|
|
417
417
|
*/
|
|
418
418
|
formatPascalCase(name) {
|
|
419
419
|
return name.split("_").map((part) => part.charAt(0).toUpperCase() + part.slice(1).toLowerCase()).join("");
|
|
@@ -422,7 +422,7 @@ var BaseGenerator = class {
|
|
|
422
422
|
return this.formatPascalCase(name);
|
|
423
423
|
}
|
|
424
424
|
/**
|
|
425
|
-
*
|
|
425
|
+
* Generate default value
|
|
426
426
|
*/
|
|
427
427
|
generateDefaultValue(column) {
|
|
428
428
|
if (!column.default) {
|
|
@@ -465,7 +465,7 @@ var TypeScriptGenerator = class extends BaseGenerator {
|
|
|
465
465
|
this.options = options;
|
|
466
466
|
}
|
|
467
467
|
/**
|
|
468
|
-
*
|
|
468
|
+
* Format field name (camelCase)
|
|
469
469
|
*/
|
|
470
470
|
formatFieldName(name) {
|
|
471
471
|
return name.split("_").map((part, index) => {
|
|
@@ -476,7 +476,7 @@ var TypeScriptGenerator = class extends BaseGenerator {
|
|
|
476
476
|
}).join("");
|
|
477
477
|
}
|
|
478
478
|
/**
|
|
479
|
-
*
|
|
479
|
+
* Generate type definitions for the entire database schema
|
|
480
480
|
*/
|
|
481
481
|
generateDatabase(database) {
|
|
482
482
|
let result = `// Database: ${database.name}
|
|
@@ -491,10 +491,10 @@ var TypeScriptGenerator = class extends BaseGenerator {
|
|
|
491
491
|
return result;
|
|
492
492
|
}
|
|
493
493
|
/**
|
|
494
|
-
*
|
|
494
|
+
* Generate type definition for a single table
|
|
495
495
|
*/
|
|
496
496
|
generateTable(table) {
|
|
497
|
-
let result = `// ${table.name}
|
|
497
|
+
let result = `// ${table.name} table structure
|
|
498
498
|
`;
|
|
499
499
|
result += `export interface ${this.formatTypeName(table.name)} {
|
|
500
500
|
`;
|
|
@@ -505,7 +505,7 @@ var TypeScriptGenerator = class extends BaseGenerator {
|
|
|
505
505
|
return result;
|
|
506
506
|
}
|
|
507
507
|
/**
|
|
508
|
-
*
|
|
508
|
+
* Generate column type definition
|
|
509
509
|
*/
|
|
510
510
|
generateColumn(column) {
|
|
511
511
|
const fieldName = this.formatFieldName(column.name);
|
|
@@ -519,7 +519,7 @@ var TypeScriptGenerator = class extends BaseGenerator {
|
|
|
519
519
|
return result;
|
|
520
520
|
}
|
|
521
521
|
/**
|
|
522
|
-
*
|
|
522
|
+
* Map SQL type to TypeScript type
|
|
523
523
|
*/
|
|
524
524
|
mapSQLType(type, columnName) {
|
|
525
525
|
switch (type.kind) {
|
|
@@ -562,7 +562,7 @@ var GoGenerator = class extends BaseGenerator {
|
|
|
562
562
|
this.options = options;
|
|
563
563
|
}
|
|
564
564
|
/**
|
|
565
|
-
*
|
|
565
|
+
* Generate type definitions for the entire database schema
|
|
566
566
|
*/
|
|
567
567
|
generateDatabase(database) {
|
|
568
568
|
let result = `// Database: ${database.name}
|
|
@@ -587,10 +587,10 @@ var GoGenerator = class extends BaseGenerator {
|
|
|
587
587
|
return result;
|
|
588
588
|
}
|
|
589
589
|
/**
|
|
590
|
-
*
|
|
590
|
+
* Generate type definition for a single table
|
|
591
591
|
*/
|
|
592
592
|
generateTable(table) {
|
|
593
|
-
let result = `// ${table.name}
|
|
593
|
+
let result = `// ${table.name} table structure
|
|
594
594
|
`;
|
|
595
595
|
result += `type ${this.formatTypeName(table.name)} struct {
|
|
596
596
|
`;
|
|
@@ -601,7 +601,7 @@ var GoGenerator = class extends BaseGenerator {
|
|
|
601
601
|
return result;
|
|
602
602
|
}
|
|
603
603
|
/**
|
|
604
|
-
*
|
|
604
|
+
* Generate column type definition
|
|
605
605
|
*/
|
|
606
606
|
generateColumn(column) {
|
|
607
607
|
const fieldName = this.formatFieldName(column.name);
|
|
@@ -615,7 +615,7 @@ var GoGenerator = class extends BaseGenerator {
|
|
|
615
615
|
return result;
|
|
616
616
|
}
|
|
617
617
|
/**
|
|
618
|
-
*
|
|
618
|
+
* Map SQL type to Go type
|
|
619
619
|
*/
|
|
620
620
|
mapSQLType(type) {
|
|
621
621
|
switch (type.kind) {
|
|
@@ -644,7 +644,7 @@ var GoGenerator = class extends BaseGenerator {
|
|
|
644
644
|
}
|
|
645
645
|
}
|
|
646
646
|
/**
|
|
647
|
-
*
|
|
647
|
+
* Generate Go struct tags
|
|
648
648
|
*/
|
|
649
649
|
generateGoTag(column) {
|
|
650
650
|
const tags = [];
|
|
@@ -661,7 +661,7 @@ var GormGenerator = class extends BaseGenerator {
|
|
|
661
661
|
this.options = options;
|
|
662
662
|
}
|
|
663
663
|
/**
|
|
664
|
-
*
|
|
664
|
+
* Generate type definitions for the entire database schema
|
|
665
665
|
*/
|
|
666
666
|
generateDatabase(database) {
|
|
667
667
|
let result = `// Database: ${database.name}
|
|
@@ -686,10 +686,10 @@ var GormGenerator = class extends BaseGenerator {
|
|
|
686
686
|
return result;
|
|
687
687
|
}
|
|
688
688
|
/**
|
|
689
|
-
*
|
|
689
|
+
* Generate type definition for a single table
|
|
690
690
|
*/
|
|
691
691
|
generateTable(table) {
|
|
692
|
-
let result = `// ${table.name}
|
|
692
|
+
let result = `// ${table.name} table structure
|
|
693
693
|
`;
|
|
694
694
|
result += `type ${this.formatTypeName(table.name)} struct {
|
|
695
695
|
`;
|
|
@@ -700,7 +700,7 @@ var GormGenerator = class extends BaseGenerator {
|
|
|
700
700
|
return result;
|
|
701
701
|
}
|
|
702
702
|
/**
|
|
703
|
-
*
|
|
703
|
+
* Generate column type definition
|
|
704
704
|
*/
|
|
705
705
|
generateColumn(column) {
|
|
706
706
|
const fieldName = this.formatFieldName(column.name);
|
|
@@ -714,7 +714,7 @@ var GormGenerator = class extends BaseGenerator {
|
|
|
714
714
|
return result;
|
|
715
715
|
}
|
|
716
716
|
/**
|
|
717
|
-
*
|
|
717
|
+
* Map SQL type to GORM type
|
|
718
718
|
*/
|
|
719
719
|
mapSQLType(type) {
|
|
720
720
|
switch (type.kind) {
|
|
@@ -743,7 +743,7 @@ var GormGenerator = class extends BaseGenerator {
|
|
|
743
743
|
}
|
|
744
744
|
}
|
|
745
745
|
/**
|
|
746
|
-
*
|
|
746
|
+
* Generate GORM struct tags
|
|
747
747
|
*/
|
|
748
748
|
generateGormTag(column) {
|
|
749
749
|
const tags = [];
|
|
@@ -839,7 +839,7 @@ var XormGenerator = class extends BaseGenerator {
|
|
|
839
839
|
this.options = options;
|
|
840
840
|
}
|
|
841
841
|
/**
|
|
842
|
-
*
|
|
842
|
+
* Generate type definitions for the entire database schema
|
|
843
843
|
*/
|
|
844
844
|
generateDatabase(database) {
|
|
845
845
|
let result = `// Database: ${database.name}
|
|
@@ -864,10 +864,10 @@ var XormGenerator = class extends BaseGenerator {
|
|
|
864
864
|
return result;
|
|
865
865
|
}
|
|
866
866
|
/**
|
|
867
|
-
*
|
|
867
|
+
* Generate type definition for a single table
|
|
868
868
|
*/
|
|
869
869
|
generateTable(table) {
|
|
870
|
-
let result = `// ${table.name}
|
|
870
|
+
let result = `// ${table.name} table structure
|
|
871
871
|
`;
|
|
872
872
|
result += `type ${this.formatTypeName(table.name)} struct {
|
|
873
873
|
`;
|
|
@@ -878,7 +878,7 @@ var XormGenerator = class extends BaseGenerator {
|
|
|
878
878
|
return result;
|
|
879
879
|
}
|
|
880
880
|
/**
|
|
881
|
-
*
|
|
881
|
+
* Generate column type definition
|
|
882
882
|
*/
|
|
883
883
|
generateColumn(column) {
|
|
884
884
|
const fieldName = this.formatFieldName(column.name);
|
|
@@ -892,7 +892,7 @@ var XormGenerator = class extends BaseGenerator {
|
|
|
892
892
|
return result;
|
|
893
893
|
}
|
|
894
894
|
/**
|
|
895
|
-
*
|
|
895
|
+
* Map SQL type to XORM type
|
|
896
896
|
*/
|
|
897
897
|
mapSQLType(type) {
|
|
898
898
|
switch (type.kind) {
|
|
@@ -921,7 +921,7 @@ var XormGenerator = class extends BaseGenerator {
|
|
|
921
921
|
}
|
|
922
922
|
}
|
|
923
923
|
/**
|
|
924
|
-
*
|
|
924
|
+
* Generate XORM struct tags
|
|
925
925
|
*/
|
|
926
926
|
generateXormTag(column) {
|
|
927
927
|
const tags = [];
|
|
@@ -1229,7 +1229,7 @@ Summary: ${successCount} tables succeeded, ${failedTables.length} tables failed`
|
|
|
1229
1229
|
}
|
|
1230
1230
|
|
|
1231
1231
|
// package.json
|
|
1232
|
-
var version = "0.0.
|
|
1232
|
+
var version = "0.0.3";
|
|
1233
1233
|
|
|
1234
1234
|
// src/cli.ts
|
|
1235
1235
|
var program = new import_commander.Command();
|
package/dist/index.d.mts
CHANGED
|
@@ -244,7 +244,4 @@ declare function generateCode(sql: string, options: {
|
|
|
244
244
|
dbName?: string;
|
|
245
245
|
}): string;
|
|
246
246
|
|
|
247
|
-
|
|
248
|
-
declare function readSQLFromString(sql: string): Promise<string>;
|
|
249
|
-
|
|
250
|
-
export { BaseGenerator, type BigIntType, type BooleanType, type ColumnSchema, type DatabaseSchema, type DateTimeType, type DateType, type DecimalType, type EnumType, type FloatType, type GenerateOptions, GeneratorFactory, GoGenerator, GormGenerator, type IntType, type JsonType, SQLParser, type SQLParserOptions, type SQLType, type TableIndex, type TableSchema, type TextType, type TypeResolver, TypeScriptGenerator, type VarcharType, XormGenerator, generateCode, parseSQL, readSQLFromFile, readSQLFromString };
|
|
247
|
+
export { BaseGenerator, type BigIntType, type BooleanType, type ColumnSchema, type DatabaseSchema, type DateTimeType, type DateType, type DecimalType, type EnumType, type FloatType, type GenerateOptions, GeneratorFactory, GoGenerator, GormGenerator, type IntType, type JsonType, SQLParser, type SQLParserOptions, type SQLType, type TableIndex, type TableSchema, type TextType, type TypeResolver, TypeScriptGenerator, type VarcharType, XormGenerator, generateCode, parseSQL };
|
package/dist/index.d.ts
CHANGED
|
@@ -244,7 +244,4 @@ declare function generateCode(sql: string, options: {
|
|
|
244
244
|
dbName?: string;
|
|
245
245
|
}): string;
|
|
246
246
|
|
|
247
|
-
|
|
248
|
-
declare function readSQLFromString(sql: string): Promise<string>;
|
|
249
|
-
|
|
250
|
-
export { BaseGenerator, type BigIntType, type BooleanType, type ColumnSchema, type DatabaseSchema, type DateTimeType, type DateType, type DecimalType, type EnumType, type FloatType, type GenerateOptions, GeneratorFactory, GoGenerator, GormGenerator, type IntType, type JsonType, SQLParser, type SQLParserOptions, type SQLType, type TableIndex, type TableSchema, type TextType, type TypeResolver, TypeScriptGenerator, type VarcharType, XormGenerator, generateCode, parseSQL, readSQLFromFile, readSQLFromString };
|
|
247
|
+
export { BaseGenerator, type BigIntType, type BooleanType, type ColumnSchema, type DatabaseSchema, type DateTimeType, type DateType, type DecimalType, type EnumType, type FloatType, type GenerateOptions, GeneratorFactory, GoGenerator, GormGenerator, type IntType, type JsonType, SQLParser, type SQLParserOptions, type SQLType, type TableIndex, type TableSchema, type TextType, type TypeResolver, TypeScriptGenerator, type VarcharType, XormGenerator, generateCode, parseSQL };
|