Files
Zos/Skills/@be/node_modules/jibo-kb/lib/docs/Asset.js

166 lines
5.3 KiB
JavaScript

/** Asset storage object. Assets are binary files attached to a node.
* Use `node.createAsset()` to create an asset object. Asset objects have
* minimal meta information about the asset file: just subtype and
* file extension. All other metadata should be stored in the node it
* is attached to.
*
* @class Asset
* @memberof jibo.kb
* @param {string} [filenameOrUrl] Filename to asset on disk, or url
* to asset via KB service.
* @param {string} [subtype] Subtype name of asset. Defaults to `asset`.
* @param {string} [ext] Optional filename extension.
*/
/** Create an Error with a good message from an AxiosError object
*
* @method jibo.kb.KnowledgeBase#_processError
* @param {AxiosError} err Axios error object.
* @returns {Error} Error object.
* @private
*/
/** The filename for this asset, without any directory
* information. Format of the filename is:
*
* `{$_id}.{$subtype}.{$ext}`.
*
* If the asset doesn't have an extension, `{$ext}` (and its dot
* seperator) will be absent.
*
* @method jibo.kb.Asset#filename
* @returns {string} The filename.
*/
/** Full path to the asset file on disk or a URL to fetch it
* via the KB service.
*
* @method jibo.kb.Asset#fullFilenameOrURL
* @returns {string} Full path filename or URL.
*/
/** Print useful console logs from asset objects.
*
* @method jibo.kb.Asset#toString
* @returns {string} Full path filename or URL.
*/
/** Write out the data for this asset file. Data can be provided
* as a readable stream, buffer, or blob.
*
* @method jibo.kb.Asset#save
* @param {stream.Readable|Buffer|Blob} data Data to be saved in asset file.
* @param {Function} [callback] Called when done. If callback is
* omitted a promise is returned instead.
* @returns {Promise} A promise if the callback is omitted.
*/
/** Set up an asset object by parsing an asset filename or
* URL. Sets the `_id`, `subtype`, and `ext`. Set rootDir if full
* path filename or URL.
*
* @method jibo.kb.Asset#setSelfFromFilenameOrURL
* @param {string} filenameOrUrl Filename, full path filename, or URL.
*/
/** Load the binary file pointed to by this asset object.
* Returns a buffer (via callback) with the contents (data) of the file.
*
* @method jibo.kb.Asset#load
* @param {Function} [callback] Called with (err, data) when
* done. If callback is omitted a promise that resolves to `data`
* is returned instead.
* @returns {Promise} A promise that resolves with the value of
* `data` if the callback is omitted.
*/
/** Create a stream of the binary file this asset object points to.
* Return a stream (via callback) of the contents (data)
* of the file.
*
* @method jibo.kb.Asset#loadStream
* @returns {Promise<stream.Readable>} Stream of binary asset data.
*/
/** Load the binary file pointed to by this asset object.
* Returns a blob (via callback) with the contents (data) of the file.
*
* @method jibo.kb.Asset#loadBlob
* @param {Function} [callback] Called with (err, data) when
* done. If callback is omitted a promise that resolves to `data`
* is returned instead.
* @returns {Promise} A promise that resolves with the value of
* `data` if the callback is omitted.
*/
/** Remove the asset file from disk.
*
* @method jibo.kb.Asset#remove
* @param {Function} [callback] Called when done. If callback is
* omitted a promise is returned instead.
* @returns {Promise} A promise if the callback is omitted.
*/
/** Assemble the URL for this asset.
*
* @method jibo.kb.Asset#_url
* @returns {string} URL
* @private
*/
/** Saves the asset data via the KB service web interface.
*
* @method jibo.kb.Asset#_saveViaWeb
* @private
*/
/** Set up an asset by parsing a filename
*
* @method jibo.kb.Asset#_setSelfFromFilename
* @param {string} filename Filename or full path filename
* @private
*/
/** Set up an asset from a URL
*
* @method jibo.kb.Asset#_setSelfFromURL
* @param {string} URL
* @private
*/
/** Remove the asset file from disk via KB service.
*
* @method jibo.kb.Asset#_removeViaWeb
* @param {Function} callback Called when done
* @private
*/
/** Save asset file from buffer.
*
* @method jibo.kb.Asset#_saveBuffer
* @param {Buffer} buffer Data to be saved in asset file
* @param {Function} callback Called when done
* @private
*/
/** Save asset file from stream.
*
* @method jibo.kb.Asset#_saveStream
* @param {stream.Readable} stream Data to be saved in asset file
* @param {Function} callback Called when done
* @private
*/
/** Loads the asset via the KB service.
*
* @method jibo.kb.Asset#_loadBufferViaWeb
* @param {Function} callback Called with (err, data) when done
* @private
*/
/** Loads a stream of the asset via the KB service.
*
* @method jibo.kb.Asset#_loadStreamViaWeb
* @returns {Promise<stream.Readable>} Promise to resolve a Stream of asset
* @private
*/