dmtrKovalenko / date-io

Abstraction over common javascript date management libraries
MIT License
726 stars 90 forks source link

Throw error for wrong locale type #617

Open alexfauquette opened 2 years ago

alexfauquette commented 2 years ago

Users of mui date pickers use the wrong type when defining their locale because most of the adapters require a string, but date-fns is expecting an object: https://github.com/mui/mui-x/issues/4598

I propose to add a verification in every constructor such that in development environment then library throw an explicit error message if the type passed is not correct:

constructor({
    locale,
    formats,
  }: { formats?: Partial<DateIOFormats>; locale?: Locale } = {}) {
    if(process.env.NODE_ENV !== 'production'){
    if(locale && typeof locale === 'string'){
      throw Error(`date-fns expect \`locale\` to be an object, get a ${typeof locale}`)
        }
    }
    this.locale = locale;
    this.formats = Object.assign({}, defaultFormats, formats);
  }

If it sounds good, I can write the PR