@mikro-orm/sql 7.0.0-rc.1 → 7.0.0-rc.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/typings.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { Generated, Kysely } from 'kysely';
2
- import type { CheckCallback, DeferMode, Dictionary, EntityName, EntityProperty, EntitySchemaWithMeta, FilterQuery, GroupOperator, IndexColumnOptions, Opt, Primary, PrimaryProperty, QueryFlag, QueryOrderMap, RawQueryFragment, Type } from '@mikro-orm/core';
2
+ import type { CheckCallback, DeferMode, Dictionary, EntityName, EntityProperty, EntitySchemaWithMeta, FilterQuery, GroupOperator, IndexColumnOptions, InferEntityName, Opt, Primary, PrimaryProperty, QueryFlag, QueryOrderMap, RawQueryFragment, Scalar, Type } from '@mikro-orm/core';
3
3
  import type { JoinType, QueryType } from './query/enums.js';
4
4
  import type { DatabaseSchema } from './schema/DatabaseSchema.js';
5
5
  import type { DatabaseTable } from './schema/DatabaseTable.js';
@@ -309,4 +309,13 @@ type MaybeNever<TValue, TOptions> = TOptions extends {
309
309
  type ExcludeNever<TMap extends Record<string, any>> = {
310
310
  [K in keyof TMap as TMap[K] extends never ? never : K]: TMap[K];
311
311
  };
312
+ export type InferClassEntityDB<TEntities, TOptions extends MikroKyselyPluginOptions = {}> = ClassEntityDBMap<TEntities, TOptions> extends infer R ? [keyof R] extends [never] ? unknown : R : never;
313
+ type ClassEntityDBMap<TEntities, TOptions extends MikroKyselyPluginOptions = {}> = {
314
+ [T in TEntities as ClassEntityTableName<T, TOptions>]: ClassEntityColumns<T>;
315
+ };
316
+ type ClassEntityTableName<T, TOptions extends MikroKyselyPluginOptions = {}> = T extends abstract new (...args: any[]) => infer Instance ? TransformName<InferEntityName<Instance>, TOptions['tableNamingStrategy'] extends 'entity' ? 'entity' : 'underscore'> : never;
317
+ type ClassEntityColumns<T> = T extends abstract new (...args: any[]) => infer Instance ? {
318
+ [K in keyof Instance as IsClassEntityColumn<K, Instance[K]>]: Instance[K];
319
+ } : never;
320
+ type IsClassEntityColumn<K, V> = K extends symbol ? never : NonNullable<V> extends Scalar ? K : never;
312
321
  export {};