Sync engine (#298)

Fixes #261
This commit is contained in:
Zef Hemel
2023-01-13 15:41:29 +01:00
committed by GitHub
parent de6f531e91
commit a56e14bff1
51 changed files with 1033 additions and 1418 deletions
+6 -3
View File
@@ -1,8 +1,8 @@
import { Editor } from "../web/editor.tsx";
import { ensureAndLoadSettings, safeRun } from "../common/util.ts";
import { Space } from "../common/spaces/space.ts";
import { PlugSpacePrimitives } from "../server/hooks/plug_space_primitives.ts";
import { PageNamespaceHook } from "../server/hooks/page_namespace.ts";
import { PlugSpacePrimitives } from "../common/spaces/plug_space_primitives.ts";
import { PageNamespaceHook } from "../common/hooks/page_namespace.ts";
import { SilverBulletHooks } from "../common/manifest.ts";
import { System } from "../plugos/system.ts";
import { BuiltinSettings } from "../web/types.ts";
@@ -75,7 +75,10 @@ safeRun(async () => {
const serverSpace = new Space(spacePrimitives);
serverSpace.watch();
const settings = await ensureAndLoadSettings(serverSpace) as BuiltinSettings;
const settings = await ensureAndLoadSettings(
serverSpace,
false,
) as BuiltinSettings;
// Register some mobile-specific syscall implementations
system.registerSyscalls(
+8 -5
View File
@@ -13,7 +13,10 @@ import { Directory, Encoding, Filesystem } from "../deps.ts";
import { mime } from "../../plugos/deps.ts";
export class CapacitorSpacePrimitives implements SpacePrimitives {
constructor(readonly source: Directory, readonly root: string) {
constructor(
readonly source: Directory,
readonly root: string,
) {
}
async fetchFileList(): Promise<FileMeta[]> {
@@ -28,8 +31,9 @@ export class CapacitorSpacePrimitives implements SpacePrimitives {
});
for (const file of files.files) {
if (file.type === "file") {
const name = `${dir}/${file.name}`.substring(1);
allFiles.push({
name: `${dir}/${file.name}`.substring(1),
name: name,
lastModified: file.mtime,
perm: "rw",
contentType: mime.getType(file.name) || "application/octet-stream",
@@ -41,7 +45,6 @@ export class CapacitorSpacePrimitives implements SpacePrimitives {
}
}
await readAllFiles("");
console.log("allFiles", allFiles);
return allFiles;
}
async readFile(
@@ -51,7 +54,7 @@ export class CapacitorSpacePrimitives implements SpacePrimitives {
let data: FileData | undefined;
try {
switch (encoding) {
case "string":
case "utf8":
data = (await Filesystem.readFile({
path: this.root + name,
directory: this.source,
@@ -109,7 +112,7 @@ export class CapacitorSpacePrimitives implements SpacePrimitives {
data: FileData,
): Promise<FileMeta> {
switch (encoding) {
case "string":
case "utf8":
await Filesystem.writeFile({
path: this.root + name,
directory: this.source,