@lakeql/schema-generator 0.1.0 → 0.1.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/README.md +17 -0
- package/dist/graphql-schema.d.mts +36 -13
- package/dist/hive-table.d.mts +42 -14
- package/package.json +11 -2
package/README.md
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# @lakeql/schema-generator
|
|
2
|
+
|
|
3
|
+
Generates GraphQL schema models, JSON Schemas, and Hive table definitions from parsed column structures.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pnpm add @lakeql/schema-generator
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Documentation
|
|
12
|
+
|
|
13
|
+
See the [LakeQL Documentation](https://lakeql.dev/docs) for detailed usage instructions.
|
|
14
|
+
|
|
15
|
+
## License
|
|
16
|
+
|
|
17
|
+
[Apache-2.0](../../LICENSE)
|
|
@@ -42,29 +42,52 @@ type FieldDefinitionResponse = {
|
|
|
42
42
|
subModel: JSONSchema7;
|
|
43
43
|
filter: boolean;
|
|
44
44
|
};
|
|
45
|
+
/**
|
|
46
|
+
* Parameters for generateModel.
|
|
47
|
+
*/
|
|
48
|
+
interface GenerateModelProps {
|
|
49
|
+
/** The JSON Schema source definition to generate a model from. */
|
|
50
|
+
source: JSONSchema7;
|
|
51
|
+
/** The name of the model being generated. */
|
|
52
|
+
name: string;
|
|
53
|
+
/** The parent model name for nested models. */
|
|
54
|
+
parent?: string;
|
|
55
|
+
/** Accumulated model definitions. */
|
|
56
|
+
models: Record<string, ModelResponse>;
|
|
57
|
+
/** Whether this is the root model definition. */
|
|
58
|
+
isRoot: boolean;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Generates a GraphQL model definition from JSON Schema.
|
|
62
|
+
*/
|
|
45
63
|
declare const generateModel: ({
|
|
46
64
|
source,
|
|
47
65
|
name,
|
|
48
66
|
parent,
|
|
49
67
|
models,
|
|
50
68
|
isRoot
|
|
51
|
-
}:
|
|
52
|
-
|
|
53
|
-
|
|
69
|
+
}: GenerateModelProps) => Record<string, ModelResponse>;
|
|
70
|
+
/**
|
|
71
|
+
* Parameters for generateFieldDefinition.
|
|
72
|
+
*/
|
|
73
|
+
interface GenerateFieldDefinitionProps {
|
|
74
|
+
/** The sanitized field name. */
|
|
75
|
+
fieldName: string;
|
|
76
|
+
/** The original raw field name from the schema. */
|
|
77
|
+
rawFieldName: string;
|
|
78
|
+
/** The JSON Schema definition for this field. */
|
|
79
|
+
fieldDefinition: JSONSchema7;
|
|
80
|
+
/** The parent model name for generating nested type references. */
|
|
54
81
|
parent?: string;
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Generates field definitions for a single model property.
|
|
85
|
+
*/
|
|
58
86
|
declare const generateFieldDefinition: ({
|
|
59
87
|
fieldName,
|
|
60
88
|
rawFieldName,
|
|
61
89
|
fieldDefinition,
|
|
62
90
|
parent
|
|
63
|
-
}:
|
|
64
|
-
fieldName: string;
|
|
65
|
-
rawFieldName: string;
|
|
66
|
-
fieldDefinition: JSONSchema7;
|
|
67
|
-
parent?: string;
|
|
68
|
-
}) => FieldDefinitionResponse;
|
|
91
|
+
}: GenerateFieldDefinitionProps) => FieldDefinitionResponse;
|
|
69
92
|
//#endregion
|
|
70
|
-
export { CurrentModelResponse, FieldDefinitionResponse, FilterFieldInput, ModelResponse, generateFieldDefinition, generateModel };
|
|
93
|
+
export { CurrentModelResponse, FieldDefinitionResponse, FilterFieldInput, GenerateFieldDefinitionProps, GenerateModelProps, ModelResponse, generateFieldDefinition, generateModel };
|
package/dist/hive-table.d.mts
CHANGED
|
@@ -13,28 +13,56 @@ type ParquetField = Record<string, string | [string, ParquetField] | [string, {
|
|
|
13
13
|
element: ParquetField;
|
|
14
14
|
};
|
|
15
15
|
}]>;
|
|
16
|
+
/**
|
|
17
|
+
* Parameters for generateSqlSchema.
|
|
18
|
+
*/
|
|
19
|
+
interface GenerateSqlSchemaProps {
|
|
20
|
+
/** The JSON Schema property definitions to generate SQL columns from. */
|
|
21
|
+
definition: Record<string, SchemaDefinition>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Generates SQL column definitions from parsed columns.
|
|
25
|
+
*/
|
|
16
26
|
declare function generateSqlSchema({
|
|
17
27
|
definition
|
|
18
|
-
}:
|
|
19
|
-
|
|
20
|
-
|
|
28
|
+
}: GenerateSqlSchemaProps): SqlFieldDefinition[];
|
|
29
|
+
/**
|
|
30
|
+
* Parameters for parquetTransformer.
|
|
31
|
+
*/
|
|
32
|
+
interface ParquetTransformerProps {
|
|
33
|
+
/** The JSON Schema property definitions to transform for Parquet format. */
|
|
34
|
+
definition: Record<string, JSONSchema7>;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Transforms column definitions for Parquet format.
|
|
38
|
+
*/
|
|
21
39
|
declare function parquetTransformer({
|
|
22
40
|
definition
|
|
23
|
-
}:
|
|
24
|
-
|
|
25
|
-
|
|
41
|
+
}: ParquetTransformerProps): ParquetField;
|
|
42
|
+
/**
|
|
43
|
+
* Parameters for generateCreateTableStatement.
|
|
44
|
+
*/
|
|
45
|
+
interface GenerateCreateTableStatementProps {
|
|
46
|
+
/** The Hive schema name. */
|
|
47
|
+
schema: string;
|
|
48
|
+
/** The table name. */
|
|
49
|
+
tableName: string;
|
|
50
|
+
/** The S3 bucket name for external storage. */
|
|
51
|
+
bucketName: string;
|
|
52
|
+
/** The path within the S3 bucket. */
|
|
53
|
+
bucketPath: string;
|
|
54
|
+
/** The JSON Schema property definitions for table columns. */
|
|
55
|
+
definition: Record<string, SchemaDefinition>;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Generates a full CREATE TABLE DDL statement.
|
|
59
|
+
*/
|
|
26
60
|
declare function generateCreateTableStatement({
|
|
27
61
|
schema,
|
|
28
62
|
tableName,
|
|
29
63
|
bucketName,
|
|
30
64
|
bucketPath,
|
|
31
65
|
definition
|
|
32
|
-
}:
|
|
33
|
-
schema: string;
|
|
34
|
-
tableName: string;
|
|
35
|
-
bucketName: string;
|
|
36
|
-
bucketPath: string;
|
|
37
|
-
definition: Record<string, SchemaDefinition>;
|
|
38
|
-
}): string;
|
|
66
|
+
}: GenerateCreateTableStatementProps): string;
|
|
39
67
|
//#endregion
|
|
40
|
-
export { generateCreateTableStatement, generateSqlSchema, parquetTransformer };
|
|
68
|
+
export { GenerateCreateTableStatementProps, GenerateSqlSchemaProps, ParquetTransformerProps, generateCreateTableStatement, generateSqlSchema, parquetTransformer };
|
package/package.json
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lakeql/schema-generator",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"description": "Generates GraphQL schemas, Hive table definitions, and JSON schemas from Trino metadata",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"codegen",
|
|
7
|
+
"graphql",
|
|
8
|
+
"hive",
|
|
9
|
+
"json-schema",
|
|
10
|
+
"lakeql",
|
|
11
|
+
"schema"
|
|
12
|
+
],
|
|
4
13
|
"homepage": "https://lakeql.dev",
|
|
5
14
|
"license": "Apache-2.0",
|
|
6
15
|
"author": {
|
|
@@ -41,7 +50,7 @@
|
|
|
41
50
|
"kysely": "0.29.2",
|
|
42
51
|
"lodash-es": "4.18.1",
|
|
43
52
|
"magic-regexp": "0.11.0",
|
|
44
|
-
"@lakeql/helpers": "0.1.
|
|
53
|
+
"@lakeql/helpers": "0.1.2"
|
|
45
54
|
},
|
|
46
55
|
"devDependencies": {
|
|
47
56
|
"@types/json-schema": "7.0.15",
|