Skip to content

Commit 11404fe

Browse files
committed
fileserver: delete ZenFS
ZenFS integration often holds back @types/node upgrades.
1 parent 4a9131c commit 11404fe

14 files changed

Lines changed: 13 additions & 239 deletions

File tree

integ/browser-tests/package.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@
2525
"devDependencies": {
2626
"@nodelib/fs.walk": "^3.0.1",
2727
"@types/webpack": "^5.28.5",
28-
"@zenfs/core": "~2.5.6",
29-
"@zenfs/dom": "~1.2.9",
3028
"fork-ts-checker-webpack-plugin": "^9.1.0",
3129
"html-webpack-plugin": "^5.6.7",
3230
"puppeteer": "^24.42.0",

integ/browser-tests/tests/segmented-object/api.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,4 @@ export interface FetchedInfo {
55

66
declare global {
77
function testBlobChunkSource(): Promise<FetchedInfo>;
8-
function testZenFS(payloadHex: string): Promise<FetchedInfo>;
98
}
Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
import { BlobChunkSource, fetch, FileChunkSource, serve, type Server } from "@ndn/segmented-object";
2-
import { asBufferSource, Closers, fromHex, toHex } from "@ndn/util";
3-
import { configure as zenfsConfigure } from "@zenfs/core";
4-
import { WebAccess } from "@zenfs/dom";
1+
import { BlobChunkSource, fetch, serve, type Server } from "@ndn/segmented-object";
2+
import { asBufferSource, Closers, toHex } from "@ndn/util";
53

64
import type { FetchedInfo } from "./api";
75

@@ -31,22 +29,3 @@ globalThis.testBlobChunkSource = (): Promise<FetchedInfo> => {
3129
const server = serve("/R", new BlobChunkSource(file));
3230
return fetchAndReport(server);
3331
};
34-
35-
globalThis.testZenFS = async (payloadHex): Promise<FetchedInfo> => {
36-
const root = await navigator.storage.getDirectory();
37-
const file = await root.getFileHandle("R.bin", { create: true });
38-
const writable = await file.createWritable();
39-
await writable.write(fromHex(payloadHex));
40-
await writable.close();
41-
42-
await zenfsConfigure({
43-
mounts: {
44-
"/W": {
45-
backend: WebAccess,
46-
handle: root,
47-
},
48-
},
49-
});
50-
const server = serve("/R", new FileChunkSource("/W/R.bin"));
51-
return fetchAndReport(server);
52-
};

integ/browser-tests/tests/segmented-object/test.t.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,3 @@ test("blob to buffer", async () => {
3333
expect(size).toBe(objectBody.byteLength);
3434
expect(digest).toBe(objectBodyDigest);
3535
});
36-
37-
test("file to buffer", async () => {
38-
const { size, digest } = await pageInvoke<typeof globalThis.testZenFS>("testZenFS", toHex(objectBody));
39-
expect(size).toBe(objectBody.byteLength);
40-
expect(digest).toBe(objectBodyDigest);
41-
});

pkg/fileserver/README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,5 @@ Client (consumer):
1616

1717
* simple client
1818
* demonstrated in `@ndn/cat` package `file-client` subcommand
19-
* [ZenFS](https://zenfs.dev/core/) wrapper
2019

2120
Server (producer): not yet.

pkg/fileserver/package.json

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,20 +26,18 @@
2626
"types": "lib/mod.d.ts"
2727
},
2828
"dependencies": {
29-
"@miyauci/lru-map": "1.0.0-beta.1",
3029
"@ndn/naming-convention2": "workspace:*",
3130
"@ndn/packet": "workspace:*",
3231
"@ndn/rdr": "workspace:*",
3332
"@ndn/segmented-object": "workspace:*",
3433
"@ndn/tlv": "workspace:*",
3534
"@ndn/util": "workspace:*",
36-
"@zenfs/core": "~2.5.6",
3735
"obliterator": "^2.0.5",
38-
"streaming-iterables": "^8.0.1",
3936
"tslib": "^2.8.1"
4037
},
4138
"devDependencies": {
4239
"@ndn/endpoint": "workspace:*",
43-
"@ndn/fw": "workspace:^"
40+
"@ndn/fw": "workspace:^",
41+
"streaming-iterables": "^8.0.1"
4442
}
4543
}

pkg/fileserver/src/mod.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,3 @@ export * from "./an";
22
export * from "./client";
33
export * from "./ls";
44
export * from "./metadata";
5-
export * from "./zenfs";

pkg/fileserver/src/zenfs.ts

Lines changed: 0 additions & 102 deletions
This file was deleted.

pkg/fileserver/tests/client.t.ts

Lines changed: 2 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,10 @@ import { Data, Name } from "@ndn/packet";
77
import { makeMetadataPacket, MetadataKeyword } from "@ndn/rdr";
88
import { BufferChunkSource, DataProducer } from "@ndn/segmented-object";
99
import { makeObjectBody } from "@ndn/segmented-object/test-fixture/object-body";
10-
import { configure as zenfsConfigure, fs as zenfs } from "@zenfs/core";
1110
import { collect } from "streaming-iterables";
12-
import { afterAll, beforeAll, describe, expect, test } from "vitest";
11+
import { afterAll, beforeAll, expect, test } from "vitest";
1312

14-
import { buildDirectoryListing, Client, FileMetadata, lsKeyword, ModeDir, ModeFile, NDNZenFS } from "..";
13+
import { buildDirectoryListing, Client, FileMetadata, lsKeyword, ModeDir, ModeFile } from "..";
1514

1615
// Directory hierarchy:
1716
// /
@@ -83,15 +82,6 @@ beforeAll(async () => {
8382
);
8483

8584
client = new Client(prefix);
86-
87-
await zenfsConfigure({
88-
mounts: {
89-
"/N": {
90-
backend: NDNZenFS,
91-
client,
92-
},
93-
},
94-
});
9585
});
9686
afterAll(Forwarder.deleteDefault);
9787

@@ -148,52 +138,3 @@ test.each(readFileIntoCases)("readFileInto [%d,%d)", async (...tc) => {
148138
await client.readFileInto(statB, ...args);
149139
}, ...tc);
150140
});
151-
152-
test("zenfs rejects", async () => {
153-
expect(() => zenfs.statSync("/N/A")).toThrow(/async/);
154-
expect(() => zenfs.readdirSync("/N/A")).toThrow(/async/);
155-
await expect(zenfs.promises.appendFile("/N/A/B.bin", "tail")).rejects.toThrow(/read-only/);
156-
expect(() => zenfs.readFileSync("/N/A/B.bin")).toThrow(/async/);
157-
expect(() => zenfs.openSync("/N/A/B.bin", "r")).toThrow(/async/);
158-
});
159-
160-
test("zenfs stat", async () => {
161-
const statRoot = await zenfs.promises.stat("/N");
162-
expect(statRoot.isDirectory()).toBeTruthy();
163-
164-
const statA = await zenfs.promises.stat("/N/A");
165-
expect(statA.isDirectory()).toBeTruthy();
166-
167-
const statB = await zenfs.promises.stat("/N/A/B.bin");
168-
expect(statB.isFile()).toBeTruthy();
169-
expect(statB.size).toBe(bodyB.length);
170-
});
171-
172-
describe("zenfs open", () => {
173-
let fh: zenfs.promises.FileHandle;
174-
beforeAll(async () => {
175-
fh = await zenfs.promises.open("/N/A/B.bin", "r");
176-
});
177-
afterAll(async () => {
178-
await fh.close();
179-
});
180-
181-
test("stat", async () => {
182-
expect((await fh.stat()).size).toBe(bodyB.length);
183-
});
184-
185-
test.each(readFileIntoCases)("read [%d,%d)", async (...tc) => {
186-
await testReadFileInto(async (...args) => {
187-
await fh.read(...args);
188-
}, ...tc);
189-
});
190-
});
191-
192-
test("zenfs readdir", async () => {
193-
await expect(zenfs.promises.readdir("/N")).resolves.toEqual(["A"]);
194-
await expect(zenfs.promises.readdir("/N/A")).resolves.toEqual(["B.bin"]);
195-
});
196-
197-
test("zenfs readFile", async () => {
198-
await expect(zenfs.promises.readFile("/N/A/B.bin")).resolves.toEqualUint8Array(bodyB);
199-
});

pkg/segmented-object/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
"@ndn/naming-convention2": "workspace:*",
3232
"@ndn/packet": "workspace:*",
3333
"@ndn/util": "workspace:*",
34-
"@zenfs/core": "~2.5.6",
3534
"it-keepalive": "^1.2.0",
3635
"obliterator": "^2.0.5",
3736
"p-lazy": "^5.0.0",

0 commit comments

Comments
 (0)