common-ui/src/lib/utils/tokens.ts
2022-07-25 17:46:17 +03:00

34 lines
875 B
TypeScript

import { inject, InjectionToken } from '@angular/core';
import { PlatformLocation } from '@angular/common';
export const BASE_HREF = new InjectionToken<string>('BASE_HREF', {
factory: () => {
const baseUrl = inject(PlatformLocation).getBaseHrefFromDOM();
if (!baseUrl) {
return '';
}
if (baseUrl[baseUrl.length - 1] === '/') {
return baseUrl.substring(0, baseUrl.length - 1);
}
return baseUrl;
},
});
export type BaseHrefFn = (path: string) => string;
export const BASE_HREF_FN = new InjectionToken<BaseHrefFn>('Convert path function', {
factory: () => {
const baseUrl = inject(BASE_HREF);
return (path: string) => {
if (path[0] === '/') {
return baseUrl + path;
}
return baseUrl + '/' + path;
};
},
});