Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

fh-gridfs

Package Overview
Dependencies
Maintainers
1
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fh-gridfs - npm Package Compare versions

Comparing version 0.0.1-4 to 0.0.2-6

124

lib/gridFileManager.js
var mongodb = require("mongodb");
var assert = require("assert");
var fs = require("fs");

@@ -32,3 +31,3 @@ var Db = mongodb.Db;

fileExists(db, fileName, function(err, exists){
assert.ok(!err);
if(err) return cb(err);

@@ -47,7 +46,7 @@ if(exists){

fileExists(db, fileName, function(err, exists){
assert.ok(!err);
if(err) return cb(err);
if(exists){
getAllFileVersions(db, fileName, function(err, fileVersions){
assert.ok(!err);
if(err) return cb(err);

@@ -57,6 +56,3 @@ async.eachSeries(fileVersions, function(fileVersion, cb){

}, function(err){
assert.ok(!err);
cb();
cb(err);
});

@@ -81,3 +77,3 @@ });

fileExists(dbFrom, fileId, function(err, exists){
assert.ok(!err);
if(err) return cb(err);

@@ -101,6 +97,6 @@ if(!exists){

getFileDetails(dbFrom, {"fileId": oldFileId}, {}, function(err, oldFileDetails){
assert.ok(!err);
if(err) return cb(err);
getFileStream(dbFrom, oldFileId, {}, function(err, fileStream){
assert.ok(!err);
if(err) return cb(err);

@@ -110,3 +106,3 @@ fileStream.pause();

saveFile(dbTo, fileFromName, fileStream, {}, function(err, newFileId){
assert.ok(!err);
if(err) return cb(err);

@@ -119,3 +115,3 @@ migratedFiles[oldFileId] = newFileId;

getFileStream(dbFrom, fileThumbnailId, {}, function(err, thumbnailFileStream){
assert.ok(!err);
if(err) return cb(err);

@@ -126,10 +122,10 @@ //Pausing the stream before sending it to saveFile function

gridStoreThumb.open(function(err, thumbnailFile){
assert.ok(!err);
if(err) return cb(err);
var thumbnailName = thumbnailFile.filename;
gridStoreThumb.close(function(err, result){
assert.ok(!err);
if(err) return cb(err);
saveFile(dbTo, thumbnailName, thumbnailFileStream, {}, function(err, newThumbnailFileId){
assert.ok(!err);
if(err) return cb(err);

@@ -139,8 +135,6 @@ //Save the new thumbnail

newFileGridStore.open(function(err, newFile){
assert.ok(!err);
if(err) return cb(err);
newFile.metadata.thumbnail = newThumbnailFileId;
newFileGridStore.close(function(err, result){
assert.ok(!err);
cb(err);

@@ -160,4 +154,2 @@ });

}, function(err){
assert.ok(!err);
cb(err, migratedFiles);

@@ -172,3 +164,3 @@ });

fileExists(db, fileName, function(err, exists){
assert.ok(!err);
if(err) return cb(err);

@@ -189,7 +181,2 @@ if(exists){

//Checking parameters for the necessar
async.eachSeries(fileEntries, function(fileEntry, cb){
});
//Holding the necessary fileIds

@@ -203,3 +190,3 @@ var fileIds = {};

fileExists(db, fileName, function(err, exists){
assert.ok(!err);
if(err) return cb(err);

@@ -230,3 +217,3 @@ if(!exists){

getFileDetails(db, {"fileName": fileName}, fileOptions, function(err, fileDetails){
assert.ok(!err);
if(err) return cb(err);

@@ -246,4 +233,2 @@

}, function(err){
assert.ok(!err);
cb(err, fileIds);

@@ -259,3 +244,3 @@ });

fileExists(db, fileId, function(err, exists){
assert.ok(!err);
if(err) return cb(err);

@@ -277,3 +262,3 @@ if(exists){

fileExists(db, fileEntry.fileId, function(err, exists){
assert.ok(!err);
if(err) return cb(err);
if(!exists){

@@ -284,3 +269,3 @@ return cb(new Error("No File with id " + fileEntry.fileId + " exists."));

getFileDetails(db, {"fileId": fileEntry.fileId}, {}, function(err, fileDetails){
assert.ok(!err);
if(err) return cb(err);

@@ -294,7 +279,7 @@ var fileReadStream = gridFileStream.createReadStream({"_id": fileEntry.fileId});

zipStream.append(fileReadStream, {"name": fileEntry.fileName}, function(err){
assert.ok(!err);
if(err) return cb(err);
generateThumbnailFileName(fileEntry.fileName, function(thumbnailFileName){
thumbnailReadStream = gridFileStream.createReadStream({"_id": fileDetails.metadata.thumbnail});
zipStream.append(thumbnailReadStream, {"name": thumbnailFileName}, function(err){
assert.ok(!err);
if(err) return cb(err);
cb(err);

@@ -312,4 +297,2 @@ });

}, function(err){
assert.ok(!err);
//When all files are piped, the callback will be fired
cb(err);

@@ -323,9 +306,6 @@ });

fileExists(db, fileName, function(err, exists){
assert.ok(!err)
if(err) return cb(err);
if(exists){
updateExistingFile(db, fileName, fileReadStream, options, function(err, result){
assert.ok(!err);
assert.ok(result);
cb(err, result);

@@ -335,5 +315,2 @@ })

createNewFile(db, fileName, fileReadStream, options, function(err, result){
assert.ok(!err);
assert.ok(result);
cb(err, result);

@@ -350,12 +327,12 @@ });

gridStore.collection(function(err, collection){
assert.ok(!err);
if(err) return cb(err);
collection.find({"filename":fileName},{sort:{"metadata.version":-1},"fields": {"metadata.version":1}}, function(err, files){
assert.ok(!err);
if(err) return cb(err);
files.toArray(function(err, filesArray){
assert.ok(!err);
assert.ok(filesArray && Array.isArray(filesArray) && filesArray.length > 0);
if(err) return cb(err);
if(!(filesArray && Array.isArray(filesArray) && filesArray.length > 0)) return cb(new Error("Collection query is empty for file " + fileName));

@@ -370,7 +347,5 @@ var returnedVersions = [];

}, function(err){
assert.ok(!err);
if(err) return cb(err);
gridStore.close(function(err, result){
assert.ok(!err);
return cb(err, returnedVersions);

@@ -388,3 +363,3 @@ });

getFileDetails(db, {"fileName": fileName}, {"version":version}, function(err, fileDetails){
assert.ok(!err);
if(err) return cb(err);

@@ -394,12 +369,10 @@ var gridStore = new GridStore(db, fileDetails._id,"r");

gridStore.open(function(err, openGridStore){
assert.ok(!err);
if(err) return cb(err);
openGridStore.unlink(function(err, result){
assert.ok(!err);
if(err) return cb(err);
gridStore.close(function(err, result){
assert.ok(!err);
cb();
cb(err);
});
});

@@ -437,7 +410,7 @@ });

gridStore.open(function(err, parentFile){
assert.ok(!err);
if(err) return cb(err);
parentFile.metadata.thumbnail = thumbnailFile._id;
gridStore.close(function(err, fileObject){
assert.ok(!err);
if(err) return cb(err);
return cb(undefined, fileId);

@@ -460,3 +433,3 @@ });

getFileContentType(fileName, function(fileContentType){
assert.ok(fileContentType);
if(!(fileContentType && fileContentType.length > 0)) return cb(new Error("No file content type available for file " + fileName));

@@ -487,3 +460,2 @@ //If it is an image and options.thumbnail is true

//console.log(util.inspect(fileStream.listeners('error')));

@@ -505,4 +477,2 @@ fileWriteStream.on("close", function(file){

GridStore.exist(db, fileName, function(err, exists){
assert.ok(!err);
return cb(err, exists);

@@ -531,7 +501,7 @@ });

collection.find(selectionQuery, { "sort": {"metadata.version":-1}}, function(err, files){
assert.ok(!err);
if(err) return cb(err);
files.toArray(function(err, filesArray){
assert.ok(!err);
assert.ok(filesArray && Array.isArray(filesArray) && filesArray.length > 0);
if(err) return cb(err);
if(!(filesArray && Array.isArray(filesArray) && filesArray.length > 0)) return cb(new Error("No files exist for fileName " + fileName));

@@ -545,8 +515,12 @@ //If there is no version, get the latest version

assert(fileOfInterest.length == 1);
fileOfInterest = fileOfInterest[0];
if(fileOfInterest.length == 1){
fileOfInterest = fileOfInterest[0];
}
else{
return cb(new Error("Unexpected number of files returned for fileName " + fileSelectionCriteria.fileName, fileOfInterest.length));
}
}
gridStore.close(function(err, result){
assert.ok(!err);
return cb(err, fileOfInterest);

@@ -570,6 +544,6 @@ });

getFileDetails(db, {"fileName": fileName}, options, function(err, fileInfo){
assert.ok(!err);
if(err) return cb(err);
var latestFileVersion = fileInfo.metadata.version;
incrementFileVersion(latestFileVersion, function(newFileVersion){
assert.ok(newFileVersion);
if(!newFileVersion) return cb(new Error("File version was not incremented for file " + fileName));
console.log("New File Version ", newFileVersion);

@@ -594,3 +568,3 @@ createFileWithVersion(db, fileName, fileReadStream, newFileVersion, options, cb);

gridStore.open(function(err, file){
assert.ok(!err);
if(err) return cb(err);

@@ -604,3 +578,3 @@ if(!file.metadata.thumbnail){

gridStore.close(function(err, result){
assert.ok(!err);
if(err) return cb(err);
return cb(undefined, fileReadStream);

@@ -613,3 +587,3 @@ });

gridStore.close(function(err, result){
assert.ok(!err);
if(err) return cb(err);
return cb(undefined, fileReadStream);

@@ -616,0 +590,0 @@ });

{
"name": "fh-gridfs",
"version": "0.0.1-4",
"version": "0.0.2-6",
"description": "Wrapper for file storage using gridfs for mongo databases.",

@@ -15,13 +15,15 @@ "scripts": {

"dependencies": {
"mongodb": "*",
"assert": "*",
"archiver": "*",
"gridfs-stream": "*",
"gm": "*",
"async": "*",
"mime": "*",
"lodash": "*",
"rimraf": "*",
"util": "*"
"mongodb": "1.3.19",
"archiver": "0.4.9",
"gridfs-stream": "0.4.0",
"gm": "1.13.1",
"async": "0.2.9",
"mime": "1.2.11",
"lodash": "2.1.0",
"rimraf": "2.2.2"
},
"devDependencies": {
"assert": "0.4.9",
"util": "0.4.9"
}
}

@@ -1,1 +0,1 @@

0.0.1-4
0.0.2-6
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc