Compare commits

...

4 Commits

Author SHA1 Message Date
24b4bf1a74
0.3.2 2025-04-02 13:37:31 +02:00
bd9e0bcffe
fix: object returning original elements instead of new object 2025-04-02 13:37:24 +02:00
5851f7779a
0.3.1 2025-04-02 13:05:50 +02:00
512d5817f2
fix: missing return 2025-04-02 13:05:46 +02:00
4 changed files with 9 additions and 5 deletions

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "@dzeio/schema",
"version": "0.3.0",
"version": "0.3.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@dzeio/schema",
"version": "0.3.0",
"version": "0.3.2",
"dependencies": {
"@dzeio/object-util": "^1.8.3",
"@standard-schema/spec": "^1.0.0",

View File

@ -1,6 +1,6 @@
{
"name": "@dzeio/schema",
"version": "0.3.0",
"version": "0.3.2",
"dependencies": {
"@dzeio/object-util": "^1.8.3"
},

View File

@ -19,8 +19,11 @@ export default class SchemaArray<Type extends SchemaItem> extends SchemaItem<Arr
* split a string into an array
* @param [separator] default:`,` the separator to use
*/
@parceable()
public split(separator = ',') {
this.addPreProcess((it) => typeof it === 'string' ? it.split(separator) : it)
return this
}
public parse(input: unknown, options?: { fast?: boolean }): ValidationResult<Array<SchemaInfer<Type>>> {

View File

@ -27,6 +27,7 @@ export default class SchemaObject<T extends Record<string, SchemaItem> = any> ex
}
const clone = objectClone(object)
const res: ModelInfer<T> = {} as ModelInfer<T>
// loop through the childs
objectLoop(this.model, (childSchema, key) => {
@ -45,7 +46,7 @@ export default class SchemaObject<T extends Record<string, SchemaItem> = any> ex
// @ts-expect-error while it's a generic we know by proof above that it's valid !
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
clone[key] = child.object
res[key] = child.object
// skip rest of items if current one is invalid
return child.valid || !options?.fast
@ -55,7 +56,7 @@ export default class SchemaObject<T extends Record<string, SchemaItem> = any> ex
return {
valid: errors.length === 0,
errors: errors,
object: clone
object: res
} as ValidationResult<ModelInfer<T>>
}