75 lines
1013 B
TypeScript
75 lines
1013 B
TypeScript
![]() |
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;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
}
|