25 lines
930 B
JavaScript
25 lines
930 B
JavaScript
import { object, boolean, date, number, string } from 'yup'
|
|
|
|
export const webFields = { title: null, category: null, archive: null, content: null }
|
|
export const idOnlySchema = number().integer().positive().min(1).max(1024).required()
|
|
|
|
const initialSchema = {
|
|
updated_at: string().nullable().default(null),
|
|
created_at: date().default(() => new Date()),
|
|
content: string().ensure().max(1024),
|
|
archive: boolean().nullable().default(false),
|
|
category: string().matches(/^(random_thought|idea|task|quote)$/).required(),
|
|
title: string().trim().min(1).max(127).required(),
|
|
id: string().nullable().default(null),
|
|
}
|
|
|
|
/**
|
|
* Combine exportable schemas using previously created chunks along with adding a new ones dynamically
|
|
*/
|
|
|
|
export const newNoteSchema = object(initialSchema)
|
|
|
|
initialSchema.id = idOnlySchema
|
|
initialSchema.updated_at = date().default(() => new Date())
|
|
export const updateNoteSchema = object(initialSchema)
|