@regle/core 0.1.4 → 0.1.5

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/dist/index.d.ts CHANGED
@@ -11,7 +11,6 @@ type ExcludeByType<T, U> = {
11
11
  [K in keyof T as T[K] extends U ? never : K]: T[K] extends U ? never : T[K];
12
12
  };
13
13
  type NonPresentKeys<TSource extends Record<string, any>, Target extends Record<string, any>> = Omit<Target, keyof TSource>;
14
- type NoInferLegacy<A extends any> = [A][A extends any ? 0 : never];
15
14
 
16
15
  type ArrayElement<T> = T extends Array<infer U> ? U : never;
17
16
 
@@ -208,11 +207,11 @@ type RegleCollectionRuleDefinition<TValue = any[], TCustomRules extends Partial<
208
207
  * @argument
209
208
  * createRule arguments options
210
209
  */
211
- interface RegleRuleInit<TValue extends any, TParams extends [...any[]], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>, TMetadata extends RegleRuleMetadataDefinition, TAsync extends boolean = TReturn extends Promise<any> ? true : false> {
210
+ interface RegleRuleInit<TValue extends any, TParams extends [...any[]] = [], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition> = boolean, TMetadata extends RegleRuleMetadataDefinition = RegleRuleMetadataDefinition, TAsync extends boolean = TReturn extends Promise<any> ? true : false> {
212
211
  type?: string;
213
212
  validator: (value: Maybe<TValue>, ...args: TParams) => TReturn;
214
- message: string | string[] | ((value: Maybe<TValue>, metadata: RegleRuleMetadataConsumer<NoInferLegacy<TParams>, TMetadata>) => string | string[]);
215
- active?: boolean | ((value: Maybe<TValue>, metadata: RegleRuleMetadataConsumer<NoInferLegacy<TParams>, TMetadata>) => boolean);
213
+ message: string | string[] | ((value: Maybe<TValue>, metadata: RegleRuleMetadataConsumer<TParams, TMetadata>) => string | string[]);
214
+ active?: boolean | ((value: Maybe<TValue>, metadata: RegleRuleMetadataConsumer<TParams, TMetadata>) => boolean);
216
215
  }
217
216
  /**
218
217
  * @argument
@@ -228,29 +227,55 @@ interface RegleRuleCore<TValue extends any, TParams extends any[] = [], TAsync e
228
227
  type DefaultValidators = {
229
228
  alpha: RegleRuleDefinition<string>;
230
229
  alphaNum: RegleRuleDefinition<string | number>;
231
- between: RegleRuleWithParamsDefinition<number, [min: number, max: number]>;
230
+ between: RegleRuleWithParamsDefinition<number, [min: Maybe<number>, max: Maybe<number>]>;
232
231
  checked: RegleRuleDefinition<boolean, [], false, boolean, boolean>;
233
- dateAfter: RegleRuleWithParamsDefinition<Date, [after: Date]>;
234
- dateBefore: RegleRuleWithParamsDefinition<Date, [before: Date]>;
235
- dateBetween: RegleRuleWithParamsDefinition<Date, [before: Date, after: Date]>;
236
- decimal: RegleRuleDefinition<number | string>;
237
- email: RegleRuleDefinition<string>;
232
+ contains: RegleRuleWithParamsDefinition<string, [part: Maybe<string>], false, boolean>;
233
+ dateAfter: RegleRuleWithParamsDefinition<string | Date, [
234
+ after: Maybe<string | Date>
235
+ ], false, true | {
236
+ $valid: false;
237
+ error: 'date-not-after';
238
+ } | {
239
+ $valid: false;
240
+ error: 'value-or-paramater-not-a-date';
241
+ }>;
242
+ dateBefore: RegleRuleWithParamsDefinition<string | Date, [
243
+ before: Maybe<string | Date>
244
+ ], false, true | {
245
+ $valid: false;
246
+ error: 'date-not-before';
247
+ } | {
248
+ $valid: false;
249
+ error: 'value-or-paramater-not-a-date';
250
+ }>;
251
+ dateBetween: RegleRuleWithParamsDefinition<string | Date, [
252
+ before: Maybe<string | Date>,
253
+ after: Maybe<string | Date>
254
+ ], false, boolean>;
255
+ decimal: RegleRuleDefinition<string | number, [], false, boolean, string | number>;
256
+ email: RegleRuleDefinition<string, [], false, boolean, string>;
257
+ endsWith: RegleRuleWithParamsDefinition<string, [part: Maybe<string>], false, boolean>;
238
258
  exactLength: RegleRuleWithParamsDefinition<string | any[] | Record<PropertyKey, any>, [
239
259
  count: number
240
260
  ], false, boolean>;
241
- integer: RegleRuleDefinition<number | string>;
242
- ipAddress: RegleRuleDefinition<string, [], false>;
243
- macAddress: RegleRuleWithParamsDefinition<string, [separator?: string | undefined], false>;
244
- maxLength: RegleRuleWithParamsDefinition<string, [count: number]>;
245
- maxValue: RegleRuleWithParamsDefinition<number, [count: number]>;
246
- minLength: RegleRuleWithParamsDefinition<string | Record<PropertyKey, any> | any[], [
261
+ integer: RegleRuleDefinition<string | number, [], false, boolean, string | number>;
262
+ ipAddress: RegleRuleDefinition<string, [], false, boolean, string>;
263
+ macAddress: RegleRuleWithParamsDefinition<string, [
264
+ separator?: string | undefined
265
+ ], false, boolean>;
266
+ maxLength: RegleRuleWithParamsDefinition<string | any[] | Record<PropertyKey, any>, [
267
+ count: number
268
+ ], false, boolean>;
269
+ maxValue: RegleRuleWithParamsDefinition<number, [count: number], false, boolean>;
270
+ minLength: RegleRuleWithParamsDefinition<string | any[] | Record<PropertyKey, any>, [
247
271
  count: number
248
- ]>;
249
- minValue: RegleRuleWithParamsDefinition<number, [count: number]>;
250
- numeric: RegleRuleDefinition<number | string>;
272
+ ], false, boolean>;
273
+ minValue: RegleRuleWithParamsDefinition<number, [count: number], false, boolean>;
274
+ numeric: RegleRuleDefinition<string | number, [], false, boolean, string | number>;
251
275
  required: RegleRuleDefinition<unknown, []>;
252
- sameAs: RegleRuleWithParamsDefinition<unknown, [target: unknown]>;
253
- url: RegleRuleDefinition<string>;
276
+ sameAs: RegleRuleWithParamsDefinition<unknown, [target: unknown], false, boolean>;
277
+ startsWith: RegleRuleWithParamsDefinition<string, [part: Maybe<string>], false, boolean>;
278
+ url: RegleRuleDefinition<string, [], false, boolean, string>;
254
279
  };
255
280
 
256
281
  type CustomRulesDeclarationTree = {