31 lines
764 B
TypeScript
31 lines
764 B
TypeScript
export class PathFinder {
|
|
static equals = (path1: readonly string[], path2: readonly string[]) => {
|
|
return PathFinder.pathToKey(path1) === PathFinder.pathToKey(path2);
|
|
};
|
|
|
|
static id = (path: readonly string[]) => {
|
|
return path[path.length - 1];
|
|
};
|
|
|
|
// check if path1 includes path2
|
|
static includes = (path1: string[], path2: string[]) => {
|
|
return PathFinder.pathToKey(path1).startsWith(PathFinder.pathToKey(path2));
|
|
};
|
|
|
|
static keyToPath = (key: string) => {
|
|
return key.split('|');
|
|
};
|
|
|
|
static parent = (path: readonly string[]) => {
|
|
return path.slice(0, path.length - 1);
|
|
};
|
|
|
|
static pathToKey = (path: readonly string[]) => {
|
|
return path.join('|');
|
|
};
|
|
|
|
private constructor() {
|
|
// this is a static class
|
|
}
|
|
}
|