upgrade check connections
This commit is contained in:
parent
f2845cdcbf
commit
ee4394873b
@ -320,12 +320,12 @@ export class FakeFsAzureBlobStorage extends FakeFs {
|
||||
// if we can walk, we can connect
|
||||
try {
|
||||
await this.walkPartial();
|
||||
return true;
|
||||
} catch (err) {
|
||||
console.debug(err);
|
||||
callbackFunc?.(err);
|
||||
return false;
|
||||
}
|
||||
return await this.checkConnectCommonOps(callbackFunc);
|
||||
}
|
||||
|
||||
async getUserDisplayName(): Promise<string> {
|
||||
|
||||
@ -892,12 +892,12 @@ export class FakeFsBox extends FakeFs {
|
||||
// if we can init, we can connect
|
||||
try {
|
||||
await this._init();
|
||||
return true;
|
||||
} catch (err) {
|
||||
console.debug(err);
|
||||
callbackFunc?.(err);
|
||||
return false;
|
||||
}
|
||||
return await this.checkConnectCommonOps(callbackFunc);
|
||||
}
|
||||
async getUserDisplayName(): Promise<string> {
|
||||
throw new Error("Method not implemented.");
|
||||
|
||||
@ -728,12 +728,12 @@ export class FakeFsGoogleDrive extends FakeFs {
|
||||
// if we can init, we can connect
|
||||
try {
|
||||
await this._init();
|
||||
return true;
|
||||
} catch (err) {
|
||||
console.debug(err);
|
||||
callbackFunc?.(err);
|
||||
return false;
|
||||
}
|
||||
return await this.checkConnectCommonOps(callbackFunc);
|
||||
}
|
||||
|
||||
async getUserDisplayName(): Promise<string> {
|
||||
|
||||
@ -555,12 +555,12 @@ export class FakeFsKoofr extends FakeFs {
|
||||
// if we can init, we can connect
|
||||
try {
|
||||
await this._init();
|
||||
return true;
|
||||
} catch (err) {
|
||||
console.debug(err);
|
||||
callbackFunc?.(err);
|
||||
return false;
|
||||
}
|
||||
return await this.checkConnectCommonOps(callbackFunc);
|
||||
}
|
||||
|
||||
async getUserDisplayName(): Promise<string> {
|
||||
|
||||
@ -916,12 +916,15 @@ export class FakeFsOnedriveFull extends FakeFs {
|
||||
async checkConnect(callbackFunc?: any): Promise<boolean> {
|
||||
try {
|
||||
const k = await this.getUserDisplayName();
|
||||
return k !== "<unknown display name>";
|
||||
if (k === "<unknown display name>") {
|
||||
throw Error(`unknown display name!`);
|
||||
}
|
||||
} catch (err) {
|
||||
console.debug(err);
|
||||
callbackFunc?.(err);
|
||||
return false;
|
||||
}
|
||||
return await this.checkConnectCommonOps(callbackFunc);
|
||||
}
|
||||
|
||||
async getUserDisplayName() {
|
||||
|
||||
@ -604,12 +604,12 @@ export class FakeFsPCloud extends FakeFs {
|
||||
// if we can init, we can connect
|
||||
try {
|
||||
await this._init();
|
||||
return true;
|
||||
} catch (err) {
|
||||
console.debug(err);
|
||||
callbackFunc?.(err);
|
||||
return false;
|
||||
}
|
||||
return await this.checkConnectCommonOps(callbackFunc);
|
||||
}
|
||||
|
||||
async getUserDisplayName(): Promise<string> {
|
||||
|
||||
@ -480,12 +480,12 @@ export class FakeFsYandexDisk extends FakeFs {
|
||||
// if we can init, we can connect
|
||||
try {
|
||||
await this._init();
|
||||
return true;
|
||||
} catch (err) {
|
||||
console.debug(err);
|
||||
callbackFunc?.(err);
|
||||
return false;
|
||||
}
|
||||
return await this.checkConnectCommonOps(callbackFunc);
|
||||
}
|
||||
|
||||
async getUserDisplayName(): Promise<string> {
|
||||
|
||||
45
src/fsAll.ts
45
src/fsAll.ts
@ -1,3 +1,5 @@
|
||||
import isEqual from "lodash/isEqual";
|
||||
import { nanoid } from "nanoid";
|
||||
import type { Entity } from "./baseTypes";
|
||||
|
||||
export abstract class FakeFs {
|
||||
@ -16,6 +18,49 @@ export abstract class FakeFs {
|
||||
abstract rename(key1: string, key2: string): Promise<void>;
|
||||
abstract rm(key: string): Promise<void>;
|
||||
abstract checkConnect(callbackFunc?: any): Promise<boolean>;
|
||||
async checkConnectCommonOps(callbackFunc?: any) {
|
||||
try {
|
||||
console.info(`check connect: create folder`);
|
||||
const folderName = `rs-test-folder-${nanoid()}/`;
|
||||
await this.mkdir(folderName);
|
||||
// await delay(3000);
|
||||
|
||||
console.info(`check connect: upload file`);
|
||||
const filename = `${folderName}/rs-test-file-${nanoid()}`;
|
||||
const ctime = Date.now();
|
||||
const mtime1 = Date.now();
|
||||
const content1 = new ArrayBuffer(100);
|
||||
await this.writeFile(filename, content1, mtime1, ctime);
|
||||
// await delay(3000);
|
||||
|
||||
console.info(`check connect: overwrite file`);
|
||||
const mtime2 = Date.now();
|
||||
const content2 = new ArrayBuffer(200);
|
||||
await this.writeFile(filename, content2, mtime2, ctime);
|
||||
// await delay(3000);
|
||||
|
||||
console.info(`check connect: download file`);
|
||||
const content3 = await this.readFile(filename);
|
||||
if (!isEqual(content2, content3)) {
|
||||
throw Error(`downloaded file is not equal with uploaded file!`);
|
||||
}
|
||||
// await delay(3000);
|
||||
|
||||
console.info(`check connect: delete file`);
|
||||
await this.rm(filename);
|
||||
// await delay(3000);
|
||||
|
||||
console.info(`check connect: delete folder`);
|
||||
await this.rm(folderName);
|
||||
// await delay(3000);
|
||||
|
||||
return true;
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
callbackFunc?.(err);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
abstract getUserDisplayName(): Promise<string>;
|
||||
abstract revokeAuth(): Promise<any>;
|
||||
abstract allowEmptyFile(): boolean;
|
||||
|
||||
@ -741,14 +741,15 @@ export class FakeFsDropbox extends FakeFs {
|
||||
await this._init();
|
||||
const results = await this._statFromRoot(`/${this.remoteBaseDir}`);
|
||||
if (results === undefined) {
|
||||
return false;
|
||||
throw Error(`cannot check root vault folder!`);
|
||||
}
|
||||
return true;
|
||||
} catch (err) {
|
||||
console.debug(err);
|
||||
callbackFunc?.(err);
|
||||
return false;
|
||||
}
|
||||
|
||||
return await this.checkConnectCommonOps(callbackFunc);
|
||||
}
|
||||
|
||||
async getUserDisplayName() {
|
||||
|
||||
@ -47,7 +47,7 @@ export class FakeFsMock extends FakeFs {
|
||||
}
|
||||
|
||||
async checkConnect(callbackFunc?: any): Promise<boolean> {
|
||||
return true;
|
||||
return await this.checkConnectCommonOps(callbackFunc);
|
||||
}
|
||||
|
||||
async getUserDisplayName(): Promise<string> {
|
||||
|
||||
@ -1036,12 +1036,16 @@ export class FakeFsOnedrive extends FakeFs {
|
||||
async checkConnect(callbackFunc?: any): Promise<boolean> {
|
||||
try {
|
||||
const k = await this.getUserDisplayName();
|
||||
return k !== "<unknown display name>";
|
||||
if (k === "<unknown display name>") {
|
||||
throw Error(`unknown display name!`);
|
||||
}
|
||||
} catch (err) {
|
||||
console.debug(err);
|
||||
callbackFunc?.(err);
|
||||
return false;
|
||||
}
|
||||
|
||||
return await this.checkConnectCommonOps(callbackFunc);
|
||||
}
|
||||
|
||||
async getUserDisplayName() {
|
||||
|
||||
14
src/fsS3.ts
14
src/fsS3.ts
@ -831,14 +831,11 @@ export class FakeFsS3 extends FakeFs {
|
||||
results.$metadata === undefined ||
|
||||
results.$metadata.httpStatusCode === undefined
|
||||
) {
|
||||
const err = "results or $metadata or httStatusCode is undefined";
|
||||
console.debug(err);
|
||||
if (callbackFunc !== undefined) {
|
||||
callbackFunc(err);
|
||||
}
|
||||
return false;
|
||||
throw Error("results or $metadata or httStatusCode is undefined");
|
||||
}
|
||||
if (results.$metadata.httpStatusCode !== 200) {
|
||||
throw Error(`not 200 httpStatusCode`);
|
||||
}
|
||||
return results.$metadata.httpStatusCode === 200;
|
||||
} catch (err: any) {
|
||||
console.debug(err);
|
||||
if (callbackFunc !== undefined) {
|
||||
@ -854,9 +851,10 @@ export class FakeFsS3 extends FakeFs {
|
||||
callbackFunc(err);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return await this.checkConnectCommonOps(callbackFunc);
|
||||
}
|
||||
|
||||
async getUserDisplayName(): Promise<string> {
|
||||
|
||||
@ -4,8 +4,6 @@ import { getReasonPhrase } from "http-status-codes/build/cjs/utils-functions";
|
||||
import chunk from "lodash/chunk";
|
||||
import cloneDeep from "lodash/cloneDeep";
|
||||
import flatten from "lodash/flatten";
|
||||
import isString from "lodash/isString";
|
||||
import { nanoid } from "nanoid";
|
||||
import { Platform, type RequestUrlParam, requestUrl } from "obsidian";
|
||||
import type {
|
||||
FileStat,
|
||||
@ -140,10 +138,10 @@ if (VALID_REQURL) {
|
||||
);
|
||||
}
|
||||
|
||||
import isEqual from "lodash/isEqual";
|
||||
// @ts-ignore
|
||||
// biome-ignore lint: we want to ts-ignore the next line
|
||||
import { AuthType, BufferLike, createClient } from "webdav/dist/web/index.js";
|
||||
import isEqual from "lodash/isEqual";
|
||||
|
||||
export const DEFAULT_WEBDAV_CONFIG = {
|
||||
address: "",
|
||||
@ -925,17 +923,15 @@ export class FakeFsWebdav extends FakeFs {
|
||||
await this._init();
|
||||
const results = await this._statFromRoot(`/${this.remoteBaseDir}/`);
|
||||
if (results === undefined) {
|
||||
const err = "results is undefined";
|
||||
console.error(err);
|
||||
callbackFunc?.(err);
|
||||
return false;
|
||||
throw Error("cannot stat root vault folder!");
|
||||
}
|
||||
return true;
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
callbackFunc?.(err);
|
||||
return false;
|
||||
}
|
||||
|
||||
return await this.checkConnectCommonOps(callbackFunc);
|
||||
}
|
||||
|
||||
async getUserDisplayName(): Promise<string> {
|
||||
|
||||
@ -252,12 +252,16 @@ export class FakeFsWebdis extends FakeFs {
|
||||
const k = await (
|
||||
await this._fetchCommand("GET", "PING/helloworld")
|
||||
).json();
|
||||
return isEqual(k, { PING: "helloworld" });
|
||||
if (!isEqual(k, { PING: "helloworld" })) {
|
||||
throw Error(`no correct ping response`);
|
||||
}
|
||||
} catch (err: any) {
|
||||
console.error(err);
|
||||
callbackFunc?.(err);
|
||||
return false;
|
||||
}
|
||||
return await this.checkConnectCommonOps(callbackFunc);
|
||||
// return true;
|
||||
}
|
||||
|
||||
async getUserDisplayName(): Promise<string> {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user