Socket
Socket
Sign inDemoInstall

node-gdrive

Package Overview
Dependencies
129
Maintainers
1
Versions
20
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.17 to 0.0.18

17

package.json

@@ -5,3 +5,3 @@ {

"homepage": "https://github.com/khoazero123/node-gdrive",
"version": "0.0.17",
"version": "0.0.18",
"main": "./src/index.js",

@@ -38,19 +38,16 @@ "bin": {

"dependencies": {
"async": "~3.1.1",
"async-foreach": "~0.1.3",
"axios": "^0.19.2",
"async": "~3.2.2",
"chalk": "~3.0.0",
"debug": "~4.1.1",
"debug": "^4.3.4",
"express": "^4.17.1",
"filesize": "~6.0.1",
"googleapis": "^47.0.0",
"googleapis": "^108.0.0",
"lodash": "~4.17.15",
"md5": "^2.2.1",
"moment": "~2.24.0",
"nconf": "^0.10.0",
"moment": "~2.29.4",
"open": "~7.0.2",
"request": "~2.88.0",
"p-map": "^4",
"server-destroy": "^1.0.1",
"streamify": "~1.0.0",
"yargs": "~15.1.0"
"yargs": "^17.6.0"
},

@@ -57,0 +54,0 @@ "scripts": {

@@ -205,2 +205,3 @@ const chalk = require("chalk");

}
writeStdErr(data, options = {update: false}) {

@@ -217,3 +218,2 @@ if (this.options.stdout) {

// module.exports = new Client();
module.exports = Client;

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

const async = require("async");
const fs = require("fs");
const async = require('async');
const fs = require('fs');
const path = require("path");
const {throttle} = require("lodash");
const forEach = require("async-foreach").forEach;
const filesize = require("filesize");
const uuid = require("uuid");
const Client = require("./Client");
const util = require("./util");
const pMap = require('p-map');
const filesize = require('filesize');
const uuid = require('uuid');
const Client = require('./Client');
const util = require('./util');

@@ -16,3 +16,3 @@ class Drive extends Client {

this.drive = this.google.drive({
version: "v3",
version: 'v3',
auth: this.client.oAuth2Client

@@ -22,12 +22,16 @@ });

list(folderId, options = {}) {
async list(folderId, options = {}) {
const self = this;
const query = {
pageSize: 10,
fields: 'nextPageToken, files(id, name)',
};
if (folderId) {
query.q = `'${folderId}' in parents`
}
return new Promise((resolve, reject) => {
self.drive.files.list({
pageSize: 10,
fields: 'nextPageToken, files(id, name)',
}, (err, res) => {
self.drive.files.list(query, (err, res) => {
if (err) return console.log('The API returned an error: ' + err);
const files = res.data.files;
resolve(files);
resolve(files);
});

@@ -37,34 +41,18 @@ });

upload(distPath, options = {}) {
var self = this;
return new Promise((resolve, reject) => {
async upload(distPath, options = {}) {
const self = this;
return new Promise(async (resolve, reject) => {
if (!fs.existsSync(distPath)) {
let message = "Path not found: " + distPath;
let message = 'Path not found: ' + distPath;
self.writeStdErr(message + "\n");
if (!this.options.cli) {
self.emit("error", message);
self.emit('error', message);
}
return !this.options.cli && reject(new Error(message));
} else if(fs.lstatSync(distPath).isDirectory()) { // upload folder
util.getFiles(distPath).then(files => {
// console.log('Files:',files);
forEach(files, function(filePath) {
var done = this.async();
// const filePath = path.join(distPath, fileName);
console.log("filePath:", filePath);
var promise = self.uploadFile(filePath, self.options).then(result => {
console.error(result);
}).catch(err => {
console.error(err);
process.exit(1);
});
Promise.all([promise.catch(error => {return error;})]).then(function(values) {
console.log("Promise.all: self.uploadFile:", values);
done();
});
}, function (notAborted, files) {
});
// TODO: create folder
util.getFiles(distPath).then(async (files) => {
pMap(files, async (filePath) => {
return await self.uploadFile(filePath, self.options);
}, {concurrency: 2});
}).catch(err => {

@@ -82,8 +70,7 @@ console.error(err);

this.options = Object.assign({}, this.options, options);
var self = this;
// console.log(this.options);process.exit(1);
var promise = new Promise((resolve, reject) => {
const self = this;
const promise = new Promise((resolve, reject) => {
const fileSize = fs.statSync(filePath).size;
var requestBody = {
const requestBody = {
name: this.options.name || path.basename(filePath)

@@ -115,3 +102,3 @@ };

const percent = ((evt.bytesRead / fileSize) * 100).toFixed(2);
self.emit("progress", {
self.emit('progress', {
progress: percent,

@@ -122,7 +109,7 @@ bytesRead: evt.bytesRead,

self.handlePrintProgress(
"Uploading " +
'Uploading ' +
Math.round(percent) +
"% " +
'% ' +
(filesize(evt.bytesRead, { base: 10, round: 2 }) +
"/" +
'/' +
filesize(fileSize, { base: 10 }))

@@ -133,3 +120,3 @@ );

if (err) {
self.emit("error", err);
self.emit('error', err);
self.write("\n"+err.message+"\n");

@@ -139,3 +126,3 @@ return reject(err);

let file = data.data;
self.emit("done", file);
self.emit('done', file);
self.write(`\nUploaded ${file.id}\n`);

@@ -166,3 +153,3 @@ var promises = [];

}
self.write("Deleted file " + filePath+ "\n");
self.write('Deleted file ' + filePath+ '\n');
});

@@ -179,20 +166,20 @@ });

share(fileId, permissions = [{ type: "anyone", role: "reader" }]) {
share(fileId, permissions = [{ type: 'anyone', role: 'reader' }]) {
const self = this;
return new Promise((resolve, reject) => {
/* var permissions = [{
type: "user",
role: "writer",
emailAddress: "user@example.com"
type: 'user',
role: 'writer',
emailAddress: 'user@example.com'
}, {
type: "domain",
role: "writer",
domain: "example.com"
type: 'domain',
role: 'writer',
domain: 'example.com'
}]; */
if(!permissions || permissions === true) {
permissions = [{ type: "anyone", role: "reader" }];
permissions = [{ type: 'anyone', role: 'reader' }];
} else if(typeof permissions == 'string') {
permissions = [{
type: "user",
role: "reader",
type: 'user',
role: 'reader',
emailAddress: permissions // is email address

@@ -209,3 +196,3 @@ }];

fileId: fileId,
fields: "id"
fields: 'id'
},

@@ -237,3 +224,3 @@ function(err, res) {

self.drive.files.get(
{ fileId, fields: "*" }, async (err, res) => {
{ fileId, fields: '*' }, async (err, res) => {
if(err) {

@@ -245,3 +232,3 @@ return reject(err);

if(options.randomFileName) {
filePath = path.join(process.cwd(), uuid()+".bin");
filePath = path.join(process.cwd(), uuid()+'.bin');
}

@@ -259,3 +246,3 @@ if(options.output) {

let parameters = { responseType: "stream" };
let parameters = { responseType: 'stream' };
let stats = {size: 0};

@@ -265,5 +252,5 @@ if (fs.existsSync(filePath)) {

if(stats.size == file.size) {
self.write('File '+filePath+ ' exists!'+"\n");
self.write(`File ${filePath} exists!\n`);
if(!options.force) {
self.emit("done", filePath);
self.emit('done', filePath);
return resolve(filePath);

@@ -273,5 +260,5 @@ }

parameters.headers = {
Range: "bytes=" + stats.size + "-" + file.size
Range: 'bytes=' + stats.size + '-' + file.size
};
self.write("Resume at bytes " + filesize(stats.size)+"\n");
self.write(`Resume at bytes ${filesize(stats.size)}\n`);
}

@@ -288,17 +275,17 @@ }

res = await self.drive.files.get(
{ fileId, alt: "media" },
parameters ? parameters : { responseType: "stream" }
{ fileId, alt: 'media' },
parameters ? parameters : { responseType: 'stream' }
);
res.data
.on("end", () => {
.on('end', () => {
self.write("\nDone downloading file.\n");
self.emit("done", filePath);
self.emit('done', filePath);
resolve(filePath);
})
.on("error", err => {
.on('error', err => {
self.write("\nError downloading file.\n");
self.emit("error", err);
self.emit('error', err);
reject(err);
})
.on("data", /* throttle( */d => {
.on('data', /* throttle( */d => {
progress += d.length;

@@ -309,3 +296,3 @@ const percent = ((progress / file.size) * 100).toFixed(2);

self.handlePrintProgress(message);
self.emit("progress", {
self.emit('progress', {
progress: percent,

@@ -312,0 +299,0 @@ bytesRead: progress,

@@ -6,3 +6,2 @@ const { promisify } = require("util");

const readdir = promisify(fs.readdir);
const rename = promisify(fs.rename);
const stat = promisify(fs.stat);

@@ -9,0 +8,0 @@

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc