ZEST / filestore.disk / Source: typedef.js

// documenting the options object used by the component
/**
 * The options object is used to configure the filestore
 * @typedef {object} module:filestore-disk~Options
 * @property {string} baseDir - The absolute path where the files have to be stored.
 */
// documenting the config object used inside the component
/**
 * The options object is used to configure the filestore
 * @typedef {object} module:filestore-disk~Config
 * @property {external:base-logger|console} logger - The logger to be used by this component.
 * @property {EventEmitter} fileEvent - An event emitter object which is used to emit and listen to file change events.
 * @property {string} baseDir - The absolute path where the files have to be stored.
 */
// documenting the FileStoreFunctions namespace that contains all filestore functions
/**
 * The filestore object is returned when filestore gets resolved. This Object has static functions to access
 * the store.
 * @namespace FileStoreFunctions
 */
// documenting the Stats object
/**
 * The Stats object is a normalized file metadata that is used by filestore
 * @typedef {object} module:filestore-disk/utils~Stats
 * @property {String} name - The base name (including extension) of the file
 * @property {string} extension - The file extension
 * @property {string} path - filestore-relative path of the file
 * @property {String} type - the type of the file, can be F (for file), D (for directories) or L (for links)
 * @property {Number} size - the size of the file
 * @property {Date} created - when was the file created
 * @property {Date} modified - when was the file last modified
 */
// external node classes
/**
 * The node Buffer class
 * @external Buffer
 * @see {@link http://nodejs.org/api/buffer.html}
 */
/**
 * This module contains utilities for handling and transforming file paths.
 * @external path
 * @see {@link http://nodejs.org/api/path.html}
 */
/**
 * A stream is an abstract interface implemented by various objects in Node
 * @external stream
 * @see {@link http://nodejs.org/api/stream.html}
 */
/**
 * The node stream.Readable class
 * @external Readable
 * @see {@link http://nodejs.org/api/stream.html#stream_class_stream_readable}
 */
// external zest modules
/**
 * base.logger is a basic logger module used throughout zest-infra to log onto the node console or files. It takes a
 * module name as reference and returns a logger object with log, info, warn and error methods.
 * @external base-logger
 * @see {@link https://github.com/zest/base.logger/blob/master/README.md}
 */
// external node modules
/**
 * q is a promise library for node.
 * @external q
 * @see {@link https://www.npmjs.org/package/q}
 */
/**
 * fs-extra contains methods that aren't included in the vanilla Node.js fs package. Such as mkdir -p, cp -r, and rm -rf
 * @external fs-extra
 * @see {@link https://www.npmjs.org/package/fs-extra}
 */
/**
 * Merge multiple objects into one, optionally creating a new cloned object. Similar to the jQuery.extend but more
 * flexible. Works in Node.js and the browser
 * @external merge
 * @see {@link https://www.npmjs.org/package/merge}
 */
/**
 * walk a directory tree recursively with events
 * @external findit
 * @see {@link https://www.npmjs.org/package/findit}
 */
/**
 * a glob matcher in javascript
 * @external minimatch
 * @see {@link https://www.npmjs.org/package/minimatch}
 */
/**
 * tar for node
 * @external tar
 * @see {@link https://www.npmjs.org/package/tar}
 */
/**
 * Advanced file system stream things
 * @external fstream
 * @see {@link https://www.npmjs.org/package/fstream}
 */
/**
 * Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web
 * and mobile applications.
 * @external express
 * @see {@link http://www.expressjs.com}
 */
/**
 * The ultimate javascript content-type utility.
 * @external mime-types
 * @see {@link https://www.npmjs.org/package/mime-types}
 */
/**
 * Nodejs utility module.
 * @external util
 * @see {@link http://nodejs.org/api/util.html}
 */