Fixes #90: Re-enables full text search

This commit is contained in:
Zef Hemel
2022-10-19 09:52:29 +02:00
parent e225c926f5
commit 70501bc3e4
13 changed files with 128 additions and 80 deletions
+5 -5
View File
@@ -6,8 +6,8 @@ import { FileData, FileEncoding, SpacePrimitives } from "./space_primitives.ts";
import { Plug } from "../../plugos/plug.ts";
import { mime } from "https://deno.land/x/mimetypes@v1.0.0/mod.ts";
import {
base64Decode,
base64Encode,
base64DecodeDataUrl,
base64EncodedDataUrl,
} from "../../plugos/asset_bundle/base64.ts";
function lookupContentType(path: string): string {
@@ -53,10 +53,10 @@ export class DiskSpacePrimitives implements SpacePrimitives {
case "dataurl":
{
const f = await Deno.open(localPath, { read: true });
const buf = base64Encode(await readAll(f));
const buf = await readAll(f);
Deno.close(f.rid);
data = `data:${contentType};base64,${buf}`;
data = base64EncodedDataUrl(contentType, buf);
}
break;
case "arraybuffer":
@@ -103,7 +103,7 @@ export class DiskSpacePrimitives implements SpacePrimitives {
case "dataurl":
await Deno.writeFile(
localPath,
base64Decode((data as string).split(",")[1]),
base64DecodeDataUrl(data as string),
);
break;
case "arraybuffer":
+12 -25
View File
@@ -1,6 +1,11 @@
import { FileMeta } from "../types.ts";
import { Plug } from "../../plugos/plug.ts";
import { FileData, FileEncoding, SpacePrimitives } from "./space_primitives.ts";
import {
base64DecodeDataUrl,
base64EncodedDataUrl,
} from "../../plugos/asset_bundle/base64.ts";
import { mime } from "../../plugos/deps.ts";
export class HttpSpacePrimitives implements SpacePrimitives {
fsUrl: string;
@@ -50,14 +55,16 @@ export class HttpSpacePrimitives implements SpacePrimitives {
switch (encoding) {
case "arraybuffer":
{
const abBlob = await res.blob();
data = await abBlob.arrayBuffer();
data = await res.arrayBuffer();
// data = await abBlob.arrayBuffer();
}
break;
case "dataurl":
{
const dUBlob = await res.blob();
data = arrayBufferToDataUrl(await dUBlob.arrayBuffer());
data = base64EncodedDataUrl(
mime.getType(name) || "application/octet-stream",
new Uint8Array(await res.arrayBuffer()),
);
}
break;
case "string":
@@ -83,7 +90,7 @@ export class HttpSpacePrimitives implements SpacePrimitives {
body = data;
break;
case "dataurl":
data = dataUrlToArrayBuffer(data as string);
data = base64DecodeDataUrl(data as string);
break;
}
const res = await this.authenticatedFetch(`${this.fsUrl}/${name}`, {
@@ -184,23 +191,3 @@ export class HttpSpacePrimitives implements SpacePrimitives {
}
}
}
function dataUrlToArrayBuffer(dataUrl: string): ArrayBuffer {
const binary_string = atob(dataUrl.split(",")[1]);
const len = binary_string.length;
const bytes = new Uint8Array(len);
for (let i = 0; i < len; i++) {
bytes[i] = binary_string.charCodeAt(i);
}
return bytes.buffer;
}
function arrayBufferToDataUrl(buffer: ArrayBuffer): string {
let binary = "";
const bytes = new Uint8Array(buffer);
const len = bytes.byteLength;
for (let i = 0; i < len; i++) {
binary += String.fromCharCode(bytes[i]);
}
return `data:application/octet-stream,${btoa(binary)}`;
}