You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This will probably help you to get a solution faster.
For bugs, it would be great to have a PR with a failing test-case.
For usability, the types for logger are not good. logger.level is specifically typed as number, and only number, not number | string. But then logger.level is initialized as a string. This is confusing.
Worse, logger.ERROR, logger.WARN, logger.INFO, and logger.DEBUG are typed, but they do not map to any value. They look like constants to be used in your own code, but they are undefined.
This means there are two ways to set Handlebars' log level, both unappealing:
Ignore the clear typing of logger.level and set it to a string anyway, which will throw TypeScript errors but work. Override this by miscasting, i.e., as unknown as number.
Dig into Handlebars' code directly and manually map level names to the indexes of the level names in logger.methodMap. These are the values we might expect logger.ERROR, logger.WARN, etc. to represent, but they don't.
To my mind, logger.level should definitely be typed as number | string at the very least, or better yet, number | 'error' | 'warn' | 'info' | 'debug'. And the constants should be hardcoded or at least set when Handlebars starts.
The text was updated successfully, but these errors were encountered:
Before filing issues, please check the following points first:
This will probably help you to get a solution faster.
For bugs, it would be great to have a PR with a failing test-case.
For usability, the types for
logger
are not good.logger.level
is specifically typed asnumber
, and onlynumber
, notnumber | string
. But thenlogger.level
is initialized as a string. This is confusing.Worse,
logger.ERROR
,logger.WARN
,logger.INFO
, andlogger.DEBUG
are typed, but they do not map to any value. They look like constants to be used in your own code, but they are undefined.This means there are two ways to set Handlebars' log level, both unappealing:
logger.level
and set it to a string anyway, which will throw TypeScript errors but work. Override this by miscasting, i.e.,as unknown as number
.logger.methodMap
. These are the values we might expectlogger.ERROR
,logger.WARN
, etc. to represent, but they don't.To my mind,
logger.level
should definitely be typed asnumber | string
at the very least, or better yet,number | 'error' | 'warn' | 'info' | 'debug'
. And the constants should be hardcoded or at least set when Handlebars starts.The text was updated successfully, but these errors were encountered: