API: @loopstack/local-file-explorer-module
Classes
FileApiService
Service that exposes workspace-scoped file tree and file content reads, parsing workflow YAML into
workflowConfig where present; inject it for higher-level local file access.
import { FileApiService } from '@loopstack/local-file-explorer-module';Provided by: LocalFileExplorerModule
export class FileApiService {
constructor(fileSystemService: FileSystemService);
getFileTree(_workspaceClassName: string): Promise<FileExplorerNodeDto[]>;
getFileContent(_workspaceClassName: string, filePath: string): Promise<FileContentDto>;
}FileContentDto
Result for a local file read — the file path, its content, and an optional parsed workflowConfig
for workflow YAML files.
import { FileContentDto } from '@loopstack/local-file-explorer-module';export class FileContentDto {
path: string;
content: string;
workflowConfig?: Record<string, unknown>;
}FileExplorerNodeDto
Result representing a node in the local file tree — a file or folder with id, name, path, type, and optional children.
import { FileExplorerNodeDto } from '@loopstack/local-file-explorer-module';export class FileExplorerNodeDto {
id: string;
name: string;
path: string;
type: 'file' | 'folder';
children?: FileExplorerNodeDto[];
}FileSystemService
Service that performs path-safe local filesystem access — resolves the workspace root, builds the file tree, reads file contents, and guards against directory traversal; inject it for programmatic file access.
import { FileSystemService } from '@loopstack/local-file-explorer-module';Provided by: LocalFileExplorerModule
export class FileSystemService {
constructor(configService: ConfigService);
getWorkspaceRootPath(): string;
validatePath(basePath: string, targetPath: string): boolean;
buildFileTree(rootPath: string, relativePath?: string): Promise<FileExplorerNodeDto[]>;
readFileContent(filePath: string, maxSize?: number): Promise<string | null>;
exists(filePath: string): Promise<boolean>;
}LocalFileExplorerModule
NestJS module that provides workspace-scoped REST endpoints for browsing and
reading the local filesystem (LocalFileExplorerController), plus the
FileApiService and FileSystemService for programmatic file access.
Registration:
LocalFileExplorerModule— bare import. Enough for most apps: the controller and services are wired up automatically and the endpoints go live.LocalFileExplorerModule.forFeature(config?: { enabled?: boolean; environments?: string[] })— use to register it as a Studio feature flag (lights up the file-explorer panel) and optionally scope it to specific environment names.
Requires: nothing beyond importing the module.
import { LocalFileExplorerModule } from '@loopstack/local-file-explorer-module';export class LocalFileExplorerModule {
static forFeature(config?: {
enabled?: boolean;
environments?: string[];
}): DynamicModule;
}