34 lines
903 B
TypeScript
34 lines
903 B
TypeScript
/** Angular Imports */
|
|
import { Pipe, PipeTransform } from '@angular/core';
|
|
|
|
/**
|
|
* URL to String pipe.
|
|
* Transform eg: `self-service/users` :: `Self Service | Users`
|
|
*/
|
|
@Pipe({
|
|
name: 'urlToString'
|
|
})
|
|
export class UrlToStringPipe implements PipeTransform {
|
|
transform(url: string): any {
|
|
url = decodeURIComponent(url);
|
|
const urlSubstrings: string[] = url.slice(1).split('/');
|
|
if (url.includes('?')) {
|
|
// Query params URL.
|
|
const query = urlSubstrings.pop();
|
|
const prefix = query.slice(0, query.indexOf('?'));
|
|
urlSubstrings.push(prefix);
|
|
}
|
|
const stringRepresentation = urlSubstrings
|
|
.map((path: string) => {
|
|
return path
|
|
.split('-')
|
|
.map((str: string) => {
|
|
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
})
|
|
.join(' ');
|
|
})
|
|
.join(' | ');
|
|
return stringRepresentation;
|
|
}
|
|
}
|