-
Notifications
You must be signed in to change notification settings - Fork 0
dBrowser VirtualFS
Jared Rice Sr edited this page Jun 30, 2018
·
1 revision
This module wraps a number of different dWeb APIs in generic "file" objects. The generic objects can be used to simplify rendering.
The generic interface is used on all objects. It is defined as follows:
class VFSNode {
get url () { return false }
get type () { return 'node' }
get name () { return '' }
get size () { return 0 }
get mtime () { return 0 }
get isEditable () { return false }
get isContainer () { return false } // is folder-like?
get isEmpty () { return true }
get hasChildren () { return !this.isEmpty }
get children () { return [] }
// load any data needed to display the node in the sidebar or in the expanded state
async readData () {}
// used internally during diffs to copy state from the given node
copyDataFrom (node) {}
// sort the items according to the given params
sort(column, dir) {}
// mutators
async rename (newName) {}
async copy (newPath, targetVaultKey) {}
async move (newPath, targetVaultKey) {}
async delete () {}
}
The following classes are exported by this module:
const {
VFSNode, // root interface for all objects, should be subclassed
VFSystemContainer, // root interface for all folder-like objects, should be subclassed
VFSystemRoot, // the root of the VFS
VFSystemFolder, // a base class for virtually-defined folders
VFSystemFolder_User, // contains a single user's folders
VFSystemFolder_Network, // contains network folders
VFSystemFolder_Trash, // contains the local user's deleted vaults
VFSystemVaultContainer, // root interface for all folder-like vault objects, should be subclassed
VFSystemVault, // an vault
VFSystemVaultFolder, // a folder within an vault
VFSystemVaultFile, // a file within an vault
VFSystemVaultFolder_BeingCreated // a temporary virtual folder that's in the process of having a name chosen
} = require('@dbrowser/vfs')