Previously, there were two ways to use this module, each with its issues:
Using helpers. I.e. signIn(), handleCallback(), getSessionId() and signOut(). The various helpers made it possible to misuse the module. E.g. using cookie options in one helper but forgetting to use them in another would lead to unexpected behaviour and might be difficult to troubleshoot.
Using createHelpers() to create the helpers with consistent behaviour, such as cookie settings. It aimed to be a pure function and used the helpers under the hood. The logic of the function is difficult to read immediately, and so is the documentation, specifically the type signature.
This PR introduces the KvOAuth class. It combines the helpers into a single class, letting the module ensure consistent behaviour across the board. It is also easier to understand from a holistic point of view and is easy to document.
This will be the only way to use this module going forward. The individual helpers and createHelpers() are deprecated in this version for removal in v0.12.0.
Previously, there were two ways to use this module, each with its issues:
signIn()
,handleCallback()
,getSessionId()
andsignOut()
. The various helpers made it possible to misuse the module. E.g. using cookie options in one helper but forgetting to use them in another would lead to unexpected behaviour and might be difficult to troubleshoot.createHelpers()
to create the helpers with consistent behaviour, such as cookie settings. It aimed to be a pure function and used the helpers under the hood. The logic of the function is difficult to read immediately, and so is the documentation, specifically the type signature.This PR introduces the
KvOAuth
class. It combines the helpers into a single class, letting the module ensure consistent behaviour across the board. It is also easier to understand from a holistic point of view and is easy to document.This will be the only way to use this module going forward. The individual helpers and
createHelpers()
are deprecated in this version for removal in v0.12.0.