mirror of
https://github.com/vrtmrz/obsidian-livesync.git
synced 2026-08-26 21:37:05 +00:00
feat: configure Adaptive PostgREST journal remotes
This commit is contained in:
@@ -46,6 +46,16 @@ function serializeRemoteConfiguration(settings: ObsidianLiveSyncSettings): strin
|
||||
const configuration = defaultRemoteProviderRegistry.configurationFromSettings(type, settings);
|
||||
return defaultRemoteProviderRegistry.serialise(configuration);
|
||||
}
|
||||
|
||||
function describeRemoteConfiguration(uri: string): string {
|
||||
try {
|
||||
const configuration = defaultRemoteProviderRegistry.parse(uri);
|
||||
return defaultRemoteProviderRegistry.suggestName(configuration);
|
||||
} catch {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
function setEmojiButton(button: ButtonComponent, emoji: string, tooltip: string) {
|
||||
button.setButtonText(emoji);
|
||||
button.setTooltip(tooltip, { delay: 10, placement: "top" });
|
||||
|
||||
@@ -2,6 +2,7 @@ import {
|
||||
pickBucketSyncSettings,
|
||||
pickCouchDBSyncSettings,
|
||||
pickP2PSyncSettings,
|
||||
pickPostgRESTSyncSettings,
|
||||
pickWebDAVSyncSettings,
|
||||
} from "@vrtmrz/livesync-commonlib/compat/common/utils";
|
||||
import type { ObsidianLiveSyncSettings } from "@vrtmrz/livesync-commonlib/compat/common/types";
|
||||
@@ -17,6 +18,7 @@ export function syncActivatedRemoteSettings(
|
||||
activeConfigurationId: source.activeConfigurationId,
|
||||
...pickBucketSyncSettings(source),
|
||||
...pickWebDAVSyncSettings(source),
|
||||
...pickPostgRESTSyncSettings(source),
|
||||
...pickCouchDBSyncSettings(source),
|
||||
...pickP2PSyncSettings(source),
|
||||
});
|
||||
|
||||
@@ -3,6 +3,7 @@ import {
|
||||
DEFAULT_SETTINGS,
|
||||
REMOTE_COUCHDB,
|
||||
REMOTE_MINIO,
|
||||
REMOTE_POSTGREST,
|
||||
REMOTE_WEBDAV,
|
||||
} from "@vrtmrz/livesync-commonlib/compat/common/types";
|
||||
import { syncActivatedRemoteSettings } from "./remoteConfigBuffer";
|
||||
@@ -121,4 +122,35 @@ describe("syncActivatedRemoteSettings", () => {
|
||||
expect(target.journalFormat).toBe("adaptive-v1");
|
||||
expect(target.packReadPolicy).toBe("range");
|
||||
});
|
||||
|
||||
it("should copy the active PostgREST connection and fixed Adaptive protocol into the editing buffer", () => {
|
||||
const target = {
|
||||
...DEFAULT_SETTINGS,
|
||||
remoteType: REMOTE_COUCHDB,
|
||||
activeConfigurationId: "old-remote",
|
||||
postgrestActiveConnectionURI: "",
|
||||
expectedRepositoryId: "",
|
||||
journalFormat: "opaque-v1" as const,
|
||||
packReadPolicy: "range" as const,
|
||||
};
|
||||
const source = {
|
||||
...DEFAULT_SETTINGS,
|
||||
remoteType: REMOTE_POSTGREST,
|
||||
activeConfigurationId: "remote-postgrest",
|
||||
postgrestActiveConnectionURI:
|
||||
"sls+postgrest://vault-id-00000001:vault-credential@project.example/rest/v1?apiKey=publishable",
|
||||
expectedRepositoryId: "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
|
||||
journalFormat: "adaptive-v1" as const,
|
||||
packReadPolicy: "whole-pack" as const,
|
||||
};
|
||||
|
||||
syncActivatedRemoteSettings(target, source);
|
||||
|
||||
expect(target.remoteType).toBe(REMOTE_POSTGREST);
|
||||
expect(target.activeConfigurationId).toBe("remote-postgrest");
|
||||
expect(target.postgrestActiveConnectionURI).toBe(source.postgrestActiveConnectionURI);
|
||||
expect(target.expectedRepositoryId).toBe(source.expectedRepositoryId);
|
||||
expect(target.journalFormat).toBe("adaptive-v1");
|
||||
expect(target.packReadPolicy).toBe("whole-pack");
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user