Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | 1x 56x 46x 48x 1x 47x 44x 44x 44x 2x 2x 1x 1x 1x 27x | export class FirestorePath {
private readonly components: string[];
public constructor(
...components: string[]
) {
this.components = components;
}
public append(...components: string[]): void {
for (const component of components) {
if (component.includes('/'))
throw new Error(`Invalid component: ${component}`);
this.components.push(component);
}
}
public appending(...components: string[]): FirestorePath {
const path = new FirestorePath(...this.components);
path.append(...components);
return path;
}
public get isEmpty(): boolean {
return this.components.length === 0;
}
public get parentPath(): FirestorePath {
if (this.components.length === 0)
throw new Error('Root path has no parent');
return new FirestorePath(...this.components.slice(0, -1));
}
public get lastComponent(): string {
return this.components[this.components.length - 1];
}
public get fullPath(): string {
return this.components.join('/');
}
}
|