Files
AFFiNE/blocksuite/framework/block-std/src/utils/path-finder.ts
2024-12-20 15:38:06 +08:00

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
}
}