INNER CODE UNIT · TypeScript
Webserver
jonasstrehle/supercookie · server/main.ts:126
class Webserver {
public static routes: Array<string> = createRoutes(CACHE_IDENTIFIER, N).map((value: string) => `${CACHE_IDENTIFIER}:${value}`);
public static getVector(identifier: number): Array<string> {
const booleanVector: Array<boolean> = (identifier >>> 0).toString(2)
.padStart(this.routes.length, '0').split('')
.map((element: '0' | '1') => element === '1')
.reverse();
const vector = new Array<string>();
booleanVector.forEach((value: boolean, index: number) => value ? vector.push(this.getRouteByIndex(index)) : void 0);
return vector;
}
public static getIdentifier(vector: Set<string>, size: number = vector.size): number {
return parseInt(this.routes.map((route: string) => vector.has(route) ? 0 : 1)
.join('').slice(0, size).split('').reverse().join(''), 2);
}
public static hasRoute(route: string): boolean {
return this.routes.includes(route);