abstract-file 


It can be used on any virtual file system, and stream supports. Inspired by vinyl.
Try to keep compatibility with vinyl.
- abstract file information class
- abstract file operation ability
- abstract load supports
- load read:true, buffer:true
- load stat
- load content
- abstract folder/directory supports: It's the array of file object and read-dir-stream
- abstract path.js
- abstract fs: It should apply via
AbstractFile.fs = fs
- abstract cwd: It should apply via
fs.cwd = process.cwd
Usage
the File and Folder implementation are in the custom-file package.
API
Properties
path
(File|String): the file path. it will be internally stored as absolute path always.
- It will get path string from the object's
path
attribute if it's an file object.
cwd
(String): the current working directroy.base
(String): the base directory. used to calc the relative path.
the default is cwd
if it's empty.history
(ArrayOf String): the history of the path changes.stat
(Stat): the file stats object. the isDirectory()
method be used.contents
(String|Buffer|ArrayOf(File)|Stream): the contents of the file.
- It's the array of
File
object or a read-dir-stream if the file is a folder.
skipSize
(Integer): the skipped length from beginning of contents. used by getContent()
.
only for buffer.relative
(String): readonly. the relative path from path
to base
.dirname
(String): readonly. the dirname of the path
.basename
(String): readonly. the basename of the path
.
Methods
constructor([aPath, ]aOptions[, done])
aPath
(String): the file path. it will be stored as absolute path always.aOptions
(Object):
path
(String): the same as the aPath
argument.cwd
(String): the current working directroy.base
(String): the base directory. used to calc the relative path.
the default is cwd
if it's empty.load
(Boolean): whether load file data(stat and contents). defaults to falseread
(Boolean): whether load file contents. defaults to false. only for load
is true.buffer
(Boolean): whether load file contents as buffer or stream, defaults to false.
only available for load
and read
both are true.text
(Boolean): whether load file contents as text, defaults to false.
only available for load
, read
and buffer
both are true.
done
(Function): the callback function only available for load
is true.
- the
loadSync
will be used if no done
function.
load(aOptions, done)
: Asynchronous load file stat and content.
read
(Boolean): whether load file contents. defaults to false.buffer
(Boolean): whether load file contents as buffer or stream, defaults to false.
only available for read
is true.text
(Boolean): whether load file contents as text, defaults to false.
only available for read
and buffer
both are true.done
Function(err, content): the callback function. the content
only available when read
is true
loadSync(aOptions)
: Synchronous load file stat and content.
read
(Boolean): whether load file contents. defaults to false.buffer
(Boolean): whether load file contents as buffer or stream, defaults to false.
only available for read
is true.text
(Boolean): whether load file contents as text, defaults to false.
only available for read
and buffer
both are true.- return contents only available when
read
is true
loadContent(aOptions, done)
: Asynchronous load file contents.
buffer
(Boolean): whether load file contents as buffer or stream, defaults to false.text
(Boolean): whether load file contents as text, defaults to false.
only available for buffer
is true.done
Function(err, content): the callback function.
loadContentSync(aOptions)
: Synchronous load file contents.
buffer
(Boolean): whether load file contents as buffer or stream, defaults to false.text
(Boolean): whether load file contents as text, defaults to false.
only available for buffer
is true.- return contents
getContent(aOptions, done)
: Asynchronous get the file contents buffer, skipSize used.
only available for File(not for folder)
done
Function(err, content): the callback function.
getContentSync(aOptions)
: Synchronous get the file contents buffer, skipSize used.
only available for File(not for folder)loadStat(aOptions, done)
: Asynchronous load file stats.
done
Function(err, stat): the callback function.
loadStatSync(aOptions)
: Synchronous load file stats.
pipe(stream[, options])
: pipe it to the stream.
stream
(Writable Stream): The destination stream for writing data.options
(Object): Pipe options
end
(Boolean): End the writer when the reader ends. Default = true
validate(aFile, raiseError=true)
: the aFile object whether is valid.isDirectory()
: whether is directory.isBuffer()
: whether contents is buffer.isStream()
: whether contents is stream.toString()
: return the path.
these methods should be overrides:
- _validate(aFile): the aFile object whether is valid.
- _loadContentSync(aFile)
- _loadStatSync(aFile)
- _loadContent(aFile, done): optional
- _loadStat(aFile, done): optional
- _inspect()
License
MIT