26 lines
766 B
TypeScript
26 lines
766 B
TypeScript
import type { TObject } from '@sinclair/typebox'
|
|
|
|
import type { ObjectAny } from '../../tools/types'
|
|
|
|
export const handleCheckboxBoolean = (
|
|
object: ObjectAny,
|
|
validateSchemaObject: TObject<ObjectAny>
|
|
): ObjectAny => {
|
|
const booleanProperties: string[] = []
|
|
for (const property in validateSchemaObject.properties) {
|
|
const rule = validateSchemaObject.properties[property]
|
|
if (rule.type === 'boolean') {
|
|
booleanProperties.push(property)
|
|
}
|
|
}
|
|
for (const booleanProperty of booleanProperties) {
|
|
if (object[booleanProperty] == null) {
|
|
object[booleanProperty] =
|
|
validateSchemaObject.properties[booleanProperty].default
|
|
} else {
|
|
object[booleanProperty] = object[booleanProperty] === 'on'
|
|
}
|
|
}
|
|
return object
|
|
}
|