71 lines
1.9 KiB
JavaScript
71 lines
1.9 KiB
JavaScript
"use strict";
|
|
|
|
var util = require("util");
|
|
var NodeGit = require("../");
|
|
var Blob = NodeGit.Blob;
|
|
var LookupWrapper = NodeGit.Utils.lookupWrapper;
|
|
var TreeEntry = NodeGit.TreeEntry;
|
|
var normalizeOptions = NodeGit.Utils.normalizeOptions;
|
|
|
|
var _filteredContent = Blob.filteredContent;
|
|
var _filter = Blob.prototype.filter;
|
|
|
|
/**
|
|
* Retrieves the blob pointed to by the oid
|
|
* @async
|
|
* @param {Repository} repo The repo that the blob lives in
|
|
* @param {String|Oid|Blob} id The blob to lookup
|
|
* @return {Blob}
|
|
*/
|
|
Blob.lookup = LookupWrapper(Blob);
|
|
|
|
/**
|
|
* Retrieve the content of the Blob.
|
|
*
|
|
* @return {Buffer} Contents as a buffer.
|
|
*/
|
|
Blob.prototype.content = function () {
|
|
return this.rawcontent().toBuffer(this.rawsize());
|
|
};
|
|
|
|
/**
|
|
* Retrieve the Blob's type.
|
|
*
|
|
* @return {Number} The filemode of the blob.
|
|
*/
|
|
Blob.prototype.filemode = function () {
|
|
var FileMode = TreeEntry.FILEMODE;
|
|
|
|
return this.isBinary() ? FileMode.EXECUTABLE : FileMode.BLOB;
|
|
};
|
|
|
|
/**
|
|
* Retrieve the Blob's content as String.
|
|
*
|
|
* @return {String} Contents as a string.
|
|
*/
|
|
Blob.prototype.toString = function () {
|
|
return this.content().toString();
|
|
};
|
|
|
|
/**
|
|
* Get a buffer with the filtered content of a blob.
|
|
*
|
|
* This applies filters as if the blob was being checked out to the
|
|
* working directory under the specified filename. This may apply
|
|
* CRLF filtering or other types of changes depending on the file
|
|
* attributes set for the blob and the content detected in it.
|
|
*
|
|
* @async
|
|
* @param asPath Path used for file attribute lookups, etc.
|
|
* @param opts Options to use for filtering the blob
|
|
* @return {Promise<string>}
|
|
*/
|
|
Blob.prototype.filter = function (asPath, opts) {
|
|
if (opts) {
|
|
opts = normalizeOptions(opts, NodeGit.BlobFilterOptions);
|
|
}
|
|
return _filter.call(this, asPath, opts);
|
|
};
|
|
|
|
Blob.filteredContent = util.deprecate(_filteredContent, "NodeGit.Blob.filteredContent is deprecated" + "use NodeGit.Blob.prototype.filter instead."); |