@lonelyplanet/dotcom-core
Version:
29 lines (25 loc) • 947 B
text/typescript
import { AuthRequestBuilder } from "@lonelyplanet/open-planet-node";
import TYPES from "../types";
import {
IAuthOptionsDefaults,
IAuthRequestParams,
} from "../interfaces";
import container from "../config/container";
export const authSetupWithDefaults = (params: IAuthRequestParams = {}) => {
const defaults = container.get<IAuthOptionsDefaults>(TYPES.IAuthConfigDefaults);
const options = params.options || {};
const host = params.host || defaults.host;
return AuthRequestBuilder.build({
host: host,
options: {
...options,
clientId: options.clientId || defaults.options.clientId,
scope: options.scope || defaults.options.scope,
redirectUri: options.redirectUri || `${host.replace(/http:/, "https:")}/sso`,
targetLinkUri: options.targetLinkUri || (typeof window !== "undefined" && window.location.origin + window.location.pathname),
}
});
}
export default {
authSetupWithDefaults,
};