@chihqiang/sql-quicktype 0.0.2 → 0.0.4

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/index.js CHANGED
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
- var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __export = (target, all) => {
9
7
  for (var name in all)
@@ -17,14 +15,6 @@ var __copyProps = (to, from, except, desc) => {
17
15
  }
18
16
  return to;
19
17
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
19
 
30
20
  // src/index.ts
@@ -38,9 +28,7 @@ __export(index_exports, {
38
28
  TypeScriptGenerator: () => TypeScriptGenerator,
39
29
  XormGenerator: () => XormGenerator,
40
30
  generateCode: () => generateCode,
41
- parseSQL: () => parseSQL,
42
- readSQLFromFile: () => readSQLFromFile,
43
- readSQLFromString: () => readSQLFromString
31
+ parseSQL: () => parseSQL
44
32
  });
45
33
  module.exports = __toCommonJS(index_exports);
46
34
 
@@ -79,8 +67,8 @@ SQL length: ${sql.length} characters`
79
67
  var SQLParser = class {
80
68
  constructor(options = { dialect: "mysql" }) {
81
69
  /**
82
- * 默认类型解析器
83
- * 提供基本的 SQL 类型到 SQLType 的映射逻辑
70
+ * Default type resolver
71
+ * Provides basic SQL type to SQLType mapping logic
84
72
  */
85
73
  this.defaultTypeResolver = {
86
74
  resolve: (def) => {
@@ -180,8 +168,8 @@ var SQLParser = class {
180
168
  };
181
169
  return emptyEnumType;
182
170
  /**
183
- * 未识别类型默认降级为 text,避免解析失败
184
- * 在严格模式下,遇到未识别的类型会抛出错误
171
+ * Unrecognized types fall back to text by default to avoid parse failure
172
+ * In strict mode, unrecognized types throw an error
185
173
  */
186
174
  default:
187
175
  if (this.options.strictMode) {
@@ -203,7 +191,7 @@ var SQLParser = class {
203
191
  this.parser = new import_node_sql_parser.Parser();
204
192
  }
205
193
  /**
206
- * 遍历 AST,提取所有 CREATE TABLE
194
+ * Traverse AST, extract all CREATE TABLE statements
207
195
  */
208
196
  parseDatabase(ast, dbName = this.options.dbName || "db") {
209
197
  const db = {
@@ -222,7 +210,7 @@ var SQLParser = class {
222
210
  return db;
223
211
  }
224
212
  /**
225
- * 类型守卫:判断是否为 CREATE TABLE 语句
213
+ * Type guard: check if node is a CREATE TABLE statement
226
214
  */
227
215
  isCreateTable(node) {
228
216
  if (!node || typeof node !== "object") return false;
@@ -230,7 +218,7 @@ var SQLParser = class {
230
218
  return n.type === "create" && n.keyword === "table";
231
219
  }
232
220
  /**
233
- * 解析单表 AST -> TableSchema
221
+ * Parse single table AST -> TableSchema
234
222
  */
235
223
  parseTable(node) {
236
224
  var _a, _b, _c, _d;
@@ -274,9 +262,9 @@ var SQLParser = class {
274
262
  return table;
275
263
  }
276
264
  /**
277
- * 解析列定义 AST -> ColumnSchema
265
+ * Parse column definition AST -> ColumnSchema
278
266
  *
279
- * 注意:字段级 primary/unique 与表级定义会叠加
267
+ * Note: Field-level primary/unique and table-level definitions will overlap
280
268
  */
281
269
  parseColumn(def) {
282
270
  var _a, _b, _c;
@@ -290,18 +278,18 @@ var SQLParser = class {
290
278
  return {
291
279
  name: columnName,
292
280
  /**
293
- * 抽象 SQL 类型映射
281
+ * Abstract SQL type mapping
294
282
  */
295
283
  type: this.mapSQLType(def.definition),
296
284
  /**
297
- * node-sql-parser 中:
298
- * nullable 是一个对象,当它存在且 type "not null" 时,表示 NOT NULL
285
+ * In node-sql-parser:
286
+ * nullable is an object; when it exists and type is "not null", it means NOT NULL
299
287
  */
300
288
  nullable: !(def.nullable && def.nullable.type === "not null"),
301
289
  primaryKey: !!def.primary_key,
302
290
  unique: !!def.unique,
303
291
  /**
304
- * 默认值需要序列化为 SQL 字符串
292
+ * Default value needs to be serialized as SQL string
305
293
  */
306
294
  default: def.default_val ? this.parseDefault(def.default_val) : void 0,
307
295
  comment: (_c = (_b = def.comment) == null ? void 0 : _b.value) == null ? void 0 : _c.value,
@@ -310,7 +298,7 @@ var SQLParser = class {
310
298
  };
311
299
  }
312
300
  /**
313
- * 解析表级 PRIMARY KEY / UNIQUE / FOREIGN KEY
301
+ * Parse table-level PRIMARY KEY / UNIQUE / FOREIGN KEY
314
302
  */
315
303
  parseTableConstraint(def, table) {
316
304
  var _a, _b, _c, _d, _e, _f, _g, _h;
@@ -362,7 +350,7 @@ var SQLParser = class {
362
350
  }
363
351
  }
364
352
  /**
365
- * 解析普通索引
353
+ * Parse regular index
366
354
  */
367
355
  parseIndex(def, table) {
368
356
  var _a;
@@ -376,7 +364,7 @@ var SQLParser = class {
376
364
  }
377
365
  }
378
366
  /**
379
- * SQL AST 类型 -> SQLType(跨方言抽象)
367
+ * SQL AST type -> SQLType (cross-dialect abstraction)
380
368
  */
381
369
  mapSQLType(def) {
382
370
  const allResolvers = [
@@ -393,9 +381,9 @@ var SQLParser = class {
393
381
  return textType;
394
382
  }
395
383
  /**
396
- * 默认值 AST -> SQL 字符串
384
+ * Default value AST -> SQL string
397
385
  *
398
- * 使用 sqlify 确保函数/表达式被正确序列化
386
+ * Uses sqlify to ensure functions/expressions are serialized correctly
399
387
  */
400
388
  parseDefault(def) {
401
389
  var _a, _b;
@@ -425,13 +413,13 @@ var BaseGenerator = class {
425
413
  this.needsTimeCache = null;
426
414
  }
427
415
  /**
428
- * 格式化类型名称(如驼峰命名、帕斯卡命名等)
416
+ * Format type name (e.g., PascalCase)
429
417
  */
430
418
  formatTypeName(name) {
431
419
  return name.split("_").map((part) => part.charAt(0).toUpperCase() + part.slice(1).toLowerCase()).join("");
432
420
  }
433
421
  /**
434
- * 格式化字段名称
422
+ * Format field name
435
423
  */
436
424
  formatPascalCase(name) {
437
425
  return name.split("_").map((part) => part.charAt(0).toUpperCase() + part.slice(1).toLowerCase()).join("");
@@ -440,7 +428,7 @@ var BaseGenerator = class {
440
428
  return this.formatPascalCase(name);
441
429
  }
442
430
  /**
443
- * 生成默认值
431
+ * Generate default value
444
432
  */
445
433
  generateDefaultValue(column) {
446
434
  if (!column.default) {
@@ -483,7 +471,7 @@ var TypeScriptGenerator = class extends BaseGenerator {
483
471
  this.options = options;
484
472
  }
485
473
  /**
486
- * 格式化字段名称(使用驼峰命名)
474
+ * Format field name (camelCase)
487
475
  */
488
476
  formatFieldName(name) {
489
477
  return name.split("_").map((part, index) => {
@@ -494,7 +482,7 @@ var TypeScriptGenerator = class extends BaseGenerator {
494
482
  }).join("");
495
483
  }
496
484
  /**
497
- * 生成整个数据库模式的类型定义
485
+ * Generate type definitions for the entire database schema
498
486
  */
499
487
  generateDatabase(database) {
500
488
  let result = `// Database: ${database.name}
@@ -509,10 +497,10 @@ var TypeScriptGenerator = class extends BaseGenerator {
509
497
  return result;
510
498
  }
511
499
  /**
512
- * 生成单个表的类型定义
500
+ * Generate type definition for a single table
513
501
  */
514
502
  generateTable(table) {
515
- let result = `// ${table.name} \u8868\u7ED3\u6784
503
+ let result = `// ${table.name} table structure
516
504
  `;
517
505
  result += `export interface ${this.formatTypeName(table.name)} {
518
506
  `;
@@ -523,7 +511,7 @@ var TypeScriptGenerator = class extends BaseGenerator {
523
511
  return result;
524
512
  }
525
513
  /**
526
- * 生成列的类型定义
514
+ * Generate column type definition
527
515
  */
528
516
  generateColumn(column) {
529
517
  const fieldName = this.formatFieldName(column.name);
@@ -537,7 +525,7 @@ var TypeScriptGenerator = class extends BaseGenerator {
537
525
  return result;
538
526
  }
539
527
  /**
540
- * 映射 SQL 类型到 TypeScript 类型
528
+ * Map SQL type to TypeScript type
541
529
  */
542
530
  mapSQLType(type, columnName) {
543
531
  switch (type.kind) {
@@ -580,7 +568,7 @@ var GoGenerator = class extends BaseGenerator {
580
568
  this.options = options;
581
569
  }
582
570
  /**
583
- * 生成整个数据库模式的类型定义
571
+ * Generate type definitions for the entire database schema
584
572
  */
585
573
  generateDatabase(database) {
586
574
  let result = `// Database: ${database.name}
@@ -605,10 +593,10 @@ var GoGenerator = class extends BaseGenerator {
605
593
  return result;
606
594
  }
607
595
  /**
608
- * 生成单个表的类型定义
596
+ * Generate type definition for a single table
609
597
  */
610
598
  generateTable(table) {
611
- let result = `// ${table.name} \u8868\u7ED3\u6784
599
+ let result = `// ${table.name} table structure
612
600
  `;
613
601
  result += `type ${this.formatTypeName(table.name)} struct {
614
602
  `;
@@ -619,7 +607,7 @@ var GoGenerator = class extends BaseGenerator {
619
607
  return result;
620
608
  }
621
609
  /**
622
- * 生成列的类型定义
610
+ * Generate column type definition
623
611
  */
624
612
  generateColumn(column) {
625
613
  const fieldName = this.formatFieldName(column.name);
@@ -633,7 +621,7 @@ var GoGenerator = class extends BaseGenerator {
633
621
  return result;
634
622
  }
635
623
  /**
636
- * 映射 SQL 类型到 Go 类型
624
+ * Map SQL type to Go type
637
625
  */
638
626
  mapSQLType(type) {
639
627
  switch (type.kind) {
@@ -662,7 +650,7 @@ var GoGenerator = class extends BaseGenerator {
662
650
  }
663
651
  }
664
652
  /**
665
- * 生成 Go 结构体标签
653
+ * Generate Go struct tags
666
654
  */
667
655
  generateGoTag(column) {
668
656
  const tags = [];
@@ -679,7 +667,7 @@ var GormGenerator = class extends BaseGenerator {
679
667
  this.options = options;
680
668
  }
681
669
  /**
682
- * 生成整个数据库模式的类型定义
670
+ * Generate type definitions for the entire database schema
683
671
  */
684
672
  generateDatabase(database) {
685
673
  let result = `// Database: ${database.name}
@@ -704,10 +692,10 @@ var GormGenerator = class extends BaseGenerator {
704
692
  return result;
705
693
  }
706
694
  /**
707
- * 生成单个表的类型定义
695
+ * Generate type definition for a single table
708
696
  */
709
697
  generateTable(table) {
710
- let result = `// ${table.name} \u8868\u7ED3\u6784
698
+ let result = `// ${table.name} table structure
711
699
  `;
712
700
  result += `type ${this.formatTypeName(table.name)} struct {
713
701
  `;
@@ -718,7 +706,7 @@ var GormGenerator = class extends BaseGenerator {
718
706
  return result;
719
707
  }
720
708
  /**
721
- * 生成列的类型定义
709
+ * Generate column type definition
722
710
  */
723
711
  generateColumn(column) {
724
712
  const fieldName = this.formatFieldName(column.name);
@@ -732,7 +720,7 @@ var GormGenerator = class extends BaseGenerator {
732
720
  return result;
733
721
  }
734
722
  /**
735
- * 映射 SQL 类型到 GORM 类型
723
+ * Map SQL type to GORM type
736
724
  */
737
725
  mapSQLType(type) {
738
726
  switch (type.kind) {
@@ -761,7 +749,7 @@ var GormGenerator = class extends BaseGenerator {
761
749
  }
762
750
  }
763
751
  /**
764
- * 生成 GORM 结构体标签
752
+ * Generate GORM struct tags
765
753
  */
766
754
  generateGormTag(column) {
767
755
  const tags = [];
@@ -857,7 +845,7 @@ var XormGenerator = class extends BaseGenerator {
857
845
  this.options = options;
858
846
  }
859
847
  /**
860
- * 生成整个数据库模式的类型定义
848
+ * Generate type definitions for the entire database schema
861
849
  */
862
850
  generateDatabase(database) {
863
851
  let result = `// Database: ${database.name}
@@ -882,10 +870,10 @@ var XormGenerator = class extends BaseGenerator {
882
870
  return result;
883
871
  }
884
872
  /**
885
- * 生成单个表的类型定义
873
+ * Generate type definition for a single table
886
874
  */
887
875
  generateTable(table) {
888
- let result = `// ${table.name} \u8868\u7ED3\u6784
876
+ let result = `// ${table.name} table structure
889
877
  `;
890
878
  result += `type ${this.formatTypeName(table.name)} struct {
891
879
  `;
@@ -896,7 +884,7 @@ var XormGenerator = class extends BaseGenerator {
896
884
  return result;
897
885
  }
898
886
  /**
899
- * 生成列的类型定义
887
+ * Generate column type definition
900
888
  */
901
889
  generateColumn(column) {
902
890
  const fieldName = this.formatFieldName(column.name);
@@ -910,7 +898,7 @@ var XormGenerator = class extends BaseGenerator {
910
898
  return result;
911
899
  }
912
900
  /**
913
- * 映射 SQL 类型到 XORM 类型
901
+ * Map SQL type to XORM type
914
902
  */
915
903
  mapSQLType(type) {
916
904
  switch (type.kind) {
@@ -939,7 +927,7 @@ var XormGenerator = class extends BaseGenerator {
939
927
  }
940
928
  }
941
929
  /**
942
- * 生成 XORM 结构体标签
930
+ * Generate XORM struct tags
943
931
  */
944
932
  generateXormTag(column) {
945
933
  const tags = [];
@@ -1053,28 +1041,6 @@ function generateCode(sql, options) {
1053
1041
  );
1054
1042
  return generator.generateDatabase(dbSchema);
1055
1043
  }
1056
-
1057
- // src/reader/index.ts
1058
- var fs = __toESM(require("fs/promises"));
1059
- async function readSQLFromFile(path) {
1060
- if (!path) {
1061
- throw new Error("File path is required");
1062
- }
1063
- try {
1064
- return await fs.readFile(path, "utf-8");
1065
- } catch (error) {
1066
- if ((error == null ? void 0 : error.code) === "ENOENT") {
1067
- throw new Error(`File not found: ${path}`);
1068
- }
1069
- throw error;
1070
- }
1071
- }
1072
- async function readSQLFromString(sql) {
1073
- if (!sql) {
1074
- throw new Error("SQL string is required");
1075
- }
1076
- return sql;
1077
- }
1078
1044
  // Annotate the CommonJS export names for ESM import in node:
1079
1045
  0 && (module.exports = {
1080
1046
  BaseGenerator,
@@ -1085,7 +1051,5 @@ async function readSQLFromString(sql) {
1085
1051
  TypeScriptGenerator,
1086
1052
  XormGenerator,
1087
1053
  generateCode,
1088
- parseSQL,
1089
- readSQLFromFile,
1090
- readSQLFromString
1054
+ parseSQL
1091
1055
  });