Skip to content

Commit

Permalink
Remove _describe method, use multiple resolves
Browse files Browse the repository at this point in the history
  • Loading branch information
DaddyWarbucks committed Aug 17, 2023
1 parent b36b20a commit fa41763
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 25 deletions.
14 changes: 5 additions & 9 deletions src/array.ts
Original file line number Diff line number Diff line change
Expand Up @@ -268,9 +268,10 @@ export default class ArraySchema<
);
}

protected _describe(options?: ResolveOptions<TContext>) {
let base = super.describe(options) as SchemaInnerTypeDescription;
if (this.innerType) {
describe(options?: ResolveOptions<TContext>) {
const next = (options ? this.resolve(options) : this).clone();
const base = super.describe(options) as SchemaInnerTypeDescription;
if (next.innerType) {
let innerOptions = options;
if (innerOptions?.value) {
innerOptions = {
Expand All @@ -279,15 +280,10 @@ export default class ArraySchema<
value: innerOptions.value[0],
};
}
base.innerType = this.innerType.describe(innerOptions);
base.innerType = next.innerType.describe(innerOptions);
}
return base;
}

describe(options?: ResolveOptions<TContext>) {
const next = options ? this.resolve(options) : this;
return next._describe(options)
}
}

create.prototype = ArraySchema.prototype;
Expand Down
12 changes: 4 additions & 8 deletions src/object.ts
Original file line number Diff line number Diff line change
Expand Up @@ -507,10 +507,11 @@ export default class ObjectSchema<
return this.transformKeys((key) => snakeCase(key).toUpperCase());
}

protected _describe(options?: ResolveOptions<TContext>) {
let base = super.describe(options) as SchemaObjectDescription;
describe(options?: ResolveOptions<TContext>) {
const next = (options ? this.resolve(options) : this).clone();
const base = super.describe(options) as SchemaObjectDescription;
base.fields = {};
for (const [key, value] of Object.entries(this.fields)) {
for (const [key, value] of Object.entries(next.fields)) {
let innerOptions = options;
if (innerOptions?.value) {
innerOptions = {
Expand All @@ -523,11 +524,6 @@ export default class ObjectSchema<
}
return base;
}

describe(options?: ResolveOptions<TContext>) {
const next = options ? this.resolve(options) : this;
return next._describe(options)
}
}

create.prototype = ObjectSchema.prototype;
12 changes: 4 additions & 8 deletions src/tuple.ts
Original file line number Diff line number Diff line change
Expand Up @@ -159,9 +159,10 @@ export default class TupleSchema<
});
}

protected _describe(options?: ResolveOptions<TContext>) {
let base = super.describe(options) as SchemaInnerTypeDescription;
base.innerType = this.spec.types.map((schema, index) => {
describe(options?: ResolveOptions<TContext>) {
const next = (options ? this.resolve(options) : this).clone();
const base = super.describe(options) as SchemaInnerTypeDescription;
base.innerType = next.spec.types.map((schema, index) => {
let innerOptions = options;
if (innerOptions?.value) {
innerOptions = {
Expand All @@ -174,11 +175,6 @@ export default class TupleSchema<
});
return base;
}

describe(options?: ResolveOptions<TContext>) {
const next = options ? this.resolve(options) : this;
return next._describe(options)
}
}

create.prototype = TupleSchema.prototype;

0 comments on commit fa41763

Please sign in to comment.