@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.mjs CHANGED
@@ -33,8 +33,8 @@ SQL length: ${sql.length} characters`
33
33
  var SQLParser = class {
34
34
  constructor(options = { dialect: "mysql" }) {
35
35
  /**
36
- * 默认类型解析器
37
- * 提供基本的 SQL 类型到 SQLType 的映射逻辑
36
+ * Default type resolver
37
+ * Provides basic SQL type to SQLType mapping logic
38
38
  */
39
39
  this.defaultTypeResolver = {
40
40
  resolve: (def) => {
@@ -134,8 +134,8 @@ var SQLParser = class {
134
134
  };
135
135
  return emptyEnumType;
136
136
  /**
137
- * 未识别类型默认降级为 text,避免解析失败
138
- * 在严格模式下,遇到未识别的类型会抛出错误
137
+ * Unrecognized types fall back to text by default to avoid parse failure
138
+ * In strict mode, unrecognized types throw an error
139
139
  */
140
140
  default:
141
141
  if (this.options.strictMode) {
@@ -157,7 +157,7 @@ var SQLParser = class {
157
157
  this.parser = new Parser();
158
158
  }
159
159
  /**
160
- * 遍历 AST,提取所有 CREATE TABLE
160
+ * Traverse AST, extract all CREATE TABLE statements
161
161
  */
162
162
  parseDatabase(ast, dbName = this.options.dbName || "db") {
163
163
  const db = {
@@ -176,7 +176,7 @@ var SQLParser = class {
176
176
  return db;
177
177
  }
178
178
  /**
179
- * 类型守卫:判断是否为 CREATE TABLE 语句
179
+ * Type guard: check if node is a CREATE TABLE statement
180
180
  */
181
181
  isCreateTable(node) {
182
182
  if (!node || typeof node !== "object") return false;
@@ -184,7 +184,7 @@ var SQLParser = class {
184
184
  return n.type === "create" && n.keyword === "table";
185
185
  }
186
186
  /**
187
- * 解析单表 AST -> TableSchema
187
+ * Parse single table AST -> TableSchema
188
188
  */
189
189
  parseTable(node) {
190
190
  var _a, _b, _c, _d;
@@ -228,9 +228,9 @@ var SQLParser = class {
228
228
  return table;
229
229
  }
230
230
  /**
231
- * 解析列定义 AST -> ColumnSchema
231
+ * Parse column definition AST -> ColumnSchema
232
232
  *
233
- * 注意:字段级 primary/unique 与表级定义会叠加
233
+ * Note: Field-level primary/unique and table-level definitions will overlap
234
234
  */
235
235
  parseColumn(def) {
236
236
  var _a, _b, _c;
@@ -244,18 +244,18 @@ var SQLParser = class {
244
244
  return {
245
245
  name: columnName,
246
246
  /**
247
- * 抽象 SQL 类型映射
247
+ * Abstract SQL type mapping
248
248
  */
249
249
  type: this.mapSQLType(def.definition),
250
250
  /**
251
- * node-sql-parser 中:
252
- * nullable 是一个对象,当它存在且 type "not null" 时,表示 NOT NULL
251
+ * In node-sql-parser:
252
+ * nullable is an object; when it exists and type is "not null", it means NOT NULL
253
253
  */
254
254
  nullable: !(def.nullable && def.nullable.type === "not null"),
255
255
  primaryKey: !!def.primary_key,
256
256
  unique: !!def.unique,
257
257
  /**
258
- * 默认值需要序列化为 SQL 字符串
258
+ * Default value needs to be serialized as SQL string
259
259
  */
260
260
  default: def.default_val ? this.parseDefault(def.default_val) : void 0,
261
261
  comment: (_c = (_b = def.comment) == null ? void 0 : _b.value) == null ? void 0 : _c.value,
@@ -264,7 +264,7 @@ var SQLParser = class {
264
264
  };
265
265
  }
266
266
  /**
267
- * 解析表级 PRIMARY KEY / UNIQUE / FOREIGN KEY
267
+ * Parse table-level PRIMARY KEY / UNIQUE / FOREIGN KEY
268
268
  */
269
269
  parseTableConstraint(def, table) {
270
270
  var _a, _b, _c, _d, _e, _f, _g, _h;
@@ -316,7 +316,7 @@ var SQLParser = class {
316
316
  }
317
317
  }
318
318
  /**
319
- * 解析普通索引
319
+ * Parse regular index
320
320
  */
321
321
  parseIndex(def, table) {
322
322
  var _a;
@@ -330,7 +330,7 @@ var SQLParser = class {
330
330
  }
331
331
  }
332
332
  /**
333
- * SQL AST 类型 -> SQLType(跨方言抽象)
333
+ * SQL AST type -> SQLType (cross-dialect abstraction)
334
334
  */
335
335
  mapSQLType(def) {
336
336
  const allResolvers = [
@@ -347,9 +347,9 @@ var SQLParser = class {
347
347
  return textType;
348
348
  }
349
349
  /**
350
- * 默认值 AST -> SQL 字符串
350
+ * Default value AST -> SQL string
351
351
  *
352
- * 使用 sqlify 确保函数/表达式被正确序列化
352
+ * Uses sqlify to ensure functions/expressions are serialized correctly
353
353
  */
354
354
  parseDefault(def) {
355
355
  var _a, _b;
@@ -379,13 +379,13 @@ var BaseGenerator = class {
379
379
  this.needsTimeCache = null;
380
380
  }
381
381
  /**
382
- * 格式化类型名称(如驼峰命名、帕斯卡命名等)
382
+ * Format type name (e.g., PascalCase)
383
383
  */
384
384
  formatTypeName(name) {
385
385
  return name.split("_").map((part) => part.charAt(0).toUpperCase() + part.slice(1).toLowerCase()).join("");
386
386
  }
387
387
  /**
388
- * 格式化字段名称
388
+ * Format field name
389
389
  */
390
390
  formatPascalCase(name) {
391
391
  return name.split("_").map((part) => part.charAt(0).toUpperCase() + part.slice(1).toLowerCase()).join("");
@@ -394,7 +394,7 @@ var BaseGenerator = class {
394
394
  return this.formatPascalCase(name);
395
395
  }
396
396
  /**
397
- * 生成默认值
397
+ * Generate default value
398
398
  */
399
399
  generateDefaultValue(column) {
400
400
  if (!column.default) {
@@ -437,7 +437,7 @@ var TypeScriptGenerator = class extends BaseGenerator {
437
437
  this.options = options;
438
438
  }
439
439
  /**
440
- * 格式化字段名称(使用驼峰命名)
440
+ * Format field name (camelCase)
441
441
  */
442
442
  formatFieldName(name) {
443
443
  return name.split("_").map((part, index) => {
@@ -448,7 +448,7 @@ var TypeScriptGenerator = class extends BaseGenerator {
448
448
  }).join("");
449
449
  }
450
450
  /**
451
- * 生成整个数据库模式的类型定义
451
+ * Generate type definitions for the entire database schema
452
452
  */
453
453
  generateDatabase(database) {
454
454
  let result = `// Database: ${database.name}
@@ -463,10 +463,10 @@ var TypeScriptGenerator = class extends BaseGenerator {
463
463
  return result;
464
464
  }
465
465
  /**
466
- * 生成单个表的类型定义
466
+ * Generate type definition for a single table
467
467
  */
468
468
  generateTable(table) {
469
- let result = `// ${table.name} \u8868\u7ED3\u6784
469
+ let result = `// ${table.name} table structure
470
470
  `;
471
471
  result += `export interface ${this.formatTypeName(table.name)} {
472
472
  `;
@@ -477,7 +477,7 @@ var TypeScriptGenerator = class extends BaseGenerator {
477
477
  return result;
478
478
  }
479
479
  /**
480
- * 生成列的类型定义
480
+ * Generate column type definition
481
481
  */
482
482
  generateColumn(column) {
483
483
  const fieldName = this.formatFieldName(column.name);
@@ -491,7 +491,7 @@ var TypeScriptGenerator = class extends BaseGenerator {
491
491
  return result;
492
492
  }
493
493
  /**
494
- * 映射 SQL 类型到 TypeScript 类型
494
+ * Map SQL type to TypeScript type
495
495
  */
496
496
  mapSQLType(type, columnName) {
497
497
  switch (type.kind) {
@@ -534,7 +534,7 @@ var GoGenerator = class extends BaseGenerator {
534
534
  this.options = options;
535
535
  }
536
536
  /**
537
- * 生成整个数据库模式的类型定义
537
+ * Generate type definitions for the entire database schema
538
538
  */
539
539
  generateDatabase(database) {
540
540
  let result = `// Database: ${database.name}
@@ -559,10 +559,10 @@ var GoGenerator = class extends BaseGenerator {
559
559
  return result;
560
560
  }
561
561
  /**
562
- * 生成单个表的类型定义
562
+ * Generate type definition for a single table
563
563
  */
564
564
  generateTable(table) {
565
- let result = `// ${table.name} \u8868\u7ED3\u6784
565
+ let result = `// ${table.name} table structure
566
566
  `;
567
567
  result += `type ${this.formatTypeName(table.name)} struct {
568
568
  `;
@@ -573,7 +573,7 @@ var GoGenerator = class extends BaseGenerator {
573
573
  return result;
574
574
  }
575
575
  /**
576
- * 生成列的类型定义
576
+ * Generate column type definition
577
577
  */
578
578
  generateColumn(column) {
579
579
  const fieldName = this.formatFieldName(column.name);
@@ -587,7 +587,7 @@ var GoGenerator = class extends BaseGenerator {
587
587
  return result;
588
588
  }
589
589
  /**
590
- * 映射 SQL 类型到 Go 类型
590
+ * Map SQL type to Go type
591
591
  */
592
592
  mapSQLType(type) {
593
593
  switch (type.kind) {
@@ -616,7 +616,7 @@ var GoGenerator = class extends BaseGenerator {
616
616
  }
617
617
  }
618
618
  /**
619
- * 生成 Go 结构体标签
619
+ * Generate Go struct tags
620
620
  */
621
621
  generateGoTag(column) {
622
622
  const tags = [];
@@ -633,7 +633,7 @@ var GormGenerator = class extends BaseGenerator {
633
633
  this.options = options;
634
634
  }
635
635
  /**
636
- * 生成整个数据库模式的类型定义
636
+ * Generate type definitions for the entire database schema
637
637
  */
638
638
  generateDatabase(database) {
639
639
  let result = `// Database: ${database.name}
@@ -658,10 +658,10 @@ var GormGenerator = class extends BaseGenerator {
658
658
  return result;
659
659
  }
660
660
  /**
661
- * 生成单个表的类型定义
661
+ * Generate type definition for a single table
662
662
  */
663
663
  generateTable(table) {
664
- let result = `// ${table.name} \u8868\u7ED3\u6784
664
+ let result = `// ${table.name} table structure
665
665
  `;
666
666
  result += `type ${this.formatTypeName(table.name)} struct {
667
667
  `;
@@ -672,7 +672,7 @@ var GormGenerator = class extends BaseGenerator {
672
672
  return result;
673
673
  }
674
674
  /**
675
- * 生成列的类型定义
675
+ * Generate column type definition
676
676
  */
677
677
  generateColumn(column) {
678
678
  const fieldName = this.formatFieldName(column.name);
@@ -686,7 +686,7 @@ var GormGenerator = class extends BaseGenerator {
686
686
  return result;
687
687
  }
688
688
  /**
689
- * 映射 SQL 类型到 GORM 类型
689
+ * Map SQL type to GORM type
690
690
  */
691
691
  mapSQLType(type) {
692
692
  switch (type.kind) {
@@ -715,7 +715,7 @@ var GormGenerator = class extends BaseGenerator {
715
715
  }
716
716
  }
717
717
  /**
718
- * 生成 GORM 结构体标签
718
+ * Generate GORM struct tags
719
719
  */
720
720
  generateGormTag(column) {
721
721
  const tags = [];
@@ -811,7 +811,7 @@ var XormGenerator = class extends BaseGenerator {
811
811
  this.options = options;
812
812
  }
813
813
  /**
814
- * 生成整个数据库模式的类型定义
814
+ * Generate type definitions for the entire database schema
815
815
  */
816
816
  generateDatabase(database) {
817
817
  let result = `// Database: ${database.name}
@@ -836,10 +836,10 @@ var XormGenerator = class extends BaseGenerator {
836
836
  return result;
837
837
  }
838
838
  /**
839
- * 生成单个表的类型定义
839
+ * Generate type definition for a single table
840
840
  */
841
841
  generateTable(table) {
842
- let result = `// ${table.name} \u8868\u7ED3\u6784
842
+ let result = `// ${table.name} table structure
843
843
  `;
844
844
  result += `type ${this.formatTypeName(table.name)} struct {
845
845
  `;
@@ -850,7 +850,7 @@ var XormGenerator = class extends BaseGenerator {
850
850
  return result;
851
851
  }
852
852
  /**
853
- * 生成列的类型定义
853
+ * Generate column type definition
854
854
  */
855
855
  generateColumn(column) {
856
856
  const fieldName = this.formatFieldName(column.name);
@@ -864,7 +864,7 @@ var XormGenerator = class extends BaseGenerator {
864
864
  return result;
865
865
  }
866
866
  /**
867
- * 映射 SQL 类型到 XORM 类型
867
+ * Map SQL type to XORM type
868
868
  */
869
869
  mapSQLType(type) {
870
870
  switch (type.kind) {
@@ -893,7 +893,7 @@ var XormGenerator = class extends BaseGenerator {
893
893
  }
894
894
  }
895
895
  /**
896
- * 生成 XORM 结构体标签
896
+ * Generate XORM struct tags
897
897
  */
898
898
  generateXormTag(column) {
899
899
  const tags = [];
@@ -1007,28 +1007,6 @@ function generateCode(sql, options) {
1007
1007
  );
1008
1008
  return generator.generateDatabase(dbSchema);
1009
1009
  }
1010
-
1011
- // src/reader/index.ts
1012
- import * as fs from "fs/promises";
1013
- async function readSQLFromFile(path) {
1014
- if (!path) {
1015
- throw new Error("File path is required");
1016
- }
1017
- try {
1018
- return await fs.readFile(path, "utf-8");
1019
- } catch (error) {
1020
- if ((error == null ? void 0 : error.code) === "ENOENT") {
1021
- throw new Error(`File not found: ${path}`);
1022
- }
1023
- throw error;
1024
- }
1025
- }
1026
- async function readSQLFromString(sql) {
1027
- if (!sql) {
1028
- throw new Error("SQL string is required");
1029
- }
1030
- return sql;
1031
- }
1032
1010
  export {
1033
1011
  BaseGenerator,
1034
1012
  GeneratorFactory,
@@ -1038,7 +1016,5 @@ export {
1038
1016
  TypeScriptGenerator,
1039
1017
  XormGenerator,
1040
1018
  generateCode,
1041
- parseSQL,
1042
- readSQLFromFile,
1043
- readSQLFromString
1019
+ parseSQL
1044
1020
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chihqiang/sql-quicktype",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "description": "A tool to generate TypeScript, Go, GORM, and XORM types from SQL DDL statements",
5
5
  "keywords": [
6
6
  "sql",