@chihqiang/sql-quicktype 0.0.1 → 0.0.2

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.d.mts CHANGED
@@ -2,7 +2,7 @@ import { AST } from 'node-sql-parser';
2
2
 
3
3
  interface DatabaseSchema {
4
4
  name: string;
5
- dialect: 'mysql' | 'postgres' | 'sqlite' | 'sqlserver' | string;
5
+ dialect: string;
6
6
  charset?: string;
7
7
  collation?: string;
8
8
  comment?: string;
@@ -12,7 +12,7 @@ interface DatabaseSchema {
12
12
  updatedAt?: string;
13
13
  version?: string;
14
14
  engine?: string;
15
- [key: string]: any;
15
+ [key: string]: unknown;
16
16
  };
17
17
  tablesMap?: Record<string, TableSchema>;
18
18
  }
@@ -98,7 +98,7 @@ interface TypeResolver {
98
98
  resolve(def: ColumnDefinition['definition']): SQLType | null;
99
99
  }
100
100
  interface SQLParserOptions {
101
- dialect: 'mysql' | 'postgres' | 'sqlite' | 'sqlserver' | string;
101
+ dialect: string;
102
102
  dbName?: string;
103
103
  strictMode?: boolean;
104
104
  ignoreComments?: boolean;
@@ -130,7 +130,7 @@ interface ColumnDefinition {
130
130
  primary_key?: boolean;
131
131
  unique?: boolean;
132
132
  default_val?: {
133
- value: any;
133
+ value: unknown;
134
134
  };
135
135
  comment?: {
136
136
  value: {
@@ -160,69 +160,78 @@ declare class SQLParser {
160
160
  private parseDefault;
161
161
  }
162
162
 
163
- declare class XormGenerator extends AGenerator {
163
+ declare const LANGUAGES: readonly ["go", "typescript", "gorm", "xorm"];
164
+ type Language = typeof LANGUAGES[number];
165
+ declare const MODES: readonly ["single", "multi"];
166
+ type Mode = typeof MODES[number];
167
+
168
+ interface Options {
169
+ language: Language;
170
+ generateComments?: boolean;
171
+ namespace?: string;
172
+ }
173
+ declare abstract class BaseGenerator {
174
+ abstract generateDatabase(database: DatabaseSchema): string;
175
+ abstract generateTable(table: TableSchema): string;
176
+ abstract generateColumn(column: ColumnSchema): string;
177
+ abstract mapSQLType(type: SQLType): string;
178
+ protected formatTypeName(name: string): string;
179
+ protected formatPascalCase(name: string): string;
180
+ protected formatFieldName(name: string): string;
181
+ protected generateDefaultValue(column: ColumnSchema): string;
182
+ private needsTimeCache;
183
+ protected needsTimeImport(database: DatabaseSchema): boolean;
184
+ }
185
+ declare class GeneratorFactory {
186
+ private static registry;
187
+ static register(language: string, constructor: new (options: Options) => BaseGenerator): void;
188
+ static createGenerator(language: Language, options?: Options): BaseGenerator;
189
+ }
190
+
191
+ declare class TypeScriptGenerator extends BaseGenerator {
164
192
  private options;
165
193
  constructor(options?: Options);
194
+ protected formatFieldName(name: string): string;
166
195
  generateDatabase(database: DatabaseSchema): string;
167
196
  generateTable(table: TableSchema): string;
168
197
  generateColumn(column: ColumnSchema): string;
169
- mapSQLType(type: SQLType): string;
170
- private generateXormTag;
198
+ mapSQLType(type: SQLType, columnName?: string): string;
171
199
  }
172
200
 
173
- declare class GormGenerator extends AGenerator {
201
+ declare class GoGenerator extends BaseGenerator {
174
202
  private options;
175
203
  constructor(options?: Options);
176
204
  generateDatabase(database: DatabaseSchema): string;
177
205
  generateTable(table: TableSchema): string;
178
206
  generateColumn(column: ColumnSchema): string;
179
207
  mapSQLType(type: SQLType): string;
180
- private generateGormTag;
208
+ private generateGoTag;
181
209
  }
182
210
 
183
- declare class GolangGenerator extends AGenerator {
211
+ declare class GormGenerator extends BaseGenerator {
184
212
  private options;
185
213
  constructor(options?: Options);
186
214
  generateDatabase(database: DatabaseSchema): string;
187
215
  generateTable(table: TableSchema): string;
188
216
  generateColumn(column: ColumnSchema): string;
189
217
  mapSQLType(type: SQLType): string;
190
- private generateGoTag;
218
+ private generateGormTag;
191
219
  }
192
220
 
193
- declare class TypeScriptGenerator extends AGenerator {
221
+ declare class XormGenerator extends BaseGenerator {
194
222
  private options;
195
223
  constructor(options?: Options);
196
- protected formatFieldName(name: string): string;
197
224
  generateDatabase(database: DatabaseSchema): string;
198
225
  generateTable(table: TableSchema): string;
199
226
  generateColumn(column: ColumnSchema): string;
200
- mapSQLType(type: SQLType, columnName?: string): string;
201
- }
202
-
203
- interface Options {
204
- language: 'go' | 'typescript' | 'gorm' | 'xorm';
205
- generateComments?: boolean;
206
- namespace?: string;
207
- }
208
- declare abstract class AGenerator {
209
- abstract generateDatabase(database: DatabaseSchema): string;
210
- abstract generateTable(table: TableSchema): string;
211
- abstract generateColumn(column: ColumnSchema): string;
212
- abstract mapSQLType(type: SQLType): string;
213
- protected formatTypeName(name: string): string;
214
- protected formatFieldName(name: string): string;
215
- protected generateDefaultValue(column: ColumnSchema): string;
216
- protected needsTimeImport(database: DatabaseSchema): boolean;
217
- }
218
- declare class GeneratorFactory {
219
- static createGenerator(language: 'go' | 'typescript' | 'gorm' | 'xorm', options?: Options): Promise<TypeScriptGenerator | GolangGenerator | GormGenerator | XormGenerator>;
227
+ mapSQLType(type: SQLType): string;
228
+ private generateXormTag;
220
229
  }
221
230
 
222
231
  interface GenerateOptions {
223
232
  output: string;
224
- language: string;
225
- mode: string;
233
+ language: Language;
234
+ mode: Mode;
226
235
  namespace?: string;
227
236
  dialect: string;
228
237
  dbName: string;
@@ -233,31 +242,9 @@ declare function generateCode(sql: string, options: {
233
242
  namespace?: string;
234
243
  dialect?: string;
235
244
  dbName?: string;
236
- }): Promise<string>;
237
-
238
- interface Reader {
239
- read(): Promise<string>;
240
- }
241
-
242
- interface ReaderOptions {
243
- type: 'string' | 'file';
244
- source: string;
245
- [key: string]: any;
246
- }
247
- declare class ReaderFactory {
248
- static createReader(options: ReaderOptions): Reader;
249
- }
245
+ }): string;
250
246
 
251
- declare class StringReader implements Reader {
252
- private sql;
253
- constructor(sql: string);
254
- read(): Promise<string>;
255
- }
256
-
257
- declare class FileReader implements Reader {
258
- private filePath;
259
- constructor(filePath: string);
260
- read(): Promise<string>;
261
- }
247
+ declare function readSQLFromFile(path: string): Promise<string>;
248
+ declare function readSQLFromString(sql: string): Promise<string>;
262
249
 
263
- export { AGenerator, type BigIntType, type BooleanType, type ColumnSchema, type DatabaseSchema, type DateTimeType, type DateType, type DecimalType, type EnumType, FileReader, type FloatType, type GenerateOptions, GeneratorFactory, GolangGenerator, GormGenerator, type IntType, type JsonType, type Reader, ReaderFactory, type ReaderOptions, SQLParser, type SQLParserOptions, type SQLType, StringReader, type TableIndex, type TableSchema, type TextType, type TypeResolver, TypeScriptGenerator, type VarcharType, XormGenerator, generateCode, parseSQL };
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 };
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ import { AST } from 'node-sql-parser';
2
2
 
3
3
  interface DatabaseSchema {
4
4
  name: string;
5
- dialect: 'mysql' | 'postgres' | 'sqlite' | 'sqlserver' | string;
5
+ dialect: string;
6
6
  charset?: string;
7
7
  collation?: string;
8
8
  comment?: string;
@@ -12,7 +12,7 @@ interface DatabaseSchema {
12
12
  updatedAt?: string;
13
13
  version?: string;
14
14
  engine?: string;
15
- [key: string]: any;
15
+ [key: string]: unknown;
16
16
  };
17
17
  tablesMap?: Record<string, TableSchema>;
18
18
  }
@@ -98,7 +98,7 @@ interface TypeResolver {
98
98
  resolve(def: ColumnDefinition['definition']): SQLType | null;
99
99
  }
100
100
  interface SQLParserOptions {
101
- dialect: 'mysql' | 'postgres' | 'sqlite' | 'sqlserver' | string;
101
+ dialect: string;
102
102
  dbName?: string;
103
103
  strictMode?: boolean;
104
104
  ignoreComments?: boolean;
@@ -130,7 +130,7 @@ interface ColumnDefinition {
130
130
  primary_key?: boolean;
131
131
  unique?: boolean;
132
132
  default_val?: {
133
- value: any;
133
+ value: unknown;
134
134
  };
135
135
  comment?: {
136
136
  value: {
@@ -160,69 +160,78 @@ declare class SQLParser {
160
160
  private parseDefault;
161
161
  }
162
162
 
163
- declare class XormGenerator extends AGenerator {
163
+ declare const LANGUAGES: readonly ["go", "typescript", "gorm", "xorm"];
164
+ type Language = typeof LANGUAGES[number];
165
+ declare const MODES: readonly ["single", "multi"];
166
+ type Mode = typeof MODES[number];
167
+
168
+ interface Options {
169
+ language: Language;
170
+ generateComments?: boolean;
171
+ namespace?: string;
172
+ }
173
+ declare abstract class BaseGenerator {
174
+ abstract generateDatabase(database: DatabaseSchema): string;
175
+ abstract generateTable(table: TableSchema): string;
176
+ abstract generateColumn(column: ColumnSchema): string;
177
+ abstract mapSQLType(type: SQLType): string;
178
+ protected formatTypeName(name: string): string;
179
+ protected formatPascalCase(name: string): string;
180
+ protected formatFieldName(name: string): string;
181
+ protected generateDefaultValue(column: ColumnSchema): string;
182
+ private needsTimeCache;
183
+ protected needsTimeImport(database: DatabaseSchema): boolean;
184
+ }
185
+ declare class GeneratorFactory {
186
+ private static registry;
187
+ static register(language: string, constructor: new (options: Options) => BaseGenerator): void;
188
+ static createGenerator(language: Language, options?: Options): BaseGenerator;
189
+ }
190
+
191
+ declare class TypeScriptGenerator extends BaseGenerator {
164
192
  private options;
165
193
  constructor(options?: Options);
194
+ protected formatFieldName(name: string): string;
166
195
  generateDatabase(database: DatabaseSchema): string;
167
196
  generateTable(table: TableSchema): string;
168
197
  generateColumn(column: ColumnSchema): string;
169
- mapSQLType(type: SQLType): string;
170
- private generateXormTag;
198
+ mapSQLType(type: SQLType, columnName?: string): string;
171
199
  }
172
200
 
173
- declare class GormGenerator extends AGenerator {
201
+ declare class GoGenerator extends BaseGenerator {
174
202
  private options;
175
203
  constructor(options?: Options);
176
204
  generateDatabase(database: DatabaseSchema): string;
177
205
  generateTable(table: TableSchema): string;
178
206
  generateColumn(column: ColumnSchema): string;
179
207
  mapSQLType(type: SQLType): string;
180
- private generateGormTag;
208
+ private generateGoTag;
181
209
  }
182
210
 
183
- declare class GolangGenerator extends AGenerator {
211
+ declare class GormGenerator extends BaseGenerator {
184
212
  private options;
185
213
  constructor(options?: Options);
186
214
  generateDatabase(database: DatabaseSchema): string;
187
215
  generateTable(table: TableSchema): string;
188
216
  generateColumn(column: ColumnSchema): string;
189
217
  mapSQLType(type: SQLType): string;
190
- private generateGoTag;
218
+ private generateGormTag;
191
219
  }
192
220
 
193
- declare class TypeScriptGenerator extends AGenerator {
221
+ declare class XormGenerator extends BaseGenerator {
194
222
  private options;
195
223
  constructor(options?: Options);
196
- protected formatFieldName(name: string): string;
197
224
  generateDatabase(database: DatabaseSchema): string;
198
225
  generateTable(table: TableSchema): string;
199
226
  generateColumn(column: ColumnSchema): string;
200
- mapSQLType(type: SQLType, columnName?: string): string;
201
- }
202
-
203
- interface Options {
204
- language: 'go' | 'typescript' | 'gorm' | 'xorm';
205
- generateComments?: boolean;
206
- namespace?: string;
207
- }
208
- declare abstract class AGenerator {
209
- abstract generateDatabase(database: DatabaseSchema): string;
210
- abstract generateTable(table: TableSchema): string;
211
- abstract generateColumn(column: ColumnSchema): string;
212
- abstract mapSQLType(type: SQLType): string;
213
- protected formatTypeName(name: string): string;
214
- protected formatFieldName(name: string): string;
215
- protected generateDefaultValue(column: ColumnSchema): string;
216
- protected needsTimeImport(database: DatabaseSchema): boolean;
217
- }
218
- declare class GeneratorFactory {
219
- static createGenerator(language: 'go' | 'typescript' | 'gorm' | 'xorm', options?: Options): Promise<TypeScriptGenerator | GolangGenerator | GormGenerator | XormGenerator>;
227
+ mapSQLType(type: SQLType): string;
228
+ private generateXormTag;
220
229
  }
221
230
 
222
231
  interface GenerateOptions {
223
232
  output: string;
224
- language: string;
225
- mode: string;
233
+ language: Language;
234
+ mode: Mode;
226
235
  namespace?: string;
227
236
  dialect: string;
228
237
  dbName: string;
@@ -233,31 +242,9 @@ declare function generateCode(sql: string, options: {
233
242
  namespace?: string;
234
243
  dialect?: string;
235
244
  dbName?: string;
236
- }): Promise<string>;
237
-
238
- interface Reader {
239
- read(): Promise<string>;
240
- }
241
-
242
- interface ReaderOptions {
243
- type: 'string' | 'file';
244
- source: string;
245
- [key: string]: any;
246
- }
247
- declare class ReaderFactory {
248
- static createReader(options: ReaderOptions): Reader;
249
- }
245
+ }): string;
250
246
 
251
- declare class StringReader implements Reader {
252
- private sql;
253
- constructor(sql: string);
254
- read(): Promise<string>;
255
- }
256
-
257
- declare class FileReader implements Reader {
258
- private filePath;
259
- constructor(filePath: string);
260
- read(): Promise<string>;
261
- }
247
+ declare function readSQLFromFile(path: string): Promise<string>;
248
+ declare function readSQLFromString(sql: string): Promise<string>;
262
249
 
263
- export { AGenerator, type BigIntType, type BooleanType, type ColumnSchema, type DatabaseSchema, type DateTimeType, type DateType, type DecimalType, type EnumType, FileReader, type FloatType, type GenerateOptions, GeneratorFactory, GolangGenerator, GormGenerator, type IntType, type JsonType, type Reader, ReaderFactory, type ReaderOptions, SQLParser, type SQLParserOptions, type SQLType, StringReader, type TableIndex, type TableSchema, type TextType, type TypeResolver, TypeScriptGenerator, type VarcharType, XormGenerator, generateCode, parseSQL };
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 };