diff --git a/package-lock.json b/package-lock.json index c0a1362..e73879f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8 +1,6 @@ { - "name": "gridfs-promise", - "version": "1.0.3", - "lockfileVersion": 1, "requires": true, + "lockfileVersion": 1, "dependencies": { "@types/bson": { "version": "1.0.6", @@ -13,10 +11,9 @@ } }, "@types/chai": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.1.tgz", - "integrity": "sha512-nU82bD1xUJ1BKKPNQPJffXjNQtjh5XdF7hqKhnjrpLw+5jMJdJcx6UqwWycCPnKKWQbNszOq9g9vSn1Xc0Ll/Q==", - "dev": true + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.2.tgz", + "integrity": "sha512-D8uQwKYUw2KESkorZ27ykzXgvkDJYXVEihGklgfp5I4HUP8D6IxtcdLTMB1emjQiWzV7WZ5ihm1cxIzVwjoleQ==" }, "@types/events": { "version": "1.1.0", @@ -24,15 +21,14 @@ "integrity": "sha512-y3bR98mzYOo0pAZuiLari+cQyiKk3UXRuT45h1RjhfeCzqkjaVsfZJNaxdgtk7/3tzOm1ozLTqEqMP3VbI48jw==" }, "@types/mocha": { - "version": "2.2.46", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-2.2.46.tgz", - "integrity": "sha512-fwTTP5QLf4xHMkv7ovcKvmlLWX3GrxCa5DRQDOilVyYGCp+arZTAQJCy7/4GKezzYJjfWMpB/Cy4e8nrc9XioA==", - "dev": true + "version": "2.2.47", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-2.2.47.tgz", + "integrity": "sha512-v/lko8AvmTt1K8p+ebdhdiHJE7zpPBYsDKjJSNCl8GwPGkKe5xND7s6M36LKye/USbWSPA7gYCDL0+DZ5h0L6Q==" }, "@types/mongodb": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.0.2.tgz", - "integrity": "sha512-Lg+eaTCOGg0O/Q9+SpK7LMvH4zHaMTwqxVHW0APeuX4DpgZYhiUbCLW96AZ2QNdWIoOZXSZ02TxTaKwPmbArEA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.0.4.tgz", + "integrity": "sha512-CxqwPOS77HAbNMgUVojsP60KMwKf5SoRmYiT6uFVRJBJ9FeBuhm+Qua8E1fTqqDQy4amYJAcATGj/eyWFzUyTA==", "requires": { "@types/bson": "1.0.6", "@types/events": "1.1.0", @@ -47,14 +43,12 @@ "@types/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I=", - "dev": true + "integrity": "sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I=" }, "@types/strip-json-comments": { "version": "0.0.30", "resolved": "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz", - "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==", - "dev": true + "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==" }, "ansi-regex": { "version": "2.1.1", @@ -77,14 +71,12 @@ "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" }, "assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" }, "babel-code-frame": { "version": "6.26.0", @@ -127,8 +119,7 @@ "browser-stdout": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", - "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=", - "dev": true + "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=" }, "bson": { "version": "1.0.4", @@ -144,7 +135,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", - "dev": true, "requires": { "assertion-error": "1.1.0", "check-error": "1.0.2", @@ -185,8 +175,7 @@ "check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=" }, "color-convert": { "version": "1.9.1", @@ -215,7 +204,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -224,7 +212,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dev": true, "requires": { "type-detect": "4.0.6" } @@ -240,9 +227,9 @@ "integrity": "sha512-vVCHofHxcCd2Eee3/9DaZy+1WBlN/JKxA2uXC3W11NtqAKT63fw1Ab8JVJunJ3tZ2dBFcKNUS7tngnGwS0UqIQ==" }, "es6-promise": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.2.tgz", - "integrity": "sha512-LSas5vsuA6Q4nEdf9wokY5/AJYXry98i0IzXsv49rYsgDGDNDPbqAYR1Pe23iFxygfbGZNR/5VrHXBCh2BhvUQ==" + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", + "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" }, "escape-string-regexp": { "version": "1.0.5", @@ -267,8 +254,7 @@ "get-func-name": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=" }, "glob": { "version": "7.1.2", @@ -286,8 +272,7 @@ "growl": { "version": "1.10.3", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", - "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==", - "dev": true + "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==" }, "has-ansi": { "version": "2.0.0", @@ -305,14 +290,12 @@ "he": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", - "dev": true + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" }, "homedir-polyfill": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", - "dev": true, "requires": { "parse-passwd": "1.0.0" } @@ -348,8 +331,7 @@ "make-error": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.2.tgz", - "integrity": "sha512-l9ra35l5VWLF24y75Tg8XgfGLX0ueRhph118WKM6H5denx4bB5QF59+4UAm9oJ2qsPQZas/CQUDdtDdfvYHBdQ==", - "dev": true + "integrity": "sha512-l9ra35l5VWLF24y75Tg8XgfGLX0ueRhph118WKM6H5denx4bB5QF59+4UAm9oJ2qsPQZas/CQUDdtDdfvYHBdQ==" }, "minimatch": { "version": "3.0.4", @@ -362,14 +344,12 @@ "minimist": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, "requires": { "minimist": "0.0.8" } @@ -378,7 +358,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.0.0.tgz", "integrity": "sha512-ukB2dF+u4aeJjc6IGtPNnJXfeby5d4ZqySlIBT0OEyva/DrMjVm5HkQxKnHDLKEfEQBsEnwTg9HHhtPHJdTd8w==", - "dev": true, "requires": { "browser-stdout": "1.3.0", "commander": "2.11.0", @@ -395,20 +374,17 @@ "commander": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", - "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", - "dev": true + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==" }, "diff": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz", - "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==", - "dev": true + "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==" }, "supports-color": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", - "dev": true, "requires": { "has-flag": "2.0.0" } @@ -435,8 +411,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "once": { "version": "1.4.0", @@ -449,8 +424,7 @@ "parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" }, "path-is-absolute": { "version": "1.0.1", @@ -465,8 +439,7 @@ "pathval": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", - "dev": true + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=" }, "require_optional": { "version": "1.0.1", @@ -498,14 +471,12 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "source-map-support": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.1.tgz", "integrity": "sha512-EZNecLNrsdRk9fcdOcjjy+Z/id7cr68sdmsYtR1gA45oQ81Ccea0UvM7DdSRblO0Ie5zWX31bvJTC7Y3QZVujg==", - "dev": true, "requires": { "source-map": "0.6.1" } @@ -526,14 +497,12 @@ "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" }, "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "supports-color": { "version": "2.0.0", @@ -544,7 +513,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-4.1.0.tgz", "integrity": "sha512-xcZH12oVg9PShKhy3UHyDmuDLV3y7iKwX25aMVPt1SIXSuAfWkFiGPEkg+th8R4YKW/QCxDoW7lJdb15lx6QWg==", - "dev": true, "requires": { "arrify": "1.0.1", "chalk": "2.3.0", @@ -561,8 +529,7 @@ "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" } } }, @@ -570,7 +537,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", "integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==", - "dev": true, "requires": { "@types/strip-bom": "3.0.0", "@types/strip-json-comments": "0.0.30", @@ -621,20 +587,17 @@ "type-detect": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.6.tgz", - "integrity": "sha512-qZ3bAurt2IXGPR3c57PyaSYEnQiLRwPeS60G9TahElBZsdOABo+iKYch/PhRjSTZJ5/DF08x43XMt9qec2g3ig==", - "dev": true + "integrity": "sha512-qZ3bAurt2IXGPR3c57PyaSYEnQiLRwPeS60G9TahElBZsdOABo+iKYch/PhRjSTZJ5/DF08x43XMt9qec2g3ig==" }, "typescript": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.6.2.tgz", - "integrity": "sha1-PFtv1/beCRQmkCfwPAlGdY92c6Q=", - "dev": true + "integrity": "sha1-PFtv1/beCRQmkCfwPAlGdY92c6Q=" }, "v8flags": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.0.1.tgz", "integrity": "sha1-3Oj8N5wX2fLJ6e142JzgAFKxt2s=", - "dev": true, "requires": { "homedir-polyfill": "1.0.1" } @@ -647,8 +610,7 @@ "yn": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", - "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=", - "dev": true + "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=" } } } diff --git a/package.json b/package.json index 6d1c0ab..04f9c74 100644 --- a/package.json +++ b/package.json @@ -8,10 +8,12 @@ "mongodb", "gridfs", "native-promise", + "gridFSBucket", + "nodejs", "es6", "typescript" ], - "version": "2.1.0", + "version": "3.0.0", "devDependencies": { "@types/chai": "^4.1.1", "@types/mocha": "^2.2.46", diff --git a/src/GridFSPromise.d.ts b/src/GridFSPromise.d.ts index 7e231b4..dfe198b 100644 --- a/src/GridFSPromise.d.ts +++ b/src/GridFSPromise.d.ts @@ -33,10 +33,10 @@ export declare class GridFSPromise { * Save the File from the GridFs to the filesystem and get the Path back * @param {string} id * @param {string} fileName - * @param filePath + * @param {string} filePath * @return {Promise} */ - getFile(id: string, fileName: string, filePath?: string): Promise; + getFile(id: string, fileName?: string, filePath?: string): Promise; /** * Get a single Object * @param {string} id diff --git a/src/GridFSPromise.js b/src/GridFSPromise.js index 90140ed..ead0477 100644 --- a/src/GridFSPromise.js +++ b/src/GridFSPromise.js @@ -18,7 +18,7 @@ var GridFSPromise = /** @class */ (function () { this.connectionUrl = mongoUrl; this.mongoClientOptions = mongoOptions; this.bucketName = bucketName || "fs"; - this.basePath = basePath || __dirname; + this.basePath = basePath || __dirname + "/../cache"; } /** * Returns a stream of a file from the GridFS. @@ -48,12 +48,11 @@ var GridFSPromise = /** @class */ (function () { * Save the File from the GridFs to the filesystem and get the Path back * @param {string} id * @param {string} fileName - * @param filePath + * @param {string} filePath * @return {Promise} */ GridFSPromise.prototype.getFile = function (id, fileName, filePath) { var _this = this; - if (filePath === void 0) { filePath = __dirname; } return new es6_promise_1.Promise(function (resolve, reject) { _this.connectDB().then(function (client) { var connection = client.db(_this.databaseName); @@ -62,13 +61,25 @@ var GridFSPromise = /** @class */ (function () { if (!result) { throw new Error("Object not found"); } + if (!fileName) { + fileName = result[0].filename; + } + if (!filePath) { + filePath = ""; + } + if (_this.basePath.charAt(_this.basePath.length - 1) !== "/") { + filePath += "/"; + } + if (!fs.existsSync("" + _this.basePath + filePath)) { + throw new Error("Path not found"); + } bucket.openDownloadStream(new bson_1.ObjectID(id)) .once("error", function (error) { reject(error); - }).once("finish", function () { - resolve(_this.basePath.concat("" + filePath + fileName)); + }).once("end", function () { + resolve("" + _this.basePath + filePath + fileName); }) - .pipe(fs.createWriteStream(_this.basePath.concat("" + filePath + fileName))); + .pipe(fs.createWriteStream("" + _this.basePath + filePath + fileName)); }); }).catch(function (err) { reject(err); diff --git a/src/GridFSPromise.js.map b/src/GridFSPromise.js.map index c3cf8b7..3c71d7a 100644 --- a/src/GridFSPromise.js.map +++ b/src/GridFSPromise.js.map @@ -1 +1 @@ -{"version":3,"file":"GridFSPromise.js","sourceRoot":"","sources":["GridFSPromise.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"GridFSPromise.js","sourceRoot":"","sources":["GridFSPromise.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/GridFSPromise.ts b/src/GridFSPromise.ts index 88a21bb..5683d5e 100644 --- a/src/GridFSPromise.ts +++ b/src/GridFSPromise.ts @@ -40,7 +40,7 @@ export class GridFSPromise { this.bucketName = bucketName || "fs"; - this.basePath = basePath || __dirname; + this.basePath = basePath || `${__dirname}/../cache`; } @@ -73,10 +73,10 @@ export class GridFSPromise { * Save the File from the GridFs to the filesystem and get the Path back * @param {string} id * @param {string} fileName - * @param filePath + * @param {string} filePath * @return {Promise} */ - public getFile(id: string, fileName: string, filePath: string = __dirname): Promise { + public getFile(id: string, fileName?: string, filePath?: string): Promise { return new Promise((resolve, reject) => { @@ -90,13 +90,29 @@ export class GridFSPromise { throw new Error("Object not found"); } + if (!fileName) { + fileName = result[0].filename; + } + + if (!filePath) { + filePath = ""; + } + + if (this.basePath.charAt(this.basePath.length - 1) !== "/") { + filePath += "/"; + } + + if (!fs.existsSync(`${this.basePath}${filePath}`)) { + throw new Error("Path not found"); + } + bucket.openDownloadStream(new ObjectID(id)) .once("error", (error) => { reject(error); - }).once("finish", () => { - resolve(this.basePath.concat(`${filePath}${fileName}`)); - }) - .pipe(fs.createWriteStream(this.basePath.concat(`${filePath}${fileName}`))); + }).once("end", () => { + resolve(`${this.basePath}${filePath}${fileName}`); + }) + .pipe(fs.createWriteStream(`${this.basePath}${filePath}${fileName}`)); }); }).catch((err) => { diff --git a/tests/GridFsPromiseTest.js b/tests/GridFsPromiseTest.js index 45a0dd3..10499dc 100644 --- a/tests/GridFsPromiseTest.js +++ b/tests/GridFsPromiseTest.js @@ -1,11 +1,57 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); +var assert = require("assert"); +var assert_1 = require("assert"); // if you used the '@types/mocha' method to install mocha type definitions, uncomment the following line require("mocha"); var GridFSPromise_1 = require("../src/GridFSPromise"); -describe("Hello function", function () { - it("should return hello world", function () { - var gridFSPromise = new GridFSPromise_1.GridFSPromise("mongodb://localhost:27017", "gridfs", {}, __dirname, "test"); +describe("GetFile", function () { + it("should get FilePath", function () { + var gridFSPromise = new GridFSPromise_1.GridFSPromise("mongodb://localhost:27017", "tikki", {}, "attachments", __dirname + "/../cache"); + return gridFSPromise.getFile("5a2653f4b908cd7b40e385d3").then(function (result) { + assert.equal(result, __dirname + "/../cache/203857-76.pdf"); + }).catch(function (error) { + assert_1.fail(error); + }); + }); + // it("should get FilePath without path", () => { + // const gridFSPromise = new GridFSPromise("mongodb://localhost:27017", + // "tikki", {}, + // "attachments"); + // + // return gridFSPromise.getFile("5a2653f4b908cd7b40e385d3").then((result) => { + // assert.equal(result, `${__dirname}/../cache/203857-76.pdf`); + // }).catch((error) => { + // fail(error); + // }); + // + // }); + it("should get FilePath with extra /", function () { + var gridFSPromise = new GridFSPromise_1.GridFSPromise("mongodb://localhost:27017", "tikki", {}, "attachments", __dirname + "/../cache/"); + return gridFSPromise.getFile("5a2653f4b908cd7b40e385d3").then(function (result) { + assert.equal(result, __dirname + "/../cache/203857-76.pdf"); + }).catch(function (error) { + assert_1.fail(error); + }); + }); + it("should return invalid Path", function () { + var gridFSPromise = new GridFSPromise_1.GridFSPromise("mongodb://localhost:27017", "tikki", {}, "attachments", __dirname + "/test"); + return gridFSPromise.getFile("5a2653f4b908cd7b40e385d3").then(function (result) { + assert.fail("Should not be here"); + }).catch(function (error) { + assert.deepEqual(error, new Error("Path not found")); + }); + }); +}); +describe("GetObject", function () { + it("should get FileObject", function () { + var gridFSPromise = new GridFSPromise_1.GridFSPromise("mongodb://localhost:27017", "tikki", {}, "attachments", __dirname); + return gridFSPromise.getObject("5a2653f4b908cd7b40e385d3").then(function (result) { + assert.equal(result.filename, "203857-76.pdf"); + assert.equal(result.contentType, "application/pdf"); + }).catch(function (error) { + assert_1.fail(error); + }); }); }); //# sourceMappingURL=GridFsPromiseTest.js.map \ No newline at end of file diff --git a/tests/GridFsPromiseTest.js.map b/tests/GridFsPromiseTest.js.map index 98fe2bb..67e3a2f 100644 --- a/tests/GridFsPromiseTest.js.map +++ b/tests/GridFsPromiseTest.js.map @@ -1 +1 @@ -{"version":3,"file":"GridFsPromiseTest.js","sourceRoot":"","sources":["GridFsPromiseTest.ts"],"names":[],"mappings":";;AACA,wGAAwG;AACxG,iBAAe;AACf,sDAAmD;AACnD,QAAQ,CAAC,gBAAgB,EAAE;IACvB,EAAE,CAAC,2BAA2B,EAAE;QAC5B,IAAM,aAAa,GAAG,IAAI,6BAAa,CAAC,2BAA2B,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAG1G,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"GridFsPromiseTest.js","sourceRoot":"","sources":["GridFsPromiseTest.ts"],"names":[],"mappings":";;AAAA,+BAAiC;AACjC,iCAA4B;AAE5B,wGAAwG;AACxG,iBAAe;AACf,sDAAmD;AACnD,QAAQ,CAAC,SAAS,EAAE;IAEhB,EAAE,CAAC,qBAAqB,EAAE;QACtB,IAAM,aAAa,GAAG,IAAI,6BAAa,CAAC,2BAA2B,EAC/C,OAAO,EAAE,EAAE,EACX,aAAa,EAAK,SAAS,cAAW,CAAC,CAAC;QAE5D,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,UAAC,MAAM;YACjE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAM,SAAS,4BAAyB,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAC,KAAK;YACZ,aAAI,CAAC,KAAK,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;IAEP,CAAC,CAAC,CAAC;IAEH,iDAAiD;IACjD,2EAA2E;IAC3E,uBAAuB;IACvB,0BAA0B;IAC1B,EAAE;IACF,kFAAkF;IAClF,uEAAuE;IACvE,4BAA4B;IAC5B,uBAAuB;IACvB,UAAU;IACV,EAAE;IACF,MAAM;IAEN,EAAE,CAAC,kCAAkC,EAAE;QACnC,IAAM,aAAa,GAAG,IAAI,6BAAa,CAAC,2BAA2B,EAC/D,OAAO,EACP,EAAE,EACF,aAAa,EACV,SAAS,eAAY,CAAC,CAAC;QAE9B,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,UAAC,MAAM;YACjE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAM,SAAS,4BAAyB,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAC,KAAK;YACX,aAAI,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IAEP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE;QAC7B,IAAM,aAAa,GAAG,IAAI,6BAAa,CAAC,2BAA2B,EAC/D,OAAO,EAAE,EAAE,EACX,aAAa,EACb,SAAS,GAAG,OAAO,CAAC,CAAC;QAEzB,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,UAAC,MAAM;YACjE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAC,KAAK;YACX,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IAEP,CAAC,CAAC,CAAC;AAEP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,WAAW,EAAE;IAElB,EAAE,CAAC,uBAAuB,EAAE;QACxB,IAAM,aAAa,GAAG,IAAI,6BAAa,CAAC,2BAA2B,EAC/D,OAAO,EAAE,EAAE,EACX,aAAa,EAAE,SAAS,CAAC,CAAC;QAE9B,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,UAAC,MAAM;YACnE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAG,eAAe,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAG,iBAAiB,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC,KAAK,CAAC,UAAC,KAAK;YACX,aAAI,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IAEP,CAAC,CAAC,CAAC;AAEP,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/tests/GridFsPromiseTest.ts b/tests/GridFsPromiseTest.ts index 73bb951..9421b91 100644 --- a/tests/GridFsPromiseTest.ts +++ b/tests/GridFsPromiseTest.ts @@ -1,11 +1,82 @@ +import * as assert from "assert"; +import {fail} from "assert"; import { expect } from "chai"; // if you used the '@types/mocha' method to install mocha type definitions, uncomment the following line import "mocha"; import {GridFSPromise} from "../src/GridFSPromise"; -describe("Hello function", () => { - it("should return hello world", () => { - const gridFSPromise = new GridFSPromise("mongodb://localhost:27017", "gridfs", {}, __dirname, "test"); +describe("GetFile", () => { + it("should get FilePath", () => { + const gridFSPromise = new GridFSPromise("mongodb://localhost:27017", + "tikki", {}, + "attachments", `${__dirname}/../cache`); + + return gridFSPromise.getFile("5a2653f4b908cd7b40e385d3").then((result) => { + assert.equal(result , `${__dirname}/../cache/203857-76.pdf`); + }).catch((error) => { + fail(error); + }); + + }); + + // it("should get FilePath without path", () => { + // const gridFSPromise = new GridFSPromise("mongodb://localhost:27017", + // "tikki", {}, + // "attachments"); + // + // return gridFSPromise.getFile("5a2653f4b908cd7b40e385d3").then((result) => { + // assert.equal(result, `${__dirname}/../cache/203857-76.pdf`); + // }).catch((error) => { + // fail(error); + // }); + // + // }); + + it("should get FilePath with extra /", () => { + const gridFSPromise = new GridFSPromise("mongodb://localhost:27017", + "tikki", + {}, + "attachments", + `${__dirname}/../cache/`); + + return gridFSPromise.getFile("5a2653f4b908cd7b40e385d3").then((result) => { + assert.equal(result , `${__dirname}/../cache/203857-76.pdf`); + }).catch((error) => { + fail(error); + }); + + }); + + it("should return invalid Path", () => { + const gridFSPromise = new GridFSPromise("mongodb://localhost:27017", + "tikki", {}, + "attachments", + __dirname + "/test"); + + return gridFSPromise.getFile("5a2653f4b908cd7b40e385d3").then((result) => { + assert.fail("Should not be here"); + }).catch((error) => { + assert.deepEqual(error, new Error("Path not found")); + }); }); + +}); + +describe("GetObject", () => { + + it("should get FileObject", () => { + const gridFSPromise = new GridFSPromise("mongodb://localhost:27017", + "tikki", {}, + "attachments", __dirname); + + return gridFSPromise.getObject("5a2653f4b908cd7b40e385d3").then((result) => { + assert.equal(result.filename , "203857-76.pdf"); + assert.equal(result.contentType , "application/pdf"); + }).catch((error) => { + fail(error); + }); + + }); + });