@mikro-orm/sql 7.0.0-rc.0 → 7.0.0-rc.1

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
@@ -210,7 +210,7 @@ export interface ICriteriaNodeProcessOptions {
210
210
  matchPopulateJoins?: boolean;
211
211
  ignoreBranching?: boolean;
212
212
  preferNoBranch?: boolean;
213
- type?: 'orderBy';
213
+ type?: 'orderBy' | 'having';
214
214
  filter?: boolean;
215
215
  parentPath?: string;
216
216
  }
@@ -273,7 +273,9 @@ type MaybeJoinColumnName<TName extends string, TBuilder> = TBuilder extends {
273
273
  owner: true;
274
274
  };
275
275
  } ? PrimaryProperty<Value> extends string ? `${TName}_${SnakeCase<PrimaryProperty<Value>>}` : never : TName;
276
- export type SnakeCase<TName extends string> = TName extends `${infer P1}${infer P2}` ? P2 extends Uncapitalize<P2> ? `${Uncapitalize<P1>}${SnakeCase<P2>}` : `${Uncapitalize<P1>}_${SnakeCase<Uncapitalize<P2>>}` : TName;
276
+ export type SnakeCase<TName extends string> = TName extends `${infer A}${infer B}${infer Rest}` ? IsUpperLetter<B> extends never ? `${Lowercase<A>}${SnakeCase<`${B}${Rest}`>}` : IsLowerLetter<A> extends never ? `${Lowercase<A>}${SnakeCase<`${B}${Rest}`>}` : `${Lowercase<A>}_${SnakeCase<`${B}${Rest}`>}` : Lowercase<TName>;
277
+ type IsLowerLetter<C extends string> = C extends Lowercase<C> ? (C extends Uppercase<C> ? never : C) : never;
278
+ type IsUpperLetter<C extends string> = C extends Uppercase<C> ? (C extends Lowercase<C> ? never : C) : never;
277
279
  type InferColumnValue<TBuilder, TProcessOnCreate extends boolean> = TBuilder extends {
278
280
  '~type'?: {
279
281
  value: infer Value;