diff --git a/src/lib/file-generators/generated/[schema_name]/index.ts b/src/lib/file-generators/generated/[schema_name]/index.ts index dfad982..1514fc7 100644 --- a/src/lib/file-generators/generated/[schema_name]/index.ts +++ b/src/lib/file-generators/generated/[schema_name]/index.ts @@ -32,7 +32,10 @@ export const createSchemaGeneratedTypeIndexFile = ( { kind: StructureKind.ImportDeclaration, moduleSpecifier: '../utils', - namedImports: ['KyselyTable', 'KnexTable'], + namedImports: [ + 'KyselyTable', + ...(config.generate_knex_types === true ? ['KnexTable'] : []), + ], isTypeOnly: true, }, ] diff --git a/src/lib/file-generators/generated/utils.ts b/src/lib/file-generators/generated/utils.ts index da0ece9..a4fe5fd 100644 --- a/src/lib/file-generators/generated/utils.ts +++ b/src/lib/file-generators/generated/utils.ts @@ -11,9 +11,26 @@ export const createGeneratedUtilsFile = ( const { project } = args const { output_dir } = config + const knex_import = + config.generate_knex_types === true ? '\nimport { Knex } from "knex"' : '' + + const knex_types = + config.generate_knex_types === true + ? ` +type KnexInsertableTable = { + [K in keyof T]: Knex.MaybeRawColumn +} + +export type KnexTable = Knex.CompositeTableType< + Selectable, + Partial>, // TODO remove \`Partial\` once we fix the code + Partial> +> +` + : '' + const file_source = `import type { JSONValue } from "zapatos/db" -import { type ColumnType } from "kysely" -import { Knex } from "knex" +import { type ColumnType } from "kysely"${knex_import} type PartialWithNever = { [P in keyof T as T[P] extends never ? never : P]?: T[P] @@ -30,17 +47,7 @@ export type KyselyTable = { : never > } - -type KnexInsertableTable = { - [K in keyof T]: Knex.MaybeRawColumn -} - -export type KnexTable = Knex.CompositeTableType< - Selectable, - Partial>, // TODO remove \`Partial\` once we fix the code - Partial> -> - +${knex_types} type KeysOfUnion = T extends T ? keyof T : never type NullableKeys = {