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