@chihqiang/sql-quicktype 0.0.1 → 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/README.md +33 -30
- package/dist/cli.js +707 -770
- package/dist/index.d.mts +46 -62
- package/dist/index.d.ts +46 -62
- package/dist/index.global.js +96 -96
- package/dist/index.js +649 -810
- package/dist/index.mjs +650 -805
- package/package.json +12 -13
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:
|
|
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]:
|
|
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:
|
|
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:
|
|
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
|
|
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
|
|
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
|
|
208
|
+
private generateGoTag;
|
|
181
209
|
}
|
|
182
210
|
|
|
183
|
-
declare class
|
|
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
|
|
218
|
+
private generateGormTag;
|
|
191
219
|
}
|
|
192
220
|
|
|
193
|
-
declare class
|
|
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
|
|
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:
|
|
225
|
-
mode:
|
|
233
|
+
language: Language;
|
|
234
|
+
mode: Mode;
|
|
226
235
|
namespace?: string;
|
|
227
236
|
dialect: string;
|
|
228
237
|
dbName: string;
|
|
@@ -233,31 +242,6 @@ declare function generateCode(sql: string, options: {
|
|
|
233
242
|
namespace?: string;
|
|
234
243
|
dialect?: string;
|
|
235
244
|
dbName?: string;
|
|
236
|
-
}):
|
|
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
|
-
}
|
|
250
|
-
|
|
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
|
-
}
|
|
245
|
+
}): string;
|
|
262
246
|
|
|
263
|
-
export {
|
|
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
|
@@ -2,7 +2,7 @@ import { AST } from 'node-sql-parser';
|
|
|
2
2
|
|
|
3
3
|
interface DatabaseSchema {
|
|
4
4
|
name: string;
|
|
5
|
-
dialect:
|
|
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]:
|
|
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:
|
|
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:
|
|
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
|
|
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
|
|
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
|
|
208
|
+
private generateGoTag;
|
|
181
209
|
}
|
|
182
210
|
|
|
183
|
-
declare class
|
|
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
|
|
218
|
+
private generateGormTag;
|
|
191
219
|
}
|
|
192
220
|
|
|
193
|
-
declare class
|
|
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
|
|
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:
|
|
225
|
-
mode:
|
|
233
|
+
language: Language;
|
|
234
|
+
mode: Mode;
|
|
226
235
|
namespace?: string;
|
|
227
236
|
dialect: string;
|
|
228
237
|
dbName: string;
|
|
@@ -233,31 +242,6 @@ declare function generateCode(sql: string, options: {
|
|
|
233
242
|
namespace?: string;
|
|
234
243
|
dialect?: string;
|
|
235
244
|
dbName?: string;
|
|
236
|
-
}):
|
|
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
|
-
}
|
|
250
|
-
|
|
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
|
-
}
|
|
245
|
+
}): string;
|
|
262
246
|
|
|
263
|
-
export {
|
|
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 };
|