Comparing version 1.0.1 to 1.0.2
96
index.js
@@ -23,6 +23,6 @@ #!/usr/bin/env node | ||
const url = __importStar(require("url")); | ||
const googleapis_1 = require("googleapis"); | ||
const csv_parse_1 = __importDefault(require("csv-parse")); | ||
const csv_stringify_1 = __importDefault(require("csv-stringify")); | ||
const CLI_NAME = 'gsheetcli'; | ||
const googleapis_1 = require("googleapis"); | ||
const CLI_NAME = "gsheetcli"; | ||
function parseSpreadSheetURL(urlStr) { | ||
@@ -49,3 +49,3 @@ // Url { | ||
} | ||
const spreadSheetId = component.path.split('/')[3]; | ||
const spreadSheetId = component.path.split("/")[3]; | ||
if (!spreadSheetId) { | ||
@@ -72,5 +72,5 @@ throw new Error(`${CLI_NAME}: could not find spreadsheet ID from the path of URL ${urlStr}`); | ||
// Scopes can be specified either as an array or as a single, space-delimited string. | ||
scopes: ['https://www.googleapis.com/auth/spreadsheets'], | ||
scopes: ["https://www.googleapis.com/auth/spreadsheets"], | ||
}); | ||
const service = googleapis_1.google.sheets({ version: 'v4', auth }); | ||
const service = googleapis_1.google.sheets({ version: "v4", auth }); | ||
return service; | ||
@@ -81,12 +81,13 @@ }); | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const stringifier = csv_stringify_1.default(); | ||
stringifier.on('readable', () => { | ||
const row = stringifier.read(); | ||
process.stdout.write(row.toString()); | ||
process.stdout.on("close", () => { | ||
process.exit(0); | ||
}); | ||
process.stdout.on("end", () => { | ||
process.exit(0); | ||
}); | ||
const service = yield getService(); | ||
const range = parseSpreadSheetURL(process.argv[3]); | ||
const spreadsheet = yield service.spreadsheets.get({ | ||
'spreadsheetId': range.spreadSheetId, | ||
'includeGridData': false, | ||
spreadsheetId: range.spreadSheetId, | ||
includeGridData: false, | ||
}); | ||
@@ -97,3 +98,3 @@ if (!spreadsheet.data.sheets) { | ||
// getting sheet title for constructing range | ||
const sheetProperty = spreadsheet.data.sheets.find(sheet => sheet.properties ? sheet.properties.sheetId === range.sheetId : false); | ||
const sheetProperty = spreadsheet.data.sheets.find((sheet) => sheet.properties ? sheet.properties.sheetId === range.sheetId : false); | ||
if (!sheetProperty || !sheetProperty.properties) { | ||
@@ -104,9 +105,15 @@ return; | ||
const sheetData = yield service.spreadsheets.values.get({ | ||
'majorDimension': 'ROWS', | ||
'spreadsheetId': range.spreadSheetId, | ||
'range': finalRange, | ||
majorDimension: "ROWS", | ||
spreadsheetId: range.spreadSheetId, | ||
range: finalRange, | ||
}); | ||
for (const row of sheetData.data.values || []) { | ||
stringifier.write(row); | ||
} | ||
csv_stringify_1.default(sheetData.data.values || [], (err, output) => { | ||
if (err) { | ||
throw err; | ||
} | ||
if (output !== undefined) { | ||
process.stdout.write(output); | ||
process.stdout.end(); | ||
} | ||
}); | ||
}); | ||
@@ -117,4 +124,4 @@ } | ||
const rows = []; | ||
var parser = csv_parse_1.default({ 'relax_column_count': true }); | ||
parser.on('readable', () => { | ||
let parser = csv_parse_1.default({ relax_column_count: true }); | ||
parser.on("readable", () => { | ||
let row; | ||
@@ -125,8 +132,8 @@ while (row = parser.read()) { | ||
}); | ||
parser.on('end', () => __awaiter(this, void 0, void 0, function* () { | ||
parser.on("end", () => __awaiter(this, void 0, void 0, function* () { | ||
const service = yield getService(); | ||
const range = parseSpreadSheetURL(process.argv[3]); | ||
const spreadsheet = yield service.spreadsheets.get({ | ||
'spreadsheetId': range.spreadSheetId, | ||
'includeGridData': false, | ||
spreadsheetId: range.spreadSheetId, | ||
includeGridData: false, | ||
}); | ||
@@ -137,3 +144,3 @@ if (!spreadsheet.data.sheets) { | ||
// getting sheet title for constructing range | ||
const sheetProperty = spreadsheet.data.sheets.find(sheet => sheet.properties ? sheet.properties.sheetId === range.sheetId : false); | ||
const sheetProperty = spreadsheet.data.sheets.find((sheet) => sheet.properties ? sheet.properties.sheetId === range.sheetId : false); | ||
if (!sheetProperty || !sheetProperty.properties) { | ||
@@ -144,17 +151,18 @@ return; | ||
const resp = yield service.spreadsheets.values.update({ | ||
'range': finalRange, | ||
'spreadsheetId': range.spreadSheetId, | ||
'valueInputOption': 'RAW', | ||
'requestBody': { | ||
'majorDimension': 'ROWS', | ||
'values': rows, | ||
} | ||
range: finalRange, | ||
spreadsheetId: range.spreadSheetId, | ||
// valueInputOption: "RAW", | ||
valueInputOption: "USER_ENTERED", | ||
requestBody: { | ||
majorDimension: "ROWS", | ||
values: rows, | ||
}, | ||
}); | ||
console.log(`${resp.data.updatedCells} cells updated.`); | ||
})); | ||
parser.on('error', (err) => { | ||
parser.on("error", (err) => { | ||
console.error(err.message); | ||
}); | ||
// collecting | ||
process.stdin.on('readable', () => { | ||
process.stdin.on("readable", () => { | ||
let chunk; | ||
@@ -165,3 +173,3 @@ while (chunk = process.stdin.read()) { | ||
}); | ||
process.stdin.on('end', () => { | ||
process.stdin.on("end", () => { | ||
parser.end(); | ||
@@ -173,3 +181,3 @@ }); | ||
return __awaiter(this, void 0, void 0, function* () { | ||
console.error('not implemented :)'); | ||
console.error("not implemented :)"); | ||
}); | ||
@@ -195,4 +203,4 @@ } | ||
const subcommand = process.argv[2]; | ||
if (subcommand === 'get') { | ||
get().catch(err => { | ||
if (subcommand === "get") { | ||
get().catch((err) => { | ||
console.error(err.message); | ||
@@ -202,4 +210,4 @@ process.exit(1); | ||
} | ||
else if (subcommand === 'update') { | ||
update().catch(err => { | ||
else if (subcommand === "update") { | ||
update().catch((err) => { | ||
console.error(err.message); | ||
@@ -209,4 +217,4 @@ process.exit(1); | ||
} | ||
else if (subcommand === 'append') { | ||
append().catch(err => { | ||
else if (subcommand === "append") { | ||
append().catch((err) => { | ||
console.error(err.message); | ||
@@ -216,4 +224,4 @@ process.exit(1); | ||
} | ||
else if (subcommand === 'help' || subcommand === undefined) { | ||
help().catch(err => { | ||
else if (subcommand === "help" || subcommand === undefined) { | ||
help().catch((err) => { | ||
console.error(err.message); | ||
@@ -224,3 +232,3 @@ process.exit(1); | ||
else { | ||
error(subcommand).catch(err => { | ||
error(subcommand).catch((err) => { | ||
console.error(err.message); | ||
@@ -227,0 +235,0 @@ process.exit(1); |
110
index.ts
#!/usr/bin/env node | ||
import * as url from 'url'; | ||
import * as url from "url"; | ||
import {google} from 'googleapis'; | ||
import parse from 'csv-parse'; | ||
import stringify from 'csv-stringify'; | ||
import parse from "csv-parse"; | ||
import stringify from "csv-stringify"; | ||
import {google} from "googleapis"; | ||
const CLI_NAME = 'gsheetcli'; | ||
const CLI_NAME = "gsheetcli"; | ||
@@ -31,3 +31,3 @@ function parseSpreadSheetURL(urlStr: string) { | ||
} | ||
const spreadSheetId = component.path.split('/')[3]; | ||
const spreadSheetId = component.path.split("/")[3]; | ||
if (!spreadSheetId) { | ||
@@ -46,3 +46,3 @@ throw new Error(`${CLI_NAME}: could not find spreadsheet ID from the path of URL ${urlStr}`); | ||
range, | ||
} | ||
}; | ||
} | ||
@@ -55,5 +55,5 @@ | ||
// Scopes can be specified either as an array or as a single, space-delimited string. | ||
scopes: ['https://www.googleapis.com/auth/spreadsheets'], | ||
scopes: ["https://www.googleapis.com/auth/spreadsheets"], | ||
}); | ||
const service = google.sheets({version: 'v4', auth}); | ||
const service = google.sheets({version: "v4", auth}); | ||
return service; | ||
@@ -63,7 +63,8 @@ } | ||
async function get() { | ||
const stringifier = stringify(); | ||
process.stdout.on("close", () => { | ||
process.exit(0); | ||
}); | ||
stringifier.on('readable', () => { | ||
const row = stringifier.read(); | ||
process.stdout.write(row.toString()); | ||
process.stdout.on("end", () => { | ||
process.exit(0); | ||
}); | ||
@@ -74,4 +75,4 @@ | ||
const spreadsheet = await service.spreadsheets.get({ | ||
'spreadsheetId': range.spreadSheetId, | ||
'includeGridData': false, | ||
spreadsheetId: range.spreadSheetId, | ||
includeGridData: false, | ||
}); | ||
@@ -82,3 +83,3 @@ if (!spreadsheet.data.sheets) { | ||
// getting sheet title for constructing range | ||
const sheetProperty = spreadsheet.data.sheets.find(sheet => sheet.properties ? sheet.properties.sheetId === range.sheetId : false); | ||
const sheetProperty = spreadsheet.data.sheets.find((sheet) => sheet.properties ? sheet.properties.sheetId === range.sheetId : false); | ||
if (!sheetProperty || !sheetProperty.properties) { | ||
@@ -89,9 +90,15 @@ return; | ||
const sheetData = await service.spreadsheets.values.get({ | ||
'majorDimension': 'ROWS', | ||
'spreadsheetId': range.spreadSheetId, | ||
'range': finalRange, | ||
majorDimension: "ROWS", | ||
spreadsheetId: range.spreadSheetId, | ||
range: finalRange, | ||
}); | ||
for (const row of sheetData.data.values || []) { | ||
stringifier.write(row); | ||
} | ||
stringify(sheetData.data.values || [], (err, output) => { | ||
if (err) { | ||
throw err; | ||
} | ||
if (output !== undefined) { | ||
process.stdout.write(output); | ||
process.stdout.end(); | ||
} | ||
}); | ||
} | ||
@@ -102,5 +109,5 @@ | ||
var parser = parse({'relax_column_count': true}); | ||
let parser = parse({relax_column_count: true}); | ||
parser.on('readable', () => { | ||
parser.on("readable", () => { | ||
let row; | ||
@@ -112,8 +119,8 @@ while (row = parser.read()) { | ||
parser.on('end', async () => { | ||
parser.on("end", async () => { | ||
const service = await getService(); | ||
const range = parseSpreadSheetURL(process.argv[3]); | ||
const spreadsheet = await service.spreadsheets.get({ | ||
'spreadsheetId': range.spreadSheetId, | ||
'includeGridData': false, | ||
spreadsheetId: range.spreadSheetId, | ||
includeGridData: false, | ||
}); | ||
@@ -125,3 +132,3 @@ if (!spreadsheet.data.sheets) { | ||
const sheetProperty = spreadsheet.data.sheets.find( | ||
sheet => sheet.properties ? sheet.properties.sheetId === range.sheetId : false, | ||
(sheet) => sheet.properties ? sheet.properties.sheetId === range.sheetId : false, | ||
); | ||
@@ -133,9 +140,10 @@ if (!sheetProperty || !sheetProperty.properties) { | ||
const resp = await service.spreadsheets.values.update({ | ||
'range': finalRange, | ||
'spreadsheetId': range.spreadSheetId, | ||
'valueInputOption': 'RAW', | ||
'requestBody': { | ||
'majorDimension': 'ROWS', | ||
'values': rows, | ||
} | ||
range: finalRange, | ||
spreadsheetId: range.spreadSheetId, | ||
// valueInputOption: "RAW", | ||
valueInputOption: "USER_ENTERED", | ||
requestBody: { | ||
majorDimension: "ROWS", | ||
values: rows, | ||
}, | ||
}); | ||
@@ -145,3 +153,3 @@ console.log(`${resp.data.updatedCells} cells updated.`); | ||
parser.on('error', (err: Error) => { | ||
parser.on("error", (err: Error) => { | ||
console.error(err.message); | ||
@@ -151,5 +159,5 @@ }); | ||
// collecting | ||
process.stdin.on('readable', () => { | ||
process.stdin.on("readable", () => { | ||
let chunk; | ||
while(chunk = process.stdin.read()) { | ||
while (chunk = process.stdin.read()) { | ||
parser.write(chunk); | ||
@@ -159,3 +167,3 @@ } | ||
process.stdin.on('end', () => { | ||
process.stdin.on("end", () => { | ||
parser.end(); | ||
@@ -166,3 +174,3 @@ }); | ||
async function append() { | ||
console.error('not implemented :)'); | ||
console.error("not implemented :)"); | ||
} | ||
@@ -185,23 +193,23 @@ | ||
type SUBCOMMAND = 'get' | 'update' | 'append' | 'help'; | ||
type SUBCOMMAND = "get" | "update" | "append" | "help"; | ||
const subcommand = process.argv[2] as SUBCOMMAND | ||
const subcommand = process.argv[2] as SUBCOMMAND; | ||
if (subcommand === 'get') { | ||
get().catch(err => { | ||
if (subcommand === "get") { | ||
get().catch((err) => { | ||
console.error(err.message); | ||
process.exit(1); | ||
}); | ||
} else if (subcommand === 'update') { | ||
update().catch(err => { | ||
} else if (subcommand === "update") { | ||
update().catch((err) => { | ||
console.error(err.message); | ||
process.exit(1); | ||
}); | ||
} else if (subcommand === 'append') { | ||
append().catch(err => { | ||
} else if (subcommand === "append") { | ||
append().catch((err) => { | ||
console.error(err.message); | ||
process.exit(1); | ||
}); | ||
} else if (subcommand === 'help' || subcommand === undefined) { | ||
help().catch(err => { | ||
} else if (subcommand === "help" || subcommand === undefined) { | ||
help().catch((err) => { | ||
console.error(err.message); | ||
@@ -211,3 +219,3 @@ process.exit(1); | ||
} else { | ||
error(subcommand).catch(err => { | ||
error(subcommand).catch((err) => { | ||
console.error(err.message); | ||
@@ -214,0 +222,0 @@ process.exit(1); |
{ | ||
"name": "gsheetcli", | ||
"version": "1.0.1", | ||
"version": "1.0.2", | ||
"description": "Simple Google Sheets command line tools", | ||
@@ -12,4 +12,4 @@ "main": "index.js", | ||
"devDependencies": { | ||
"@types/node": "^10.12.18", | ||
"typescript": "^3.2.2" | ||
"@types/node": "^12.6.9", | ||
"typescript": "^3.5.3" | ||
}, | ||
@@ -19,3 +19,3 @@ "dependencies": { | ||
"csv-stringify": "^5.1.2", | ||
"googleapis": "^36.0.0" | ||
"googleapis": "^42.0.0" | ||
}, | ||
@@ -22,0 +22,0 @@ "bin": { |
22568
7
470
+ Addedagent-base@6.0.2(transitive)
+ Addedarrify@2.0.1(transitive)
+ Addedbase64-js@1.5.1(transitive)
+ Addedbignumber.js@9.1.2(transitive)
+ Addeddebug@4.4.0(transitive)
+ Addedfast-text-encoding@1.0.6(transitive)
+ Addedgaxios@2.3.4(transitive)
+ Addedgcp-metadata@3.5.0(transitive)
+ Addedgoogle-auth-library@5.10.1(transitive)
+ Addedgoogle-p12-pem@2.0.5(transitive)
+ Addedgoogleapis@42.0.0(transitive)
+ Addedgoogleapis-common@3.2.2(transitive)
+ Addedgtoken@4.1.4(transitive)
+ Addedhttps-proxy-agent@5.0.1(transitive)
+ Addedis-stream@2.0.1(transitive)
+ Addedjson-bigint@0.3.1(transitive)
+ Addedjwa@2.0.0(transitive)
+ Addedjws@4.0.0(transitive)
+ Addedms@2.1.3(transitive)
+ Addedobject-inspect@1.13.4(transitive)
+ Addeduuid@7.0.3(transitive)
- Removedagent-base@4.3.0(transitive)
- Removedaxios@0.18.1(transitive)
- Removedes6-promise@4.2.8(transitive)
- Removedes6-promisify@5.0.0(transitive)
- Removedfollow-redirects@1.5.10(transitive)
- Removedgaxios@1.8.4(transitive)
- Removedgcp-metadata@0.7.0(transitive)
- Removedgoogle-auth-library@2.0.2(transitive)
- Removedgoogle-p12-pem@1.0.5(transitive)
- Removedgoogleapis@36.0.0(transitive)
- Removedgoogleapis-common@0.4.0(transitive)
- Removedgtoken@2.3.3(transitive)
- Removedhttps-proxy-agent@2.2.4(transitive)
- Removedis-buffer@2.0.5(transitive)
- Removedjwa@1.4.1(transitive)
- Removedjws@3.2.2(transitive)
- Removedobject-inspect@1.13.3(transitive)
- Removedpify@4.0.1(transitive)
- Removedretry-axios@0.3.2(transitive)
- Removedsemver@5.7.2(transitive)
- Removeduuid@3.4.0(transitive)
Updatedgoogleapis@^42.0.0