Skip to content

Maximum call stack size exceeded​​ error from Joi.defaults with Joi.empty flags #1622

@rokoroku

Description

@rokoroku

Context

What are you trying to achieve or the steps to reproduce ?

const Joi = require('joi');
const DefaultJoi = Joi.defaults((schema) => schema.empty(''));

DefaultJoi.object({
    required: Joi.boolean()
}).concat(DefaultJoi.object({
    message: DefaultJoi.string()
}))

Which result you had ?

​​Maximum call stack size exceeded​​
  at ​​​Object.exports.assert​​​ ​./node_modules/hoek/lib/index.js:719​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:95​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​
  at ​​​Object.exports.merge​​​ ​./node_modules/hoek/lib/index.js:136​

What did you expect ?

Correctly concatenated schema

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugBug or defect

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions