31 lines
955 B
TypeScript
31 lines
955 B
TypeScript
|
import { Smartfile } from './smartfile.classes.smartfile';
|
||
|
import * as plugins from './smartfile.plugins';
|
||
|
import * as fs from './smartfile.fs';
|
||
|
|
||
|
/**
|
||
|
* a virtual directory exposes a fs api
|
||
|
*/
|
||
|
export class VirtualDirectory {
|
||
|
private fileArray: Smartfile[] = [];
|
||
|
public static async fromFsDirPath(pathArg: string) {
|
||
|
const newVirtualDir = new VirtualDirectory();
|
||
|
newVirtualDir.addSmartfiles(await fs.fileTreeToObject(pathArg, '**/*'));
|
||
|
};
|
||
|
|
||
|
constructor() {}
|
||
|
|
||
|
public addSmartfiles(smartfileArrayArg: Smartfile[]) {
|
||
|
this.fileArray = this.fileArray.concat(smartfileArrayArg);
|
||
|
}
|
||
|
|
||
|
public async getFileByPath(pathArg: string) {
|
||
|
for (const smartfile of this.fileArray) {
|
||
|
if (smartfile.path === pathArg) {
|
||
|
return smartfile;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// TODO implement root shifting to get subdirectories as new virtual directories
|
||
|
// TODO implement root shifting to combine VirtualDirecotries in a parent virtual directory
|
||
|
}
|