orange-orm 5.2.3-beta2 → 5.2.4

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,8 @@
1
1
  ## Changelog
2
+ __5.2.4__
3
+ Meta parameter in validator is optional
4
+ __5.2.3__
5
+ Pass table and column and other metadata to custom validate function [#165](https://github.com/alfateam/orange-orm/issues/165)
2
6
  __5.2.2__
3
7
  Bugfix: jsonOf<T>() exists in type definitions but is missing at runtime [#166](https://github.com/alfateam/orange-orm/issues/166)
4
8
  __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.4",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
package/src/index.d.ts CHANGED
@@ -100,7 +100,7 @@ declare namespace r {
100
100
  date(): DateColumnDef;
101
101
  }
102
102
  export interface DateColumnDef {
103
- validate(validator: (value?: Date | string, meta: ValidationMeta) => void): DateColumnDef;
103
+ validate(validator: (value?: Date | string, meta?: ValidationMeta) => void): DateColumnDef;
104
104
  notNull(): DateColumnNotNullDef;
105
105
  JSONSchema(schema: object, options?: Options): DateColumnDef;
106
106
  serializable(value: boolean): DateColumnDef;
@@ -110,7 +110,7 @@ declare namespace r {
110
110
  }
111
111
 
112
112
  export interface DateColumnNotNullDef {
113
- validate(validator: (value: Date | string, meta: ValidationMeta) => void): DateColumnNotNullDef;
113
+ validate(validator: (value: Date | string, meta?: ValidationMeta) => void): DateColumnNotNullDef;
114
114
  JSONSchema(schema: object, options?: Options): DateColumnNotNullDef;
115
115
  serializable(value: boolean): DateColumnNotNullDef;
116
116
  as(dbName: string): DateColumnNotNullDef;
@@ -119,7 +119,7 @@ declare namespace r {
119
119
  }
120
120
 
121
121
  export interface BinaryColumnDef {
122
- validate(validator: (value?: Buffer | string, meta: ValidationMeta) => void): BinaryColumnDef;
122
+ validate(validator: (value?: Buffer | string, meta?: ValidationMeta) => void): BinaryColumnDef;
123
123
  notNull(): BinaryColumnNotNullDef;
124
124
  JSONSchema(schema: object, options?: Options): BinaryColumnDef;
125
125
  serializable(value: boolean): BinaryColumnDef;
@@ -129,7 +129,7 @@ declare namespace r {
129
129
  }
130
130
 
131
131
  export interface BinaryColumnNotNullDef {
132
- validate(validator: (value: Buffer | string, meta: ValidationMeta) => void): BinaryColumnNotNullDef;
132
+ validate(validator: (value: Buffer | string, meta?: ValidationMeta) => void): BinaryColumnNotNullDef;
133
133
  JSONSchema(schema: object, options?: Options): BinaryColumnNotNullDef;
134
134
  serializable(value: boolean): BinaryColumnNotNullDef;
135
135
  as(dbName: string): BinaryColumnNotNullDef;
@@ -138,7 +138,7 @@ declare namespace r {
138
138
  }
139
139
 
140
140
  export interface ColumnOf<T> {
141
- validate(validator: (value?: T, meta: ValidationMeta) => void): ColumnOf<T>;
141
+ validate(validator: (value?: T, meta?: ValidationMeta) => void): ColumnOf<T>;
142
142
  notNull(): ColumnNotNullOf<T>;
143
143
  JSONSchema(schema: object, options?: Options): ColumnOf<T>;
144
144
  serializable(value: boolean): ColumnOf<T>;
@@ -148,7 +148,7 @@ declare namespace r {
148
148
  }
149
149
 
150
150
  export interface ColumnNotNullOf<T> {
151
- validate(validator: (value: T, meta: ValidationMeta) => void): ColumnNotNullOf<T>;
151
+ validate(validator: (value: T, meta?: ValidationMeta) => void): ColumnNotNullOf<T>;
152
152
  notNull(): ColumnNotNullOf<T>;
153
153
  JSONSchema(schema: object, options?: Options): ColumnNotNullOf<T>;
154
154
  serializable(value: boolean): ColumnNotNullOf<T>;
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>;