@buttercup/googledrive-client
Version:
Basic client for Google Drive
58 lines (57 loc) • 1.77 kB
JavaScript
import { HotPatcher } from "hot-patcher";
import { request } from "./request.js";
import { createDirectory } from "./requests/createDirectory.js";
import { deleteFile } from "./requests/deleteFile.js";
import { getDirectoryContents, mapDirectoryContents } from "./requests/getDirectoryContents.js";
import { getFileContents } from "./requests/getFileContents.js";
import { putFileContents } from "./requests/putFileContents.js";
export class GoogleDriveClient {
constructor(token) {
this.__cache = {};
this.__token = token;
this.patcher = new HotPatcher();
this.patcher.patch("request", request);
}
async createDirectory(name, parentID) {
return createDirectory({
name,
parentID,
patcher: this.patcher,
token: this.__token
});
}
async deleteFile(id) {
await deleteFile({
id,
patcher: this.patcher,
token: this.__token
});
}
async getDirectoryContents(tree = true) {
return getDirectoryContents({
formTree: tree,
patcher: this.patcher,
token: this.__token
});
}
async getFileContents(id) {
return getFileContents({
id,
patcher: this.patcher,
token: this.__token
});
}
async mapDirectoryContents(path) {
return mapDirectoryContents(this.__token, this.patcher, this.__cache, path);
}
async putFileContents(contents, id, name, parentID) {
return putFileContents({
contents,
id: id ? id : undefined,
name,
parentID,
patcher: this.patcher,
token: this.__token
});
}
}