Files
vitanovaPackages/packages/auth/src/marketplace-context.ts
sdarbinyan f6a58a9a3e
Some checks failed
Release / release-branches (auth) (push) Has been cancelled
Release / release-branches (payment) (push) Has been cancelled
Release / version-pr (push) Has been cancelled
fix(auth): preserve legacy provider setup
2026-08-21 08:15:35 +04:00

29 lines
1.0 KiB
TypeScript

import { HttpHeaders } from '@angular/common/http';
import { Injectable, inject } from '@angular/core';
import { MARKETPLACES_AUTH_CONFIG } from './config';
export const MARKETPLACE_DOMAIN_HEADER = 'X-Marketplace-Domain';
export function normalizeMarketplaceDomain(domain: string): string {
return domain.trim().toLowerCase().replace(/\.$/, '');
}
@Injectable({ providedIn: 'root' })
export class AuthMarketplaceContext {
private readonly config = inject(MARKETPLACES_AUTH_CONFIG, { optional: true });
domain(): string {
const configured = this.config?.marketplaceDomain;
const domain = typeof configured === 'function'
? configured()
: configured ?? (typeof location === 'undefined' ? '' : location.hostname);
return normalizeMarketplaceDomain(domain);
}
headers(extra?: Record<string, string>): HttpHeaders {
const domain = this.domain();
if (!domain) throw new Error('Marketplace domain cannot be resolved');
return new HttpHeaders({ [MARKETPLACE_DOMAIN_HEADER]: domain, ...extra });
}
}