MemoryVolume
Nodepod API / src / MemoryVolume
Class: MemoryVolume
Section titled “Class: MemoryVolume”Defined in: src/memory-volume.ts:484
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new MemoryVolume(
handler?,lazyResidentMaxBytes?):MemoryVolume
Defined in: src/memory-volume.ts:724
Parameters
Section titled “Parameters”handler?
Section titled “handler?”MemoryHandler | null
lazyResidentMaxBytes?
Section titled “lazyResidentMaxBytes?”number = ...
Returns
Section titled “Returns”MemoryVolume
Accessors
Section titled “Accessors”contentPackingEnabled
Section titled “contentPackingEnabled”Get Signature
Section titled “Get Signature”get contentPackingEnabled():
boolean
Defined in: src/memory-volume.ts:1681
Returns
Section titled “Returns”boolean
evictionEnabled
Section titled “evictionEnabled”Get Signature
Section titled “Get Signature”get evictionEnabled():
boolean
Defined in: src/memory-volume.ts:2073
Returns
Section titled “Returns”boolean
Methods
Section titled “Methods”access()
Section titled “access()”access(
p,modeOrCb?,cb?):void
Defined in: src/memory-volume.ts:3734
Parameters
Section titled “Parameters”string
modeOrCb?
Section titled “modeOrCb?”number | ((err) => void)
(err) => void
Returns
Section titled “Returns”void
accessSync()
Section titled “accessSync()”accessSync(
p,mode?):void
Defined in: src/memory-volume.ts:3339
Parameters
Section titled “Parameters”string
number = 0
Returns
Section titled “Returns”void
adoptPackContent()
Section titled “adoptPackContent()”adoptPackContent(
pack,manifest,buffer,keepResident):number
Defined in: src/memory-volume.ts:2096
Turn files that were mounted from buffer (a pack’s data) into
paged-out stubs backed by pack, so the buffer can be collected.
Files for which keepResident is true are copied out of it instead.
Anything written since the mount no longer points into buffer and is
left alone.
Parameters
Section titled “Parameters”number
manifest
Section titled “manifest”readonly BinaryVolumeEntry[]
buffer
Section titled “buffer”ArrayBufferLike
keepResident
Section titled “keepResident”(path) => boolean
Returns
Section titled “Returns”number
appendFileSync()
Section titled “appendFileSync()”appendFileSync(
p,data):void
Defined in: src/memory-volume.ts:3628
Parameters
Section titled “Parameters”string
unknown
Returns
Section titled “Returns”void
childKindsSync()
Section titled “childKindsSync()”childKindsSync(
dirPath,names): ("file"|"directory"|"symlink"|null)[]
Defined in: src/memory-volume.ts:2822
For each name in a directory: what lstatSync(dir/name) would say it is, from one lookup of the directory (readdir withFileTypes asks this for every entry). null where the entry isn’t a child of the directory right now; lstat decides those.
Parameters
Section titled “Parameters”dirPath
Section titled “dirPath”string
string[]
Returns
Section titled “Returns”("file" | "directory" | "symlink" | null)[]
chmodSync()
Section titled “chmodSync()”chmodSync(
_p,_mode):void
Defined in: src/memory-volume.ts:3503
Parameters
Section titled “Parameters”string
number
Returns
Section titled “Returns”void
chownSync()
Section titled “chownSync()”chownSync(
p,uid,gid):void
Defined in: src/memory-volume.ts:3537
Parameters
Section titled “Parameters”string
number
number
Returns
Section titled “Returns”void
copyFileSync()
Section titled “copyFileSync()”copyFileSync(
src,dest,mode?):void
Defined in: src/memory-volume.ts:3350
Parameters
Section titled “Parameters”string
string
number = 0
Returns
Section titled “Returns”void
createReadStream()
Section titled “createReadStream()”createReadStream(
p):object
Defined in: src/memory-volume.ts:3868
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”object
on: (
event,cb) =>void
Parameters
Section titled “Parameters”string
(…args) => void
Returns
Section titled “Returns”void
pipe: (
dest) =>unknown
Parameters
Section titled “Parameters”unknown
Returns
Section titled “Returns”unknown
createWriteStream()
Section titled “createWriteStream()”createWriteStream(
p):object
Defined in: src/memory-volume.ts:3897
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”object
end: (
data?) =>void
Parameters
Section titled “Parameters”string | Uint8Array<ArrayBufferLike>
Returns
Section titled “Returns”void
on: (
event,cb) =>void
Parameters
Section titled “Parameters”string
(…args) => void
Returns
Section titled “Returns”void
write: (
data) =>boolean
Parameters
Section titled “Parameters”string | Uint8Array<ArrayBufferLike>
Returns
Section titled “Returns”boolean
dispose()
Section titled “dispose()”dispose():
void
Defined in: src/memory-volume.ts:953
Clean up all owned data and listeners. A disposed volume is empty.
Returns
Section titled “Returns”void
enableContentPacking()
Section titled “enableContentPacking()”enableContentPacking(
opts?):void
Defined in: src/memory-volume.ts:1627
Keep node_modules files that nobody reads deflated in memory (see PackedChunk). Main thread only: rounds run after the volume has been quiet for a while and yield between slices; reads stay synchronous.
Parameters
Section titled “Parameters”deflate?
Section titled “deflate?”(bytes) => Promise<Uint8Array<ArrayBufferLike>>
Returns
Section titled “Returns”void
enableEviction()
Section titled “enableEviction()”enableEviction(
source,budgetBytes):void
Defined in: src/memory-volume.ts:2067
Let content mounted with a src (package packs) be dropped from memory
under an LRU budget and read back from source on demand. Paged-out
files can’t be read synchronously: callers await ensureResident() first.
Parameters
Section titled “Parameters”source
Section titled “source”VolumeContentSource
budgetBytes
Section titled “budgetBytes”number
Returns
Section titled “Returns”void
ensureResident()
Section titled “ensureResident()”ensureResident(
paths):Promise<void>
Defined in: src/memory-volume.ts:2186
Page the given files (and their pack neighbours) back into memory.
Parameters
Section titled “Parameters”string | readonly string[]
Returns
Section titled “Returns”Promise<void>
existsSync()
Section titled “existsSync()”existsSync(
p):boolean
Defined in: src/memory-volume.ts:2807
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”boolean
getStats()
Section titled “getStats()”getStats():
object
Defined in: src/memory-volume.ts:890
Returns
Section titled “Returns”object
dirCount
Section titled “dirCount”dirCount:
number
fileCount
Section titled “fileCount”fileCount:
number
lazyResidentBytes
Section titled “lazyResidentBytes”lazyResidentBytes:
number
packedBytes
Section titled “packedBytes”packedBytes:
number
packedFiles
Section titled “packedFiles”packedFiles:
number
packedStoredBytes
Section titled “packedStoredBytes”packedStoredBytes:
number
pagedOutBytes
Section titled “pagedOutBytes”pagedOutBytes:
number
pagedOutFiles
Section titled “pagedOutFiles”pagedOutFiles:
number
pagedOutSyncMisses
Section titled “pagedOutSyncMisses”pagedOutSyncMisses:
number
residentPackBytes
Section titled “residentPackBytes”residentPackBytes:
number
totalBytes
Section titled “totalBytes”totalBytes:
number
watcherCount
Section titled “watcherCount”watcherCount:
number
holdContentPacking()
Section titled “holdContentPacking()”holdContentPacking(): () =>
void
Defined in: src/memory-volume.ts:1712
Keep packing rounds from packing anything until the returned release is called (a bulk copy of the packages is about to be taken: packing them first would only have it inflate them again).
Returns
Section titled “Returns”() => void
inspectNode()
Section titled “inspectNode()”inspectNode(
p):VolumeNodeInfo|null
Defined in: src/memory-volume.ts:790
lstat-like view of the node at exactly p: no symlink is followed, not
even in a parent directory (null for paths that only exist through
one). Never hydrates lazy content and never throws. inode is an
opaque identity token shared by hardlinks and stable across renames.
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”VolumeNodeInfo | null
isPagedOut()
Section titled “isPagedOut()”isPagedOut(
p):boolean
Defined in: src/memory-volume.ts:2175
true when reading p synchronously would need ensureResident() first.
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”boolean
kindSync()
Section titled “kindSync()”kindSync(
p):"file"|"directory"|null
Defined in: src/memory-volume.ts:2840
Whether statSync(p).isFile() would be true (‘file’), false (‘directory’), or statSync would throw ENOENT (null): existsSync plus the kind, without building a stat.
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”"file" | "directory" | null
lchmodSync()
Section titled “lchmodSync()”lchmodSync(
p,mode):void
Defined in: src/memory-volume.ts:3520
Parameters
Section titled “Parameters”string
number
Returns
Section titled “Returns”void
lchownSync()
Section titled “lchownSync()”lchownSync(
p,uid,gid):void
Defined in: src/memory-volume.ts:3555
Parameters
Section titled “Parameters”string
number
number
Returns
Section titled “Returns”void
linkCount()
Section titled “linkCount()”linkCount(
p):number
Defined in: src/memory-volume.ts:2127
How many paths link to the file at p (1 for anything that isn’t a hardlinked file).
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”number
linksOf()
Section titled “linksOf()”linksOf(
p):string[]
Defined in: src/memory-volume.ts:2138
Every path that is a hardlink to the file at p (including p), without following symlinks.
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”string[]
linkSync()
Section titled “linkSync()”linkSync(
existingPath,newPath):void
Defined in: src/memory-volume.ts:3431
Parameters
Section titled “Parameters”existingPath
Section titled “existingPath”string
newPath
Section titled “newPath”string
Returns
Section titled “Returns”void
lstat()
Section titled “lstat()”lstat(
p,cb?):void
Defined in: src/memory-volume.ts:3702
Parameters
Section titled “Parameters”string
(err, stats?) => void
Returns
Section titled “Returns”void
lstatSync()
Section titled “lstatSync()”lstatSync(
p):FileStat
Defined in: src/memory-volume.ts:2909
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”lutimesSync()
Section titled “lutimesSync()”lutimesSync(
p,atime,mtime):void
Defined in: src/memory-volume.ts:3610
Parameters
Section titled “Parameters”string
number | Date
number | Date
Returns
Section titled “Returns”void
markLazyInvalidated()
Section titled “markLazyInvalidated()”markLazyInvalidated(
p):void
Defined in: src/memory-volume.ts:2556
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”void
mkdirSync()
Section titled “mkdirSync()”mkdirSync(
p,options?):string|undefined
Defined in: src/memory-volume.ts:3043
Parameters
Section titled “Parameters”string
options?
Section titled “options?”number
recursive?
Section titled “recursive?”boolean
Returns
Section titled “Returns”string | undefined
mountBinarySnapshot()
Section titled “mountBinarySnapshot()”mountBinarySnapshot(
snapshot,notifyBulk?):number
Defined in: src/memory-volume.ts:1077
Parameters
Section titled “Parameters”snapshot
Section titled “snapshot”ArrayBuffer
manifest
Section titled “manifest”BinaryVolumeEntry[]
notifyBulk?
Section titled “notifyBulk?”boolean = true
Returns
Section titled “Returns”number
mountEntries()
Section titled “mountEntries()”mountEntries(
entries,opts?):number
Defined in: src/memory-volume.ts:1192
Merge entries into the volume. Missing parents are created and an entry
whose path holds a node of another kind replaces it. With notify, every
entry fires the same watcher/global/mutation events a regular write
would. Without it, a single mount mutation is reported for the whole
batch and the new entries fire no watchers (removing a node of another
kind at an entry’s path still does, like any removal).
Parameters
Section titled “Parameters”entries
Section titled “entries”readonly MountEntry[]
notify?
Section titled “notify?”boolean
Returns
Section titled “Returns”number
Call Signature
Section titled “Call Signature”off(
event,handler):this
Defined in: src/memory-volume.ts:746
Parameters
Section titled “Parameters”"change"
handler
Section titled “handler”FileChangeHandler
Returns
Section titled “Returns”this
Call Signature
Section titled “Call Signature”off(
event,handler):this
Defined in: src/memory-volume.ts:747
Parameters
Section titled “Parameters”"delete"
handler
Section titled “handler”FileDeleteHandler
Returns
Section titled “Returns”this
Call Signature
Section titled “Call Signature”on(
event,handler):this
Defined in: src/memory-volume.ts:736
Parameters
Section titled “Parameters”"change"
handler
Section titled “handler”FileChangeHandler
Returns
Section titled “Returns”this
Call Signature
Section titled “Call Signature”on(
event,handler):this
Defined in: src/memory-volume.ts:737
Parameters
Section titled “Parameters”"delete"
handler
Section titled “handler”FileDeleteHandler
Returns
Section titled “Returns”this
onGlobalChange()
Section titled “onGlobalChange()”onGlobalChange(
cb): () =>void
Defined in: src/memory-volume.ts:3855
Parameters
Section titled “Parameters”(path, event) => void
Returns
Section titled “Returns”() => void
onMetaChange()
Section titled “onMetaChange()”onMetaChange(
cb): () =>void
Defined in: src/memory-volume.ts:763
Subscribe to metadata changes only (chmod/chown/utimes and their l* variants), with the fields that changed. Cheaper than onMutation, which resolves canonical paths for every mutation. Returns an unsubscribe fn.
Parameters
Section titled “Parameters”(path, change) => void
Returns
Section titled “Returns”() => void
onMutation()
Section titled “onMutation()”onMutation(
cb): () =>void
Defined in: src/memory-volume.ts:779
Parameters
Section titled “Parameters”(mutation) => void
Returns
Section titled “Returns”() => void
onNotificationBurst()
Section titled “onNotificationBurst()”onNotificationBurst(
cb): () =>void
Defined in: src/memory-volume.ts:3317
Parameters
Section titled “Parameters”(start) => void
Returns
Section titled “Returns”() => void
onSilentMount()
Section titled “onSilentMount()”onSilentMount(
cb): () =>void
Defined in: src/memory-volume.ts:774
Entries mounted without notify (bulk restores) fire no watchers: cb
gets their paths, so processes that listed those directories earlier
can look again. Cheaper than onMutation, which journals every change.
Parameters
Section titled “Parameters”(paths) => void
Returns
Section titled “Returns”() => void
openFileHandleSync()
Section titled “openFileHandleSync()”openFileHandleSync(
p):VolumeFileHandle
Defined in: src/memory-volume.ts:2986
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”VolumeFileHandle
packContentNow()
Section titled “packContentNow()”packContentNow():
Promise<void>
Defined in: src/memory-volume.ts:1725
Run a packing round now (tests; normally rounds start on their own).
Returns
Section titled “Returns”Promise<void>
pagedOutPaths()
Section titled “pagedOutPaths()”pagedOutPaths(
root):string[]
Defined in: src/memory-volume.ts:2152
Paged-out files at or below root (canonical paths, symlinks not followed).
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”string[]
pauseEviction()
Section titled “pauseEviction()”pauseEviction(): () =>
void
Defined in: src/memory-volume.ts:2078
Hold off eviction (e.g. during an install that reads packages synchronously). Returns the resume fn.
Returns
Section titled “Returns”() => void
peekFileSync()
Section titled “peekFileSync()”peekFileSync(
p):Uint8Array
Defined in: src/memory-volume.ts:1690
A file’s bytes for bulk copies (snapshots): like readFileSync, but the file isn’t counted as in use, and a packed file is inflated for the caller and stays packed.
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”Uint8Array
readdir()
Section titled “readdir()”readdir(
p,optionsOrCb?,cb?):void
Defined in: src/memory-volume.ts:3711
Parameters
Section titled “Parameters”string
optionsOrCb?
Section titled “optionsOrCb?”{ withFileTypes?: boolean; } | ((err, files?) => void)
(err, files?) => void
Returns
Section titled “Returns”void
readdirSync()
Section titled “readdirSync()”readdirSync(
p):string[]
Defined in: src/memory-volume.ts:3081
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”string[]
readFile()
Section titled “readFile()”readFile(
p,optionsOrCb?,cb?):void
Defined in: src/memory-volume.ts:3676
Parameters
Section titled “Parameters”string
optionsOrCb?
Section titled “optionsOrCb?”{ encoding?: string; } | ((err, data?) => void)
(err, data?) => void
Returns
Section titled “Returns”void
readFileSync()
Section titled “readFileSync()”Call Signature
Section titled “Call Signature”readFileSync(
p):Uint8Array
Defined in: src/memory-volume.ts:2956
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”Uint8Array
Call Signature
Section titled “Call Signature”readFileSync(
p,encoding):string
Defined in: src/memory-volume.ts:2957
Parameters
Section titled “Parameters”string
encoding
Section titled “encoding”"utf8" | "utf-8"
Returns
Section titled “Returns”string
readlinkSync()
Section titled “readlinkSync()”readlinkSync(
p):string
Defined in: src/memory-volume.ts:3416
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”string
realpath()
Section titled “realpath()”realpath(
p,cb?):void
Defined in: src/memory-volume.ts:3725
Parameters
Section titled “Parameters”string
(err, resolved?) => void
Returns
Section titled “Returns”void
realpathSync()
Section titled “realpathSync()”realpathSync(
p):string
Defined in: src/memory-volume.ts:3359
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”string
rebuildIndexes()
Section titled “rebuildIndexes()”rebuildIndexes():
void
Defined in: src/memory-volume.ts:853
Rebuild internal inode indexes after an external tree replacement.
Returns
Section titled “Returns”void
relistLazy()
Section titled “relistLazy()”relistLazy(
dirs):void
Defined in: src/memory-volume.ts:2546
The main thread mounted entries in these directories without per-file notifications: forget their listings (and every cached miss) so the next lookup lists them again and finds the new entries.
Parameters
Section titled “Parameters”string[]
Returns
Section titled “Returns”void
removeTreeSync()
Section titled “removeTreeSync()”removeTreeSync(
p):void
Defined in: src/memory-volume.ts:3144
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”void
renameSync()
Section titled “renameSync()”renameSync(
from,to):void
Defined in: src/memory-volume.ts:3194
Parameters
Section titled “Parameters”string
string
Returns
Section titled “Returns”void
rmdirSync()
Section titled “rmdirSync()”rmdirSync(
p):void
Defined in: src/memory-volume.ts:3116
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”void
setBulkMountHandler()
Section titled “setBulkMountHandler()”setBulkMountHandler(
handler):void
Defined in: src/memory-volume.ts:754
Parameters
Section titled “Parameters”handler
Section titled “handler”((snapshot) => void) | null
Returns
Section titled “Returns”void
setMissHandler()
Section titled “setMissHandler()”setMissHandler(
handler,lazyDirNames?):void
Defined in: src/memory-volume.ts:2421
Parameters
Section titled “Parameters”handler
Section titled “handler”VolumeMissHandler | null
lazyDirNames?
Section titled “lazyDirNames?”string[] = []
Returns
Section titled “Returns”void
stat()
Section titled “stat()”stat(
p,cb?):void
Defined in: src/memory-volume.ts:3693
Parameters
Section titled “Parameters”string
(err, stats?) => void
Returns
Section titled “Returns”void
statSync()
Section titled “statSync()”statSync(
p):FileStat
Defined in: src/memory-volume.ts:2850
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”symlinkSync()
Section titled “symlinkSync()”symlinkSync(
target,linkPath,type?):void
Defined in: src/memory-volume.ts:3389
Parameters
Section titled “Parameters”target
Section titled “target”string
linkPath
Section titled “linkPath”string
string
Returns
Section titled “Returns”void
toSnapshot()
Section titled “toSnapshot()”toSnapshot(
excludePrefixes?,excludeDirNames?):VolumeSnapshot
Defined in: src/memory-volume.ts:995
Parameters
Section titled “Parameters”excludePrefixes?
Section titled “excludePrefixes?”string[]
excludeDirNames?
Section titled “excludeDirNames?”Set<string>
Returns
Section titled “Returns”truncateSync()
Section titled “truncateSync()”truncateSync(
p,len?):void
Defined in: src/memory-volume.ts:3645
Parameters
Section titled “Parameters”string
number = 0
Returns
Section titled “Returns”void
unlinkSync()
Section titled “unlinkSync()”unlinkSync(
p):void
Defined in: src/memory-volume.ts:3093
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”void
utimesSync()
Section titled “utimesSync()”utimesSync(
p,atime,mtime):void
Defined in: src/memory-volume.ts:3592
Parameters
Section titled “Parameters”string
number | Date
number | Date
Returns
Section titled “Returns”void
watch()
Section titled “watch()”watch(
target,optionsOrCb?,cb?):FileWatchHandle
Defined in: src/memory-volume.ts:3747
Parameters
Section titled “Parameters”target
Section titled “target”string
optionsOrCb?
Section titled “optionsOrCb?”WatchCallback | { encoding?: string; persistent?: boolean; recursive?: boolean; }
Returns
Section titled “Returns”writeCacheSync()
Section titled “writeCacheSync()”writeCacheSync(
p,data):void
Defined in: src/memory-volume.ts:3038
Parameters
Section titled “Parameters”string
unknown
Returns
Section titled “Returns”void
writeFileSync()
Section titled “writeFileSync()”writeFileSync(
p,data):void
Defined in: src/memory-volume.ts:3032
Parameters
Section titled “Parameters”string
unknown
Returns
Section titled “Returns”void
fromBinarySnapshot()
Section titled “fromBinarySnapshot()”
staticfromBinarySnapshot(snapshot):MemoryVolume
Defined in: src/memory-volume.ts:1070
Parameters
Section titled “Parameters”snapshot
Section titled “snapshot”ArrayBuffer
manifest
Section titled “manifest”BinaryVolumeEntry[]
Returns
Section titled “Returns”MemoryVolume
fromSnapshot()
Section titled “fromSnapshot()”
staticfromSnapshot(snapshot):MemoryVolume
Defined in: src/memory-volume.ts:1137
Parameters
Section titled “Parameters”snapshot
Section titled “snapshot”Returns
Section titled “Returns”MemoryVolume
snapshotToMountEntries()
Section titled “snapshotToMountEntries()”
staticsnapshotToMountEntries(snapshot):MountEntry[]
Defined in: src/memory-volume.ts:1143