library-ts/browser/dom/LinkResolver.ts

75 lines
1013 B
TypeScript
Raw Normal View History

2025-03-25 06:42:27 +00:00
export enum LinkType
{
RELATIVE,
ROOT,
ABSOLUTE
}
export class Link
{
type:LinkType;
path:string;
clone()
{
let c = new Link();
c.type = this.type;
c.path = this.path;
return c;
}
prettify()
{
let clone = this.clone();
if ( clone.path.endsWith( "index.php" ) )
{
clone.path = clone.path.replace( /index\.php$/, "" );
}
if ( clone.path.endsWith( ".php" ) )
{
clone.path = clone.path.replace( /\.php$/, "" );
}
if ( clone.path.endsWith( "/" ) )
{
clone.path = clone.path.replace( /\/$/, "" );
}
return clone;
}
static Root( path:string )
{
let c = new Link();
c.type = LinkType.ROOT;
c.path = path;
return c;
}
static Absolute( path:string )
{
let c = new Link();
c.type = LinkType.ABSOLUTE;
c.path = path;
return c;
}
static Relative( path:string )
{
let c = new Link();
c.type = LinkType.RELATIVE;
c.path = path;
return c;
}
}