orange-orm 5.2.3-beta2 → 5.2.3

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/docs/changelog.md CHANGED
@@ -1,4 +1,6 @@
1
1
  ## Changelog
2
+ __5.2.3__
3
+ Pass table and column and other metadata to custom validate function [#165](https://github.com/alfateam/orange-orm/issues/165)
2
4
  __5.2.2__
3
5
  Bugfix: jsonOf<T>() exists in type definitions but is missing at runtime [#166](https://github.com/alfateam/orange-orm/issues/166)
4
6
  __5.2.1__
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orange-orm",
3
- "version": "5.2.3-beta2",
3
+ "version": "5.2.3",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
package/src/map.d.ts CHANGED
@@ -643,11 +643,6 @@ interface ValidationMeta {
643
643
  isInsert: boolean;
644
644
  }
645
645
 
646
- type OptionalOnNullable<M, T> = M extends NotNull ? T : T | null | undefined;
647
- type ValidateMethod<TValue, TReturn> = {
648
- validate(validator: (value: TValue, meta: ValidationMeta) => void): TReturn;
649
- };
650
-
651
646
  interface ColumnType<M> {
652
647
  string(): StringColumnTypeDef<M & StringColumnSymbol>;
653
648
  uuid(): UuidColumnTypeDef<M & UuidColumnSymbol>;
@@ -662,15 +657,94 @@ interface ColumnType<M> {
662
657
  jsonOf<T>(helper: T): JSONColumnTypeDef<M & JSONColumnSymbol & JsonOf<T>>;
663
658
  }
664
659
 
665
- type UuidValidator<M> = ValidateMethod<OptionalOnNullable<M, string>, UuidColumnTypeDef<M>>;
666
- type StringValidator<M> = ValidateMethod<OptionalOnNullable<M, string>, StringColumnTypeDef<M>>;
667
- type NumericValidator<M> = ValidateMethod<OptionalOnNullable<M, number>, NumericColumnTypeDef<M>>;
668
- type BigIntValidator<M> = ValidateMethod<OptionalOnNullable<M, bigint>, BigIntColumnTypeDef<M>>;
669
- type BinaryValidator<M> = ValidateMethod<OptionalOnNullable<M, string>, BinaryColumnTypeDef<M>>;
670
- type BooleanValidator<M> = ValidateMethod<OptionalOnNullable<M, boolean>, BooleanColumnTypeDef<M>>;
671
- type JSONValidator<M> = ValidateMethod<OptionalOnNullable<M, ToJsonType<M>>, JSONColumnTypeDef<M>>;
672
- type DateValidator<M> = ValidateMethod<OptionalOnNullable<M, string | Date>, DateColumnTypeDef<M>>;
673
- type DateWithTimeZoneValidator<M> = ValidateMethod<OptionalOnNullable<M, string | Date>, DateWithTimeZoneColumnTypeDef<M>>;
660
+ type UuidValidator<M> = M extends NotNull
661
+ ? {
662
+ validate(validator: (value: string, meta: ValidationMeta) => void): UuidColumnTypeDef<M>;
663
+ }
664
+ : {
665
+ validate(
666
+ validator: (value?: string | null, meta: ValidationMeta) => void
667
+ ): UuidColumnTypeDef<M>;
668
+ };
669
+ type StringValidator<M> = M extends NotNull
670
+ ? {
671
+ validate(validator: (value: string, meta: ValidationMeta) => void): StringColumnTypeDef<M>;
672
+ }
673
+ : {
674
+ validate(
675
+ validator: (value?: string | null, meta: ValidationMeta) => void
676
+ ): StringColumnTypeDef<M>;
677
+ };
678
+ type NumericValidator<M> = M extends NotNull
679
+ ? {
680
+ validate(validator: (value: number, meta: ValidationMeta) => void): NumericColumnTypeDef<M>;
681
+ }
682
+ : {
683
+ validate(
684
+ validator: (value?: number | null, meta: ValidationMeta) => void
685
+ ): NumericColumnTypeDef<M>;
686
+ };
687
+ type BigIntValidator<M> = M extends NotNull
688
+ ? {
689
+ validate(validator: (value: bigint, meta: ValidationMeta) => void): BigIntColumnTypeDef<M>;
690
+ }
691
+ : {
692
+ validate(
693
+ validator: (value?: bigint | null, meta: ValidationMeta) => void
694
+ ): BigIntColumnTypeDef<M>;
695
+ };
696
+ type BinaryValidator<M> = M extends NotNull
697
+ ? {
698
+ validate(validator: (value: string, meta: ValidationMeta) => void): BinaryColumnTypeDef<M>;
699
+ }
700
+ : {
701
+ validate(
702
+ validator: (value?: string | null, meta: ValidationMeta) => void
703
+ ): BinaryColumnTypeDef<M>;
704
+ };
705
+ type BooleanValidator<M> = M extends NotNull
706
+ ? {
707
+ validate(validator: (value: boolean, meta: ValidationMeta) => void): BooleanColumnTypeDef<M>;
708
+ }
709
+ : {
710
+ validate(
711
+ validator: (value?: boolean | null, meta: ValidationMeta) => void
712
+ ): BooleanColumnTypeDef<M>;
713
+ };
714
+ type JSONValidator<M> = M extends NotNull
715
+ ? {
716
+ validate(
717
+ validator: (value: ToJsonType<M>, meta: ValidationMeta) => void
718
+ ): JSONColumnTypeDef<M>;
719
+ }
720
+ : {
721
+ validate(
722
+ validator: (value?: ToJsonType<M> | null, meta: ValidationMeta) => void
723
+ ): JSONColumnTypeDef<M>;
724
+ };
725
+ type DateValidator<M> = M extends NotNull
726
+ ? {
727
+ validate(
728
+ validator: (value: string | Date, meta: ValidationMeta) => void
729
+ ): DateColumnTypeDef<M>;
730
+ }
731
+ : {
732
+ validate(
733
+ validator: (value?: string | Date | null, meta: ValidationMeta) => void
734
+ ): DateColumnTypeDef<M>;
735
+ };
736
+
737
+ type DateWithTimeZoneValidator<M> = M extends NotNull
738
+ ? {
739
+ validate(
740
+ validator: (value: string | Date, meta: ValidationMeta) => void
741
+ ): DateWithTimeZoneColumnTypeDef<M>;
742
+ }
743
+ : {
744
+ validate(
745
+ validator: (value?: string | Date | null, meta: ValidationMeta) => void
746
+ ): DateWithTimeZoneColumnTypeDef<M>;
747
+ };
674
748
 
675
749
  type StringColumnTypeDef<M> = StringValidator<M> & {
676
750
  enum<const V extends readonly string[]>(values: V): StringColumnTypeDef<M & EnumOf<V[number]>> & EnumOf<V[number]>;
@@ -789,7 +863,7 @@ type DateColumnTypeDef<M> = DateValidator<M> & {
789
863
  } & ColumnTypeOf<DateColumnType<M>> &
790
864
  M;
791
865
 
792
- type DateWithTimeZoneColumnTypeDef<M> = DateWithTimeZoneValidator<M> & {
866
+ type DateWithTimeZoneColumnTypeDef<M> = DateValidator<M> & {
793
867
  enum<const V extends Record<string, string | Date>>(values: V): DateWithTimeZoneColumnTypeDef<M & EnumOf<V[keyof V]>> & EnumOf<V[keyof V]>;
794
868
  enum<TEnum>(values: Record<string, TEnum>): DateWithTimeZoneColumnTypeDef<M & EnumOf<TEnum>> & EnumOf<TEnum>;
795
869
  enum<E extends string | Date>(values: readonly E[]): DateWithTimeZoneColumnTypeDef<M & EnumOf<E>> & EnumOf<E>;