UNPKG

kysely-codegen

Version:

`kysely-codegen` generates Kysely type definitions from your database. That's it.

112 lines 5.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.loadConfig = exports.defineConfig = exports.configSchema = exports.dialectNameSchema = void 0; const cosmiconfig_1 = require("cosmiconfig"); const zod_1 = require("zod"); const array_expression_node_1 = require("../generator/ast/array-expression-node"); const extends_clause_node_1 = require("../generator/ast/extends-clause-node"); const generic_expression_node_1 = require("../generator/ast/generic-expression-node"); const identifier_node_1 = require("../generator/ast/identifier-node"); const infer_clause_node_1 = require("../generator/ast/infer-clause-node"); const literal_node_1 = require("../generator/ast/literal-node"); const mapped_type_node_1 = require("../generator/ast/mapped-type-node"); const object_expression_node_1 = require("../generator/ast/object-expression-node"); const raw_expression_node_1 = require("../generator/ast/raw-expression-node"); const union_expression_node_1 = require("../generator/ast/union-expression-node"); const log_level_1 = require("../generator/logger/log-level"); const logger_1 = require("../generator/logger/logger"); const dialect_1 = require("../introspector/dialect"); const database_metadata_1 = require("../introspector/metadata/database-metadata"); exports.dialectNameSchema = zod_1.z.enum([ 'bun-sqlite', 'kysely-bun-sqlite', 'libsql', 'mssql', 'mysql', 'postgres', 'sqlite', 'worker-bun-sqlite', ]); const expressionNodeSchema = zod_1.z.union([ zod_1.z.instanceof(array_expression_node_1.ArrayExpressionNode), zod_1.z.instanceof(extends_clause_node_1.ExtendsClauseNode), zod_1.z.instanceof(generic_expression_node_1.GenericExpressionNode), zod_1.z.instanceof(identifier_node_1.IdentifierNode), zod_1.z.instanceof(infer_clause_node_1.InferClauseNode), zod_1.z.instanceof(literal_node_1.LiteralNode), zod_1.z.instanceof(mapped_type_node_1.MappedTypeNode), zod_1.z.instanceof(object_expression_node_1.ObjectExpressionNode), zod_1.z.instanceof(raw_expression_node_1.RawExpressionNode), zod_1.z.instanceof(union_expression_node_1.UnionExpressionNode), zod_1.z.string(), ]); const overridesSchema = zod_1.z .object({ columns: zod_1.z.record(zod_1.z.string(), expressionNodeSchema).optional() }) .optional(); exports.configSchema = zod_1.z.object({ camelCase: zod_1.z.boolean().optional(), customImports: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(), dateParser: zod_1.z.enum(['string', 'timestamp']).optional(), defaultSchemas: zod_1.z.array(zod_1.z.string()).optional(), dialect: exports.dialectNameSchema.nullable().optional(), domains: zod_1.z.boolean().optional(), envFile: zod_1.z.string().nullable().optional(), excludePattern: zod_1.z.string().nullable().optional(), includePattern: zod_1.z.string().nullable().optional(), logger: zod_1.z.instanceof(logger_1.Logger).optional(), logLevel: zod_1.z.enum(log_level_1.LOG_LEVELS).optional(), numericParser: zod_1.z .enum(['number', 'number-or-string', 'string']) .optional(), outFile: zod_1.z.string().nullable().optional(), overrides: overridesSchema.optional(), partitions: zod_1.z.boolean().optional(), postprocess: zod_1.z.function().optional(), print: zod_1.z.boolean().optional(), runtimeEnums: zod_1.z .union([ zod_1.z.boolean(), zod_1.z.enum(['pascal-case', 'screaming-snake-case']), ]) .optional(), serializer: zod_1.z .object({ serializeFile: zod_1.z.function({ input: zod_1.z.tuple([ zod_1.z.instanceof(database_metadata_1.DatabaseMetadata), zod_1.z.instanceof(dialect_1.IntrospectorDialect), zod_1.z .object({ camelCase: zod_1.z.boolean().optional(), customImports: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(), defaultSchemas: zod_1.z.string().array().optional(), overrides: overridesSchema.optional(), typeMapping: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(), }) .optional(), ]), output: zod_1.z.string(), }), }) .optional(), singularize: zod_1.z .union([zod_1.z.boolean(), zod_1.z.record(zod_1.z.string(), zod_1.z.string())]) .optional(), skipAutogeneratedFileComment: zod_1.z.boolean().optional(), typeMapping: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(), typeOnlyImports: zod_1.z.boolean().optional(), url: zod_1.z.string().optional(), verify: zod_1.z.boolean().optional(), }); const defineConfig = (config) => { return config; }; exports.defineConfig = defineConfig; const loadConfig = (config) => { const explorer = (0, cosmiconfig_1.cosmiconfigSync)('kysely-codegen'); return config?.configFile ? explorer.load(config.configFile) : explorer.search(); }; exports.loadConfig = loadConfig; //# sourceMappingURL=config.js.map