justus 0.0.1 → 0.0.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.
@@ -1,4 +1,4 @@
1
- import { Validator } from '../types'
1
+ import { Branding, Validator } from '../types'
2
2
  import { assertValidation, assertSchema } from '../errors'
3
3
  import { makeTupleRestIterable } from './tuple'
4
4
 
@@ -12,11 +12,26 @@ export interface StringConstraints {
12
12
  pattern?: RegExp,
13
13
  }
14
14
 
15
- /** A `Validator` validating `string`s. */
15
+ /** Constraints to validate a `string` with extra branding information. */
16
+ export interface BrandedStringConstraints<B extends string> extends StringConstraints {
17
+ /** The _brand_ of the string (will generate a `__brand_${B}` type property */
18
+ brand: B
19
+ }
20
+
21
+ /** A `Validator` validating any `string`. */
22
+ export class AnyStringValidator extends Validator<string> {
23
+ validate(value: unknown): string {
24
+ assertValidation(typeof value == 'string', 'Value is not a "string"')
25
+ return value
26
+ }
27
+ }
28
+
29
+ /** A `Validator` validating `string`s with constraints. */
16
30
  export class StringValidator<S extends string = string> extends Validator<S> {
17
31
  readonly maxLength: number
18
32
  readonly minLength: number
19
33
  readonly pattern?: RegExp
34
+ readonly brand?: string
20
35
 
21
36
  constructor(constraints: StringConstraints = {}) {
22
37
  super()
@@ -27,6 +42,8 @@ export class StringValidator<S extends string = string> extends Validator<S> {
27
42
  pattern,
28
43
  } = constraints
29
44
 
45
+ if ('brand' in constraints) this.brand = (<any> constraints).brand
46
+
30
47
  assertSchema(minLength >= 0, `Constraint "minLength" (${minLength}) must be non-negative`)
31
48
  assertSchema(maxLength >= 0, `Constraint "maxLength" (${maxLength}) must be non-negative`)
32
49
  assertSchema(minLength <= maxLength, `Constraint "minLength" (${minLength}) is greater than "maxLength" (${maxLength})`)
@@ -52,15 +69,12 @@ export class StringValidator<S extends string = string> extends Validator<S> {
52
69
  }
53
70
  }
54
71
 
55
- const anyStringValidator = new class extends Validator<string> {
56
- validate(value: unknown): string {
57
- assertValidation(typeof value == 'string', 'Value is not a "string"')
58
- return value
59
- }
60
- }
72
+ const anyStringValidator = new AnyStringValidator()
61
73
 
62
74
  function _string(): Validator<string>
63
- function _string<S extends string = string>(constraints?: StringConstraints): StringValidator<S>
75
+ function _string(constraints?: StringConstraints): StringValidator<string>
76
+ function _string<S extends string>(constraints?: StringConstraints): StringValidator<S>
77
+ function _string<B extends string>(constraints: BrandedStringConstraints<B>): StringValidator<string & Branding<B>>
64
78
 
65
79
  function _string(constraints?: StringConstraints): Validator<string> {
66
80
  return constraints ? new StringValidator(constraints) : anyStringValidator
@@ -4,32 +4,36 @@ import { assertValidation, ValidationError } from '../errors'
4
4
  import { getValidator } from '../utilities'
5
5
  import { nullValidator } from './constant'
6
6
 
7
+ interface TupleMember { single: boolean, validator: Validator }
8
+
7
9
  /** A `Validator` for _tuples_. */
8
10
  export class TupleValidator<T extends Tuple> extends Validator<InferTuple<T>> {
11
+ readonly members: readonly TupleMember[]
9
12
  readonly tuple: T
10
13
 
11
- #validators: ({ single: boolean, validator: Validator })[] = []
12
-
13
14
  constructor(tuple: T) {
14
15
  super()
15
16
 
16
- this.tuple = tuple
17
+ const members: TupleMember[] = []
17
18
  for (const item of tuple) {
18
19
  if (item === null) { // god knows why typeof null === "object"
19
- this.#validators.push({ single: true, validator: nullValidator })
20
+ members.push({ single: true, validator: nullValidator })
20
21
  } else if ((typeof item === 'object') && (restValidator in item)) {
21
- this.#validators.push({ single: false, validator: (<any>item)[restValidator] })
22
+ members.push({ single: false, validator: (<any>item)[restValidator] })
22
23
  } else {
23
- this.#validators.push({ single: true, validator: getValidator(item) })
24
+ members.push({ single: true, validator: getValidator(item) })
24
25
  }
25
26
  }
27
+
28
+ this.members = members
29
+ this.tuple = tuple
26
30
  }
27
31
 
28
32
  validate(value: unknown, options: ValidationOptions): InferTuple<T> {
29
33
  assertValidation(Array.isArray(value), 'Value is not an "array"')
30
34
 
31
35
  // Empty tuples
32
- if (this.#validators.length === 0) {
36
+ if (this.members.length === 0) {
33
37
  const size = value.length
34
38
  assertValidation(size === 0, `Found ${size} element${size === 1 ? '' : 's'} validating empty tuple`)
35
39
  return value as InferTuple<T>
@@ -39,24 +43,24 @@ export class TupleValidator<T extends Tuple> extends Validator<InferTuple<T>> {
39
43
  const clone = new Array(value.length)
40
44
  let needle = 0
41
45
  let haystack = 0
42
- let { single, validator } = this.#validators[needle]
46
+ let { single, validator } = this.members[needle]
43
47
 
44
- while ((needle < this.#validators.length) && (haystack < value.length)) {
48
+ while ((needle < this.members.length) && (haystack < value.length)) {
45
49
  try {
46
50
  clone[haystack] = validator.validate(value[haystack], options)
47
- if (single) ({ single, validator } = this.#validators[++ needle] || {})
51
+ if (single) ({ single, validator } = this.members[++ needle] || {})
48
52
  haystack ++
49
53
  } catch (error) {
50
54
  if (single) throw new ValidationError(error, [ haystack ])
51
- else ({ single, validator } = this.#validators[++ needle] || {})
55
+ else ({ single, validator } = this.members[++ needle] || {})
52
56
  }
53
57
  }
54
58
 
55
- while ((needle < this.#validators.length) && (this.#validators[needle].single === false)) {
59
+ while ((needle < this.members.length) && (this.members[needle].single === false)) {
56
60
  needle ++
57
61
  }
58
62
 
59
- const missing = this.#validators.length - needle
63
+ const missing = this.members.length - needle
60
64
  if ((missing === 1) && single) {
61
65
  throw new ValidationError('Tuple defines 1 missing validation')
62
66
  } else if (missing > 1) {
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/index.ts", "../src/errors.ts", "../src/types.ts", "../src/validators/any.ts", "../src/validators/constant.ts", "../src/validators/tuple.ts", "../src/validators/object.ts", "../src/utilities.ts", "../src/schema.ts", "../src/validators/union.ts", "../src/validators/array.ts", "../src/validators/boolean.ts", "../src/validators/date.ts", "../src/validators/number.ts", "../src/validators/string.ts"],
4
- "mappings": "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",
5
- "names": []
6
- }