import { Schema } from 'effect'
const ValidatedCorporationNumberBrand = Symbol.for(
'ValidatedCorporationNumberBrand'
)
export const ValidatedCorporationNumber = Schema.String.pipe(
Schema.length(9),
Schema.brand(ValidatedCorporationNumberBrand)
)
export const SignUpFormSchema = Schema.Struct({
firstName: Schema.Trim.pipe(Schema.maxLength(50)),
lastName: Schema.Trim.pipe(Schema.maxLength(50)),
phoneNumber: Schema.Trim.pipe(Schema.length(10), Schema.brand('phoneNumber')),
validatedCorporationNumber: ValidatedCorporationNumber
})
test:
import { expect, test } from 'vitest'
import { ValidatedCorporationNumber } from './sign-up-form-schema'
test('adds 1 + 2 to equal 3', () => {
const foo = ValidatedCorporationNumber.make('129999999')
expect(ValidatedCorporationNumber.make('2')).toBe('true')
expect(ValidatedCorporationNumber.make('2')).toBe('true')
})
import { Schema } from 'effect'
const ValidatedCorporationNumberBrand = Symbol.for(
'ValidatedCorporationNumberBrand'
)
export const ValidatedCorporationNumber = Schema.String.pipe(
Schema.length(9),
Schema.brand(ValidatedCorporationNumberBrand)
)
export const SignUpFormSchema = Schema.Struct({
firstName: Schema.Trim.pipe(Schema.maxLength(50)),
lastName: Schema.Trim.pipe(Schema.maxLength(50)),
phoneNumber: Schema.Trim.pipe(Schema.length(10), Schema.brand('phoneNumber')),
validatedCorporationNumber: ValidatedCorporationNumber
})
test:
import { expect, test } from 'vitest'
import { ValidatedCorporationNumber } from './sign-up-form-schema'
test('adds 1 + 2 to equal 3', () => {
const foo = ValidatedCorporationNumber.make('129999999')
expect(ValidatedCorporationNumber.make('2')).toBe('true')
expect(ValidatedCorporationNumber.make('2')).toBe('true')
})