* Don't require auth for .ping * Finally introducing loggers * Remove file list caching from disk_space_primitives I don't think this is required anymore with the sync model * Simplification of space primitives and more tests * More reliable online status * Add .zed settings * Remove selfUpdate argument from `writeFile` no longer used - Add `sync` config schema and document sync options - Move sync config handling to client boot logic - Move BootConfig type to ui_types.ts - Remove sync env vars from server - Update documentation for sync and architecture * Improve sync logic and proxy routing for full sync state * Add BoxProxy for late-bound client and improve Lua boot - Add isMobile syscall for editor * Add concurrency to sync process and log indexing duration * Better service worker lifecycle management
24 lines
783 B
TypeScript
24 lines
783 B
TypeScript
import { DiskSpacePrimitives } from "../lib/spaces/disk_space_primitives.ts";
|
|
import type { SpacePrimitives } from "../lib/spaces/space_primitives.ts";
|
|
import { resolve } from "@std/path";
|
|
import { HttpSpacePrimitives } from "../lib/spaces/http_space_primitives.ts";
|
|
|
|
export function determineStorageBackend(
|
|
folder: string,
|
|
): SpacePrimitives {
|
|
if (folder.startsWith("http://") || folder.startsWith("https://")) {
|
|
return new HttpSpacePrimitives(
|
|
folder,
|
|
"",
|
|
(err) => {
|
|
console.error("[HTTP space primitives error]", err);
|
|
},
|
|
Deno.env.get("SB_AUTH_TOKEN"),
|
|
);
|
|
} else {
|
|
folder = resolve(Deno.cwd(), folder);
|
|
console.info(`Using local disk as a storage backend: ${folder}`);
|
|
return new DiskSpacePrimitives(folder);
|
|
}
|
|
}
|