hekireki 0.0.4 → 0.0.6

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.
Files changed (67) hide show
  1. package/README.md +4 -4
  2. package/dist/common/format/index.js +6 -6
  3. package/dist/common/helper/get-camel-case-schema-name-helper.d.ts +1 -3
  4. package/dist/common/helper/get-camel-case-schema-name-helper.js +2 -2
  5. package/dist/common/helper/get-pascal-case-schema-name-helper.d.ts +1 -3
  6. package/dist/common/helper/get-pascal-case-schema-name-helper.js +2 -2
  7. package/dist/common/helper/get-variable-name-helper.d.ts +1 -4
  8. package/dist/common/helper/get-variable-name-helper.js +3 -3
  9. package/dist/common/helper/get-variable-schema-name-helper.d.ts +1 -4
  10. package/dist/common/helper/get-variable-schema-name-helper.js +3 -7
  11. package/dist/common/helper/group-by-model-helper.d.ts +1 -3
  12. package/dist/common/helper/group-by-model-helper.js +7 -7
  13. package/dist/common/text/capitalize.js +1 -1
  14. package/dist/common/text/decapitalize.js +1 -1
  15. package/dist/common/type/index.d.ts +8 -8
  16. package/dist/common/validator/is-fields-validation.d.ts +7 -9
  17. package/dist/common/validator/is-fields-validation.js +3 -1
  18. package/dist/generator/mermaid/generator/generate-er-content.js +8 -14
  19. package/dist/generator/mermaid/generator/generate-model-fields.js +16 -21
  20. package/dist/generator/mermaid/generator/generate-model-info.js +5 -5
  21. package/dist/generator/mermaid/generator/generate-relation-line.d.ts +2 -3
  22. package/dist/generator/mermaid/generator/generate-relation-line.js +7 -8
  23. package/dist/generator/mermaid/index.d.ts +3 -2
  24. package/dist/generator/mermaid/index.js +47 -52
  25. package/dist/generator/mermaid/output/index.js +13 -17
  26. package/dist/generator/mermaid/type/index.d.ts +6 -30
  27. package/dist/generator/mermaid/validator/exclude-many-to-one-relations.d.ts +1 -3
  28. package/dist/generator/mermaid/validator/exclude-many-to-one-relations.js +1 -1
  29. package/dist/generator/mermaid/validator/extract-relations.d.ts +2 -3
  30. package/dist/generator/mermaid/validator/extract-relations.js +15 -18
  31. package/dist/generator/mermaid/validator/is-relation.d.ts +5 -0
  32. package/dist/generator/mermaid/validator/is-relation.js +30 -25
  33. package/dist/generator/mermaid/validator/parse-relation.js +16 -17
  34. package/dist/generator/mermaid/validator/remove-duplicate-relations.d.ts +3 -6
  35. package/dist/generator/mermaid/validator/remove-duplicate-relations.js +3 -4
  36. package/dist/generator/valibot/generator/generate-valibot-infer-input.d.ts +1 -4
  37. package/dist/generator/valibot/generator/generate-valibot-infer-input.js +3 -10
  38. package/dist/generator/valibot/generator/generate-valibot-properties.d.ts +7 -10
  39. package/dist/generator/valibot/generator/generate-valibot-properties.js +15 -21
  40. package/dist/generator/valibot/generator/generate-valibot-schema.d.ts +1 -5
  41. package/dist/generator/valibot/generator/generate-valibot-schema.js +2 -6
  42. package/dist/generator/valibot/generator/generate-valibot-schemas.d.ts +7 -10
  43. package/dist/generator/valibot/generator/generate-valibot-schemas.js +7 -14
  44. package/dist/generator/valibot/generator/generate-valibot.d.ts +1 -4
  45. package/dist/generator/valibot/generator/generate-valibot.js +36 -51
  46. package/dist/generator/valibot/index.d.ts +7 -6
  47. package/dist/generator/valibot/index.js +41 -46
  48. package/dist/generator/valibot/validator/is-valibot-documentation.d.ts +1 -3
  49. package/dist/generator/valibot/validator/is-valibot-documentation.js +7 -8
  50. package/dist/generator/valibot/validator/is-valibot-validation.d.ts +1 -3
  51. package/dist/generator/valibot/validator/is-valibot-validation.js +4 -3
  52. package/dist/generator/zod/generator/generate-zod-infer.d.ts +1 -4
  53. package/dist/generator/zod/generator/generate-zod-infer.js +3 -10
  54. package/dist/generator/zod/generator/generate-zod-properties.d.ts +7 -10
  55. package/dist/generator/zod/generator/generate-zod-properties.js +15 -21
  56. package/dist/generator/zod/generator/generate-zod-schema.d.ts +1 -5
  57. package/dist/generator/zod/generator/generate-zod-schema.js +2 -6
  58. package/dist/generator/zod/generator/generate-zod-schemas.d.ts +7 -10
  59. package/dist/generator/zod/generator/generate-zod-schemas.js +7 -14
  60. package/dist/generator/zod/generator/generate-zod.d.ts +1 -4
  61. package/dist/generator/zod/generator/generate-zod.js +36 -51
  62. package/dist/generator/zod/index.d.ts +7 -6
  63. package/dist/generator/zod/index.js +41 -46
  64. package/dist/generator/zod/validator/is-zod-documentation.d.ts +1 -3
  65. package/dist/generator/zod/validator/is-zod-documentation.js +7 -8
  66. package/dist/generator/zod/validator/is-zod-validation.js +4 -3
  67. package/package.json +2 -2
@@ -5,24 +5,21 @@ const generate_relation_line_1 = require("../generator/generate-relation-line");
5
5
  const parse_relation_1 = require("./parse-relation");
6
6
  /**
7
7
  * extract relations from model
8
- * @function extractRelations
9
- * @param model
10
- * @returns
8
+ * @param { Model } model
9
+ * @returns { readonly string[] }
11
10
  */
12
11
  function extractRelations(model) {
13
- const relations = [];
14
- // @r annotation
15
- if (model.documentation) {
16
- const annotationRelations = model.documentation
17
- .split("\n")
18
- .map((line) => {
19
- const relation = (0, parse_relation_1.parseRelation)(line);
20
- return relation
21
- ? (0, generate_relation_line_1.generateRelationLine)(relation)
22
- : null;
23
- })
24
- .filter((line) => line !== null);
25
- relations.push(...annotationRelations);
26
- }
27
- return relations;
12
+ const relations = [];
13
+ // @relation annotation
14
+ if (model.documentation) {
15
+ const annotationRelations = model.documentation
16
+ .split("\n")
17
+ .map((line) => {
18
+ const relation = (0, parse_relation_1.parseRelation)(line);
19
+ return relation ? (0, generate_relation_line_1.generateRelationLine)(relation) : null;
20
+ })
21
+ .filter((line) => line !== null);
22
+ relations.push(...annotationRelations);
23
+ }
24
+ return relations;
28
25
  }
@@ -1,2 +1,7 @@
1
1
  import type { RelationType } from "../type";
2
+ /**
3
+ * check if the value is a valid relation
4
+ * @param { unknown } value
5
+ * @returns { boolean }
6
+ */
2
7
  export declare function isRelation(value: unknown): value is RelationType;
@@ -2,31 +2,36 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isRelation = isRelation;
4
4
  const VALID_RELATIONS = new Set([
5
- "one-to-one",
6
- "one-to-many",
7
- "many-to-one",
8
- "many-to-many",
9
- "one-to-zero-one",
10
- "zero-one-to-one",
11
- "zero-to-one",
12
- "zero-to-zero-one",
13
- "zero-to-many",
14
- "zero-one-to-many",
15
- "many-to-zero-one",
16
- "one-to-one-optional",
17
- "one-to-many-optional",
18
- "many-to-one-optional",
19
- "many-to-many-optional",
20
- "one-to-zero-one-optional",
21
- "zero-one-to-one-optional",
22
- "zero-to-one-optional",
23
- "zero-to-many-optional",
24
- "zero-one-to-many-optional",
25
- "many-to-zero-one-optional",
26
- "many-to-zero-many",
27
- "zero-many-to-many",
28
- "zero-many-to-zero-many",
5
+ "one-to-one",
6
+ "one-to-many",
7
+ "many-to-one",
8
+ "many-to-many",
9
+ "one-to-zero-one",
10
+ "zero-one-to-one",
11
+ "zero-to-one",
12
+ "zero-to-zero-one",
13
+ "zero-to-many",
14
+ "zero-one-to-many",
15
+ "many-to-zero-one",
16
+ "one-to-one-optional",
17
+ "one-to-many-optional",
18
+ "many-to-one-optional",
19
+ "many-to-many-optional",
20
+ "one-to-zero-one-optional",
21
+ "zero-one-to-one-optional",
22
+ "zero-to-one-optional",
23
+ "zero-to-many-optional",
24
+ "zero-one-to-many-optional",
25
+ "many-to-zero-one-optional",
26
+ "many-to-zero-many",
27
+ "zero-many-to-many",
28
+ "zero-many-to-zero-many",
29
29
  ]);
30
+ /**
31
+ * check if the value is a valid relation
32
+ * @param { unknown } value
33
+ * @returns { boolean }
34
+ */
30
35
  function isRelation(value) {
31
- return typeof value === "string" && VALID_RELATIONS.has(value);
36
+ return typeof value === "string" && VALID_RELATIONS.has(value);
32
37
  }
@@ -9,21 +9,20 @@ const is_relation_1 = require("./is-relation");
9
9
  * @returns
10
10
  */
11
11
  function parseRelation(line) {
12
- const relationRegex =
13
- /^@relation\s+(\w+)\.(\w+)\s+(\w+)\.(\w+)\s+(\w+-to-\w+)$/;
14
- const match = line.trim().match(relationRegex);
15
- if (!match) {
16
- return null;
17
- }
18
- const [, fromModel, fromField, toModel, toField, relationType] = match;
19
- if (!(0, is_relation_1.isRelation)(relationType)) {
20
- return null;
21
- }
22
- return {
23
- fromModel,
24
- fromField,
25
- toModel,
26
- toField,
27
- type: relationType,
28
- };
12
+ const relationRegex = /^@relation\s+(\w+)\.(\w+)\s+(\w+)\.(\w+)\s+(\w+-to-\w+)$/;
13
+ const match = line.trim().match(relationRegex);
14
+ if (!match) {
15
+ return null;
16
+ }
17
+ const [, fromModel, fromField, toModel, toField, relationType] = match;
18
+ if (!(0, is_relation_1.isRelation)(relationType)) {
19
+ return null;
20
+ }
21
+ return {
22
+ fromModel,
23
+ fromField,
24
+ toModel,
25
+ toField,
26
+ type: relationType,
27
+ };
29
28
  }
@@ -1,9 +1,6 @@
1
1
  /**
2
2
  * remove duplicate relations
3
- * @function removeDuplicateRelations
4
- * @param relations
5
- * @returns
3
+ * @param { readonly string[] } relations
4
+ * @returns { readonly string[] }
6
5
  */
7
- export declare function removeDuplicateRelations(
8
- relations: readonly string[],
9
- ): readonly string[];
6
+ export declare function removeDuplicateRelations(relations: readonly string[]): readonly string[];
@@ -3,10 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.removeDuplicateRelations = removeDuplicateRelations;
4
4
  /**
5
5
  * remove duplicate relations
6
- * @function removeDuplicateRelations
7
- * @param relations
8
- * @returns
6
+ * @param { readonly string[] } relations
7
+ * @returns { readonly string[] }
9
8
  */
10
9
  function removeDuplicateRelations(relations) {
11
- return [...new Set(relations)];
10
+ return [...new Set(relations)];
12
11
  }
@@ -5,7 +5,4 @@ import type { Config } from "..";
5
5
  * @param config - The configuration for the generator
6
6
  * @returns The generated infer input type
7
7
  */
8
- export declare function generateValibotInferInput(
9
- modelName: string,
10
- config: Config,
11
- ): string;
8
+ export declare function generateValibotInferInput(modelName: string, config: Config): string;
@@ -10,14 +10,7 @@ const get_variable_schema_name_helper_1 = require("../../../common/helper/get-va
10
10
  * @returns The generated infer input type
11
11
  */
12
12
  function generateValibotInferInput(modelName, config) {
13
- const typeName = (0, get_variable_name_helper_1.getVariableNameHelper)(
14
- modelName,
15
- config,
16
- );
17
- const schemaName = (0,
18
- get_variable_schema_name_helper_1.getVariableSchemaNameHelper)(
19
- modelName,
20
- config,
21
- );
22
- return `export type ${typeName} = v.InferInput<typeof ${schemaName}>`;
13
+ const typeName = (0, get_variable_name_helper_1.getVariableNameHelper)(modelName, config);
14
+ const schemaName = (0, get_variable_schema_name_helper_1.getVariableSchemaNameHelper)(modelName, config);
15
+ return `export type ${typeName} = v.InferInput<typeof ${schemaName}>`;
23
16
  }
@@ -1,11 +1,8 @@
1
1
  import type { Config } from "..";
2
- export declare function generateValibotProperties(
3
- modelFields: {
4
- documentation: string;
5
- modelName: string;
6
- fieldName: string;
7
- validation: string | null;
8
- comment: string[];
9
- }[],
10
- config?: Config,
11
- ): string;
2
+ export declare function generateValibotProperties(modelFields: {
3
+ documentation: string;
4
+ modelName: string;
5
+ fieldName: string;
6
+ validation: string | null;
7
+ comment: string[];
8
+ }[], config?: Config): string;
@@ -2,25 +2,19 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateValibotProperties = generateValibotProperties;
4
4
  function generateValibotProperties(modelFields, config) {
5
- const fields = modelFields
6
- .filter((field) => field.validation)
7
- .map((field) => {
8
- // @relation, @v, @z exclude
9
- const cleanDoc = field.comment
10
- .filter(
11
- (line) =>
12
- !(
13
- line.includes("@relation") ||
14
- line.includes("@v") ||
15
- line.includes("@z")
16
- ),
17
- )
18
- .join("\n")
19
- .trim();
20
- const docComment =
21
- config?.comment && cleanDoc ? ` /**\n * ${cleanDoc}\n */\n` : "";
22
- return `${docComment} ${field.fieldName}: v.${field.validation}`;
23
- })
24
- .join(",\n");
25
- return fields;
5
+ const fields = modelFields
6
+ .filter((field) => field.validation)
7
+ .map((field) => {
8
+ // @relation, @v, @z exclude
9
+ const cleanDoc = field.comment
10
+ .filter((line) => !(line.includes("@relation") ||
11
+ line.includes("@v") ||
12
+ line.includes("@z")))
13
+ .join("\n")
14
+ .trim();
15
+ const docComment = config?.comment && cleanDoc ? ` /**\n * ${cleanDoc}\n */\n` : "";
16
+ return `${docComment} ${field.fieldName}: v.${field.validation}`;
17
+ })
18
+ .join(",\n");
19
+ return fields;
26
20
  }
@@ -6,8 +6,4 @@ import type { Config } from "..";
6
6
  * @param config - The configuration for the generator
7
7
  * @returns The generated Valibot schema
8
8
  */
9
- export declare function generateValibotSchema(
10
- modelName: string,
11
- fields: string,
12
- config: Config,
13
- ): string;
9
+ export declare function generateValibotSchema(modelName: string, fields: string, config: Config): string;
@@ -10,10 +10,6 @@ const get_variable_schema_name_helper_1 = require("../../../common/helper/get-va
10
10
  * @returns The generated Valibot schema
11
11
  */
12
12
  function generateValibotSchema(modelName, fields, config) {
13
- const schemaName = (0,
14
- get_variable_schema_name_helper_1.getVariableSchemaNameHelper)(
15
- modelName,
16
- config,
17
- );
18
- return `export const ${schemaName} = v.object({\n${fields}\n})`;
13
+ const schemaName = (0, get_variable_schema_name_helper_1.getVariableSchemaNameHelper)(modelName, config);
14
+ return `export const ${schemaName} = v.object({\n${fields}\n})`;
19
15
  }
@@ -6,13 +6,10 @@ import type { Config } from "..";
6
6
  * @param config
7
7
  * @returns
8
8
  */
9
- export declare function generateValibotSchemas(
10
- modelFields: {
11
- documentation: string;
12
- modelName: string;
13
- fieldName: string;
14
- validation: string | null;
15
- comment: string[];
16
- }[],
17
- config: Config,
18
- ): string;
9
+ export declare function generateValibotSchemas(modelFields: {
10
+ documentation: string;
11
+ modelName: string;
12
+ fieldName: string;
13
+ validation: string | null;
14
+ comment: string[];
15
+ }[], config: Config): string;
@@ -11,18 +11,11 @@ const generate_valibot_schema_1 = require("./generate-valibot-schema");
11
11
  * @returns
12
12
  */
13
13
  function generateValibotSchemas(modelFields, config) {
14
- const modelName = modelFields[0].modelName;
15
- const modelDoc = modelFields[0].documentation || "";
16
- const fields = (0, generate_valibot_properties_1.generateValibotProperties)(
17
- modelFields,
18
- config,
19
- );
20
- if (!(modelDoc || !config?.comment)) {
21
- return (0, generate_valibot_schema_1.generateValibotSchema)(
22
- modelName,
23
- fields,
24
- config,
25
- );
26
- }
27
- return `${(0, generate_valibot_schema_1.generateValibotSchema)(modelName, fields, config)}`;
14
+ const modelName = modelFields[0].modelName;
15
+ const modelDoc = modelFields[0].documentation || "";
16
+ const fields = (0, generate_valibot_properties_1.generateValibotProperties)(modelFields, config);
17
+ if (!(modelDoc || !config?.comment)) {
18
+ return (0, generate_valibot_schema_1.generateValibotSchema)(modelName, fields, config);
19
+ }
20
+ return `${(0, generate_valibot_schema_1.generateValibotSchema)(modelName, fields, config)}`;
28
21
  }
@@ -6,7 +6,4 @@ import type { Model } from "../../../common/type";
6
6
  * @param config - The configuration for the generator
7
7
  * @returns The generated Valibot schemas and types
8
8
  */
9
- export declare function generateValibot(
10
- models: readonly Model[],
11
- config: Config,
12
- ): string;
9
+ export declare function generateValibot(models: readonly Model[], config: Config): string;
@@ -15,55 +15,40 @@ const VALIBOT_IMPORT = `import * as v from 'valibot'\n`;
15
15
  * @returns The generated Valibot schemas and types
16
16
  */
17
17
  function generateValibot(models, config) {
18
- const modelInfos = models.map((model) => {
19
- return {
20
- documentation: model.documentation ?? "",
21
- name: model.name,
22
- fields: model.fields,
23
- };
24
- });
25
- const modelFields = modelInfos.map((model) => {
26
- const fields = model.fields.map((field) => ({
27
- documentation: model.documentation,
28
- modelName: model.name,
29
- fieldName: field.name,
30
- comment: (0, is_valibot_documentation_1.isValibotDocumentValidation)(
31
- field.documentation,
32
- ),
33
- validation: (0, is_valibot_validation_1.isValibotValidation)(
34
- field.documentation,
35
- ),
36
- }));
37
- return fields;
38
- });
39
- // null exclude
40
- const validFields = (0, is_fields_validation_1.isFieldsValidation)(
41
- modelFields,
42
- );
43
- // group by model
44
- const groupedByModel = (0, group_by_model_helper_1.groupByModelHelper)(
45
- validFields,
46
- );
47
- const valibots = Object.values(groupedByModel).map((fields) => {
48
- return {
49
- generateValibotSchema: (0,
50
- generate_valibot_schemas_1.generateValibotSchemas)(fields, config),
51
- generateValibotInfer:
52
- config.type === "true"
53
- ? (0, generate_valibot_infer_input_1.generateValibotInferInput)(
54
- fields[0].modelName,
55
- config,
56
- )
57
- : "",
58
- };
59
- });
60
- return [
61
- VALIBOT_IMPORT,
62
- "",
63
- valibots
64
- .flatMap(({ generateValibotSchema, generateValibotInfer }) =>
65
- [generateValibotSchema, generateValibotInfer].filter(Boolean),
66
- )
67
- .join("\n\n"),
68
- ].join("\n");
18
+ const modelInfos = models.map((model) => {
19
+ return {
20
+ documentation: model.documentation ?? "",
21
+ name: model.name,
22
+ fields: model.fields,
23
+ };
24
+ });
25
+ const modelFields = modelInfos.map((model) => {
26
+ const fields = model.fields.map((field) => ({
27
+ documentation: model.documentation,
28
+ modelName: model.name,
29
+ fieldName: field.name,
30
+ comment: (0, is_valibot_documentation_1.isValibotDocumentValidation)(field.documentation),
31
+ validation: (0, is_valibot_validation_1.isValibotValidation)(field.documentation),
32
+ }));
33
+ return fields;
34
+ });
35
+ // null exclude
36
+ const validFields = (0, is_fields_validation_1.isFieldsValidation)(modelFields);
37
+ // group by model
38
+ const groupedByModel = (0, group_by_model_helper_1.groupByModelHelper)(validFields);
39
+ const valibots = Object.values(groupedByModel).map((fields) => {
40
+ return {
41
+ generateValibotSchema: (0, generate_valibot_schemas_1.generateValibotSchemas)(fields, config),
42
+ generateValibotInfer: config.type === "true"
43
+ ? (0, generate_valibot_infer_input_1.generateValibotInferInput)(fields[0].modelName, config)
44
+ : "",
45
+ };
46
+ });
47
+ return [
48
+ VALIBOT_IMPORT,
49
+ "",
50
+ valibots
51
+ .flatMap(({ generateValibotSchema, generateValibotInfer }) => [generateValibotSchema, generateValibotInfer].filter(Boolean))
52
+ .join("\n\n"),
53
+ ].join("\n");
69
54
  }
@@ -1,10 +1,11 @@
1
+ #!/usr/bin/env node
1
2
  import type { GeneratorOptions } from "@prisma/generator-helper";
2
3
  export type Config = {
3
- output?: string;
4
- file?: string | string[];
5
- schemaName?: "PascalCase" | "camelCase" | string | string[];
6
- typeName?: "PascalCase" | "camelCase" | string | string[];
7
- type?: boolean | string | string[];
8
- comment?: boolean | string | string[];
4
+ output?: string;
5
+ file?: string | string[];
6
+ schemaName?: "PascalCase" | "camelCase" | string | string[];
7
+ typeName?: "PascalCase" | "camelCase" | string | string[];
8
+ type?: boolean | string | string[];
9
+ comment?: boolean | string | string[];
9
10
  };
10
11
  export declare function main(options: GeneratorOptions): Promise<void>;
@@ -1,9 +1,8 @@
1
+ #!/usr/bin/env node
1
2
  "use strict";
2
- var __importDefault =
3
- (this && this.__importDefault) ||
4
- function (mod) {
5
- return mod && mod.__esModule ? mod : { default: mod };
6
- };
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
7
6
  Object.defineProperty(exports, "__esModule", { value: true });
8
7
  exports.main = main;
9
8
  const generator_helper_1 = require("@prisma/generator-helper");
@@ -11,49 +10,45 @@ const generate_valibot_1 = require("./generator/generate-valibot");
11
10
  const prettier_1 = require("prettier");
12
11
  const node_fs_1 = __importDefault(require("node:fs"));
13
12
  const DEFAULT_CONFIG = {
14
- output: "./valibot",
15
- file: "index.ts",
16
- schemaName: "PascalCase",
17
- typeName: "PascalCase",
18
- type: false,
19
- comment: false,
13
+ output: "./valibot",
14
+ file: "index.ts",
15
+ schemaName: "PascalCase",
16
+ typeName: "PascalCase",
17
+ type: false,
18
+ comment: false,
20
19
  };
21
20
  async function main(options) {
22
- const config = {
23
- output: options.generator.output?.value ?? DEFAULT_CONFIG.output,
24
- file: options.generator.config?.file ?? DEFAULT_CONFIG.file,
25
- schemaName:
26
- options.generator.config?.schemaName ?? DEFAULT_CONFIG.schemaName,
27
- typeName: options.generator.config?.typeName ?? DEFAULT_CONFIG.typeName,
28
- type: options.generator.config?.type ?? DEFAULT_CONFIG.type,
29
- comment: options.generator.config?.comment === "true",
30
- };
31
- const content = (0, generate_valibot_1.generateValibot)(
32
- options.dmmf.datamodel.models,
33
- config,
34
- );
35
- const code = await (0, prettier_1.format)(content, {
36
- parser: "typescript",
37
- printWidth: 100,
38
- singleQuote: true,
39
- semi: false,
40
- });
41
- if (!config.output) {
42
- throw new Error("output is required");
43
- }
44
- if (!node_fs_1.default.existsSync(config.output)) {
45
- node_fs_1.default.mkdirSync(config.output, { recursive: true });
46
- }
47
- const file = config.file ?? "index.ts";
48
- const filePath = `${config.output}/${file}`;
49
- node_fs_1.default.writeFileSync(filePath, code);
21
+ const config = {
22
+ output: options.generator.output?.value ?? DEFAULT_CONFIG.output,
23
+ file: options.generator.config?.file ?? DEFAULT_CONFIG.file,
24
+ schemaName: options.generator.config?.schemaName ?? DEFAULT_CONFIG.schemaName,
25
+ typeName: options.generator.config?.typeName ?? DEFAULT_CONFIG.typeName,
26
+ type: options.generator.config?.type ?? DEFAULT_CONFIG.type,
27
+ comment: options.generator.config?.comment === "true",
28
+ };
29
+ const content = (0, generate_valibot_1.generateValibot)(options.dmmf.datamodel.models, config);
30
+ const code = await (0, prettier_1.format)(content, {
31
+ parser: "typescript",
32
+ printWidth: 100,
33
+ singleQuote: true,
34
+ semi: false,
35
+ });
36
+ if (!config.output) {
37
+ throw new Error("output is required");
38
+ }
39
+ if (!node_fs_1.default.existsSync(config.output)) {
40
+ node_fs_1.default.mkdirSync(config.output, { recursive: true });
41
+ }
42
+ const file = config.file ?? "index.ts";
43
+ const filePath = `${config.output}/${file}`;
44
+ node_fs_1.default.writeFileSync(filePath, code);
50
45
  }
51
46
  (0, generator_helper_1.generatorHandler)({
52
- onManifest() {
53
- return {
54
- defaultOutput: "./valibot/",
55
- prettyName: "Hekireki-Valibot",
56
- };
57
- },
58
- onGenerate: main,
47
+ onManifest() {
48
+ return {
49
+ defaultOutput: "./valibot/",
50
+ prettyName: "Hekireki-Valibot",
51
+ };
52
+ },
53
+ onGenerate: main,
59
54
  });
@@ -1,3 +1 @@
1
- export declare function isValibotDocumentValidation(
2
- documentation?: string,
3
- ): string[];
1
+ export declare function isValibotDocumentValidation(documentation?: string): string[];
@@ -3,12 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isValibotDocumentValidation = isValibotDocumentValidation;
4
4
  const VALIDATION_PATTERNS = ["@v."];
5
5
  function isValibotDocumentValidation(documentation) {
6
- if (!documentation) return [];
7
- return documentation
8
- .split("\n")
9
- .filter(
10
- (line) => !VALIDATION_PATTERNS.some((pattern) => line.includes(pattern)),
11
- )
12
- .map((line) => line.trim())
13
- .filter(Boolean);
6
+ if (!documentation)
7
+ return [];
8
+ return documentation
9
+ .split("\n")
10
+ .filter((line) => !VALIDATION_PATTERNS.some((pattern) => line.includes(pattern)))
11
+ .map((line) => line.trim())
12
+ .filter(Boolean);
14
13
  }
@@ -4,6 +4,4 @@
4
4
  * @param documentation
5
5
  * @returns string | null
6
6
  */
7
- export declare function isValibotValidation(
8
- documentation?: string,
9
- ): string | null;
7
+ export declare function isValibotValidation(documentation?: string): string | null;
@@ -8,7 +8,8 @@ exports.isValibotValidation = isValibotValidation;
8
8
  * @returns string | null
9
9
  */
10
10
  function isValibotValidation(documentation) {
11
- if (!documentation) return null;
12
- const match = documentation.match(/@v\.(.+?)(?:\n|$)/);
13
- return match ? match[1].trim() : null;
11
+ if (!documentation)
12
+ return null;
13
+ const match = documentation.match(/@v\.(.+?)(?:\n|$)/);
14
+ return match ? match[1].trim() : null;
14
15
  }
@@ -5,7 +5,4 @@ import type { Config } from "..";
5
5
  * @param config - The configuration for the generator
6
6
  * @returns The generated Zod infer
7
7
  */
8
- export declare function generateZodInfer(
9
- modelName: string,
10
- config: Config,
11
- ): string;
8
+ export declare function generateZodInfer(modelName: string, config: Config): string;