Skip to content

Commit 3ccd242

Browse files
authored
fix(binding-file): improve file-client implementation (#1213)
* fix(binding-file): improve file-client implementation * chore(binding-file): improve .gitignore for test files
1 parent e8e0cd2 commit 3ccd242

2 files changed

Lines changed: 7 additions & 8 deletions

File tree

packages/binding-file/src/file-client.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import { Form, SecurityScheme } from "@node-wot/td-tools";
2020
import { ProtocolClient, Content, createLoggers, ContentSerdes } from "@node-wot/core";
2121
import { Subscription } from "rxjs/Subscription";
22-
import fs = require("fs");
22+
import { promises as asyncFs } from "fs";
2323
import { fileURLToPath } from "node:url";
2424

2525
const { debug } = createLoggers("binding-file", "file-client");
@@ -33,8 +33,9 @@ export default class FileClient implements ProtocolClient {
3333
const filePath = fileURLToPath(uri);
3434
debug(`Reading file of Content-Type ${contentType} from path ${filePath}.`);
3535

36-
const resource = fs.createReadStream(filePath);
37-
return new Content(contentType, resource);
36+
const fileHandle = await asyncFs.open(filePath);
37+
const body = fileHandle.createReadStream();
38+
return new Content(contentType, body);
3839
}
3940

4041
public async readResource(form: Form): Promise<Content> {
@@ -50,10 +51,7 @@ export default class FileClient implements ProtocolClient {
5051
public async writeResource(form: Form, content: Content): Promise<void> {
5152
const filePath = fileURLToPath(form.href);
5253

53-
const writeStream = fs.createWriteStream(filePath);
54-
const buffer = await content.toBuffer();
55-
56-
writeStream.end(buffer);
54+
await asyncFs.writeFile(filePath, content.body);
5755
}
5856

5957
public async invokeResource(form: Form, content: Content): Promise<Content> {
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
# Ignore auxiliary files created by the FileClient implementation tests
2-
test.*
2+
test*.json
3+
test*.txt

0 commit comments

Comments
 (0)