signalk-server
Version:
An implementation of a [Signal K](http://signalk.org) server for boats.
57 lines • 1.99 kB
TypeScript
/**
* WASM Plugin Virtual Filesystem (VFS) Management
*
* Handles isolated storage for WASM plugins using WASI virtual filesystem.
* Each plugin gets its own VFS root for secure, sandboxed file access.
*/
export interface PluginStoragePaths {
pluginDataRoot: string;
configFile: string;
vfsRoot: string;
vfsData: string;
vfsConfig: string;
vfsTmp: string;
}
/**
* Get storage paths for a WASM plugin
*
* @param configPath - Server config directory path
* @param pluginId - Plugin ID (e.g., "hello-assemblyscript") - used for config file to match regular plugins
* @param packageName - NPM package name (e.g., "@signalk/hello-assemblyscript") - used for VFS directory
*/
export declare function getPluginStoragePaths(configPath: string, pluginId: string, packageName: string): PluginStoragePaths;
/**
* Initialize VFS structure for a WASM plugin
*/
export declare function initializePluginVfs(paths: PluginStoragePaths): void;
/**
* Read plugin configuration from server-managed config file
*/
export declare function readPluginConfig(configFile: string): any;
/**
* Write plugin configuration to server-managed config file
*/
export declare function writePluginConfig(configFile: string, config: any): void;
/**
* Migrate data from Node.js plugin format to WASM VFS format
*
* Copies files from legacy Node.js plugin data directory to VFS /data directory.
* Legacy files are preserved for rollback.
*/
export declare function migrateFromNodeJs(legacyDataDir: string, vfsDataDir: string, filesToMigrate: string[]): void;
/**
* Clean up VFS temporary files
*/
export declare function cleanupVfsTmp(vfsTmpDir: string): void;
/**
* Get disk usage for a plugin's VFS
*/
export declare function getVfsDiskUsage(vfsRoot: string): {
totalBytes: number;
fileCount: number;
};
/**
* Delete all VFS data for a plugin
*/
export declare function deletePluginVfs(paths: PluginStoragePaths): void;
//# sourceMappingURL=wasm-storage.d.ts.map