@bytecodealliance/preview2-shim 0.21.0 → 0.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/io/calls.d.ts +1 -0
- package/dist/io/calls.js +1 -0
- package/dist/io/worker-filesystem.d.ts +2 -0
- package/dist/io/worker-filesystem.js +7 -0
- package/dist/io/worker-thread.bundle.js +9 -0
- package/dist/io/worker-thread.js +4 -2
- package/dist/nodejs/filesystem.d.ts +1 -1
- package/dist/nodejs/filesystem.js +12 -2
- package/package.json +4 -1
package/dist/io/calls.d.ts
CHANGED
|
@@ -31,6 +31,7 @@ export declare const OUTPUT_STREAM_DISPOSE: number;
|
|
|
31
31
|
export declare const OUTPUT_STREAM_GET_TOTAL_BYTES: number;
|
|
32
32
|
export declare const FILESYSTEM_DESCRIPTOR_OPEN: number;
|
|
33
33
|
export declare const FILESYSTEM_DESCRIPTOR_CLOSE: number;
|
|
34
|
+
export declare const FILESYSTEM_DESCRIPTOR_ADVISE: number;
|
|
34
35
|
export declare const FILESYSTEM_DESCRIPTOR_SYNC_DATA: number;
|
|
35
36
|
export declare const FILESYSTEM_DESCRIPTOR_GET_TYPE: number;
|
|
36
37
|
export declare const FILESYSTEM_DESCRIPTOR_SET_SIZE: number;
|
package/dist/io/calls.js
CHANGED
|
@@ -38,6 +38,7 @@ export const OUTPUT_STREAM_GET_TOTAL_BYTES = ++call_id << CALL_SHIFT;
|
|
|
38
38
|
// Filesystem descriptors
|
|
39
39
|
export const FILESYSTEM_DESCRIPTOR_OPEN = ++call_id << CALL_SHIFT;
|
|
40
40
|
export const FILESYSTEM_DESCRIPTOR_CLOSE = ++call_id << CALL_SHIFT;
|
|
41
|
+
export const FILESYSTEM_DESCRIPTOR_ADVISE = ++call_id << CALL_SHIFT;
|
|
41
42
|
export const FILESYSTEM_DESCRIPTOR_SYNC_DATA = ++call_id << CALL_SHIFT;
|
|
42
43
|
export const FILESYSTEM_DESCRIPTOR_GET_TYPE = ++call_id << CALL_SHIFT;
|
|
43
44
|
export const FILESYSTEM_DESCRIPTOR_SET_SIZE = ++call_id << CALL_SHIFT;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Advice } from "@bytecodealliance/jco-node-fs";
|
|
1
2
|
export declare function openFileResource(path: string, flags: number): Promise<{
|
|
2
3
|
id: number;
|
|
3
4
|
type: any;
|
|
@@ -5,6 +6,7 @@ export declare function openFileResource(path: string, flags: number): Promise<{
|
|
|
5
6
|
export declare function retainFileResource(id: number): number;
|
|
6
7
|
export declare function releaseFileResource(id: number): Promise<void>;
|
|
7
8
|
export declare function fileResourceFd(id: number): number;
|
|
9
|
+
export declare function adviseFileResource(id: number, offset: bigint, length: bigint, advice: Advice): void;
|
|
8
10
|
export declare function syncFileResourceData(id: number): Promise<void>;
|
|
9
11
|
export declare function getFileResourceType(id: number): Promise<"block-device" | "character-device" | "directory" | "fifo" | "regular-file" | "socket" | "symbolic-link" | "unknown">;
|
|
10
12
|
export declare function setFileResourceSize(id: number, size: number): Promise<void>;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
|
+
import { createRequire } from "node:module";
|
|
2
3
|
import { promisify } from "node:util";
|
|
4
|
+
const require = createRequire(import.meta.url);
|
|
5
|
+
let nativeFadvise;
|
|
3
6
|
const closeAsync = promisify(fs.close);
|
|
4
7
|
const fdatasyncAsync = promisify(fs.fdatasync);
|
|
5
8
|
const fstatAsync = promisify(fs.fstat);
|
|
@@ -72,6 +75,10 @@ export async function releaseFileResource(id) {
|
|
|
72
75
|
export function fileResourceFd(id) {
|
|
73
76
|
return getFileResource(id).fd;
|
|
74
77
|
}
|
|
78
|
+
export function adviseFileResource(id, offset, length, advice) {
|
|
79
|
+
const fadvise = (nativeFadvise ??= require("@bytecodealliance/jco-node-fs").fadvise);
|
|
80
|
+
fadvise(fileResourceFd(id), offset, length, advice);
|
|
81
|
+
}
|
|
75
82
|
export async function syncFileResourceData(id) {
|
|
76
83
|
await fdatasyncAsync(fileResourceFd(id));
|
|
77
84
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { createRequire } from "node:module";
|
|
1
2
|
import fs, { createReadStream, createWriteStream, read } from "node:fs";
|
|
2
3
|
import process, { hrtime, nextTick, stderr, stdout } from "node:process";
|
|
3
4
|
import { PassThrough, Readable } from "node:stream";
|
|
@@ -79,6 +80,7 @@ var calls_exports = /* @__PURE__ */ __exportAll({
|
|
|
79
80
|
CLOCKS_DURATION_SUBSCRIBE: () => CLOCKS_DURATION_SUBSCRIBE,
|
|
80
81
|
CLOCKS_INSTANT_SUBSCRIBE: () => CLOCKS_INSTANT_SUBSCRIBE,
|
|
81
82
|
FILE: () => FILE,
|
|
83
|
+
FILESYSTEM_DESCRIPTOR_ADVISE: () => FILESYSTEM_DESCRIPTOR_ADVISE,
|
|
82
84
|
FILESYSTEM_DESCRIPTOR_CLOSE: () => FILESYSTEM_DESCRIPTOR_CLOSE,
|
|
83
85
|
FILESYSTEM_DESCRIPTOR_GET_TYPE: () => FILESYSTEM_DESCRIPTOR_GET_TYPE,
|
|
84
86
|
FILESYSTEM_DESCRIPTOR_METADATA_HASH: () => FILESYSTEM_DESCRIPTOR_METADATA_HASH,
|
|
@@ -209,6 +211,7 @@ const OUTPUT_STREAM_DISPOSE = ++call_id << 24;
|
|
|
209
211
|
const OUTPUT_STREAM_GET_TOTAL_BYTES = ++call_id << 24;
|
|
210
212
|
const FILESYSTEM_DESCRIPTOR_OPEN = ++call_id << 24;
|
|
211
213
|
const FILESYSTEM_DESCRIPTOR_CLOSE = ++call_id << 24;
|
|
214
|
+
const FILESYSTEM_DESCRIPTOR_ADVISE = ++call_id << 24;
|
|
212
215
|
const FILESYSTEM_DESCRIPTOR_SYNC_DATA = ++call_id << 24;
|
|
213
216
|
const FILESYSTEM_DESCRIPTOR_GET_TYPE = ++call_id << 24;
|
|
214
217
|
const FILESYSTEM_DESCRIPTOR_SET_SIZE = ++call_id << 24;
|
|
@@ -427,6 +430,8 @@ function getFirstError(e) {
|
|
|
427
430
|
}
|
|
428
431
|
//#endregion
|
|
429
432
|
//#region dist/io/worker-filesystem.js
|
|
433
|
+
const require = createRequire(import.meta.url);
|
|
434
|
+
let nativeFadvise;
|
|
430
435
|
const closeAsync = promisify(fs.close);
|
|
431
436
|
const fdatasyncAsync = promisify(fs.fdatasync);
|
|
432
437
|
const fstatAsync = promisify(fs.fstat);
|
|
@@ -490,6 +495,9 @@ async function releaseFileResource(id) {
|
|
|
490
495
|
function fileResourceFd(id) {
|
|
491
496
|
return getFileResource(id).fd;
|
|
492
497
|
}
|
|
498
|
+
function adviseFileResource(id, offset, length, advice) {
|
|
499
|
+
(nativeFadvise ??= require("@bytecodealliance/jco-node-fs").fadvise)(fileResourceFd(id), offset, length, advice);
|
|
500
|
+
}
|
|
493
501
|
async function syncFileResourceData(id) {
|
|
494
502
|
await fdatasyncAsync(fileResourceFd(id));
|
|
495
503
|
}
|
|
@@ -1584,6 +1592,7 @@ function handle(call, id, payload) {
|
|
|
1584
1592
|
}
|
|
1585
1593
|
case FILESYSTEM_DESCRIPTOR_OPEN: return openFileResource(payload.path, payload.flags);
|
|
1586
1594
|
case FILESYSTEM_DESCRIPTOR_CLOSE: return releaseFileResource(id);
|
|
1595
|
+
case FILESYSTEM_DESCRIPTOR_ADVISE: return adviseFileResource(id, payload.offset, payload.length, payload.advice);
|
|
1587
1596
|
case FILESYSTEM_DESCRIPTOR_SYNC_DATA: return syncFileResourceData(id);
|
|
1588
1597
|
case FILESYSTEM_DESCRIPTOR_GET_TYPE: return getFileResourceType(id);
|
|
1589
1598
|
case FILESYSTEM_DESCRIPTOR_SET_SIZE: return setFileResourceSize(id, payload);
|
package/dist/io/worker-thread.js
CHANGED
|
@@ -6,8 +6,8 @@ import { clearOutgoingResponse, createHttpRequest, setOutgoingResponse, startHtt
|
|
|
6
6
|
import { Readable } from "node:stream";
|
|
7
7
|
import { read } from "node:fs";
|
|
8
8
|
import { nextTick } from "node:process";
|
|
9
|
-
import { CALL_MASK, CALL_TYPE_MASK, CLOCKS_DURATION_SUBSCRIBE, CLOCKS_INSTANT_SUBSCRIBE, FILE, FILESYSTEM_DESCRIPTOR_CLOSE, FILESYSTEM_DESCRIPTOR_GET_TYPE, FILESYSTEM_DESCRIPTOR_METADATA_HASH, FILESYSTEM_DESCRIPTOR_OPEN, FILESYSTEM_DESCRIPTOR_READ, FILESYSTEM_DESCRIPTOR_SET_SIZE, FILESYSTEM_DESCRIPTOR_SET_TIMES, FILESYSTEM_DESCRIPTOR_STAT, FILESYSTEM_DESCRIPTOR_SYNC, FILESYSTEM_DESCRIPTOR_SYNC_DATA, FILESYSTEM_DESCRIPTOR_WRITE, FUTURE_DISPOSE, FUTURE_SUBSCRIBE, FUTURE_TAKE_VALUE, HTTP, HTTP_CREATE_REQUEST, HTTP_OUTGOING_BODY_DISPOSE, HTTP_OUTPUT_STREAM_FINISH, HTTP_SERVER_CLEAR_OUTGOING_RESPONSE, HTTP_SERVER_SET_OUTGOING_RESPONSE, HTTP_SERVER_START, HTTP_SERVER_STOP, HTTP_SERVER_GET_ADDRESS, INPUT_STREAM_BLOCKING_READ, INPUT_STREAM_BLOCKING_SKIP, INPUT_STREAM_CREATE, INPUT_STREAM_DISPOSE, INPUT_STREAM_READ, INPUT_STREAM_SKIP, INPUT_STREAM_SUBSCRIBE, OUTPUT_STREAM_BLOCKING_FLUSH, OUTPUT_STREAM_BLOCKING_SPLICE, OUTPUT_STREAM_BLOCKING_WRITE_AND_FLUSH, OUTPUT_STREAM_BLOCKING_WRITE_ZEROES_AND_FLUSH, OUTPUT_STREAM_CHECK_WRITE, OUTPUT_STREAM_CREATE, OUTPUT_STREAM_DISPOSE, OUTPUT_STREAM_FLUSH, OUTPUT_STREAM_SPLICE, OUTPUT_STREAM_SUBSCRIBE, OUTPUT_STREAM_WRITE, OUTPUT_STREAM_WRITE_ZEROES, POLL_POLLABLE_BLOCK, POLL_POLLABLE_DISPOSE, POLL_POLLABLE_READY, POLL_POLL_LIST, SOCKET_RESOLVE_ADDRESS_CREATE_REQUEST, SOCKET_RESOLVE_ADDRESS_SUBSCRIBE_REQUEST, SOCKET_RESOLVE_ADDRESS_DISPOSE_REQUEST, SOCKET_RESOLVE_ADDRESS_TAKE_REQUEST, SOCKET_GET_DEFAULT_RECEIVE_BUFFER_SIZE, SOCKET_GET_DEFAULT_SEND_BUFFER_SIZE, SOCKET_TCP_ACCEPT, SOCKET_TCP_BIND_FINISH, SOCKET_TCP_BIND_START, SOCKET_TCP_CONNECT_FINISH, SOCKET_TCP_CONNECT_START, SOCKET_TCP_CREATE_HANDLE, SOCKET_TCP_DISPOSE, SOCKET_TCP_GET_LOCAL_ADDRESS, SOCKET_TCP_GET_REMOTE_ADDRESS, SOCKET_TCP_IS_LISTENING, SOCKET_TCP_LISTEN_FINISH, SOCKET_TCP_LISTEN_START, SOCKET_TCP_SET_KEEP_ALIVE, SOCKET_TCP_SET_LISTEN_BACKLOG_SIZE, SOCKET_TCP_SHUTDOWN, SOCKET_TCP_SUBSCRIBE, SOCKET_UDP_BIND_FINISH, SOCKET_UDP_BIND_START, SOCKET_UDP_CREATE_HANDLE, SOCKET_UDP_DISPOSE, SOCKET_UDP_GET_LOCAL_ADDRESS, SOCKET_UDP_GET_RECEIVE_BUFFER_SIZE, SOCKET_UDP_GET_REMOTE_ADDRESS, SOCKET_UDP_GET_SEND_BUFFER_SIZE, SOCKET_UDP_GET_UNICAST_HOP_LIMIT, SOCKET_UDP_SET_RECEIVE_BUFFER_SIZE, SOCKET_UDP_SET_SEND_BUFFER_SIZE, SOCKET_UDP_SET_UNICAST_HOP_LIMIT, SOCKET_UDP_STREAM, SOCKET_UDP_SUBSCRIBE, SOCKET_INCOMING_DATAGRAM_STREAM_RECEIVE, SOCKET_OUTGOING_DATAGRAM_STREAM_CHECK_SEND, SOCKET_OUTGOING_DATAGRAM_STREAM_SEND, SOCKET_DATAGRAM_STREAM_SUBSCRIBE, SOCKET_DATAGRAM_STREAM_DISPOSE, STDERR, STDIN, STDOUT, reverseMap, } from "./calls.js";
|
|
10
|
-
import { fileResourceFd, getFileResourceType, metadataHashFileResource, openFileResource, readFileResource, releaseFileResource, retainFileResource, setFileResourceSize, setFileResourceTimes, statFileResource, syncFileResource, syncFileResourceData, writeFileResource, } from "./worker-filesystem.js";
|
|
9
|
+
import { CALL_MASK, CALL_TYPE_MASK, CLOCKS_DURATION_SUBSCRIBE, CLOCKS_INSTANT_SUBSCRIBE, FILE, FILESYSTEM_DESCRIPTOR_ADVISE, FILESYSTEM_DESCRIPTOR_CLOSE, FILESYSTEM_DESCRIPTOR_GET_TYPE, FILESYSTEM_DESCRIPTOR_METADATA_HASH, FILESYSTEM_DESCRIPTOR_OPEN, FILESYSTEM_DESCRIPTOR_READ, FILESYSTEM_DESCRIPTOR_SET_SIZE, FILESYSTEM_DESCRIPTOR_SET_TIMES, FILESYSTEM_DESCRIPTOR_STAT, FILESYSTEM_DESCRIPTOR_SYNC, FILESYSTEM_DESCRIPTOR_SYNC_DATA, FILESYSTEM_DESCRIPTOR_WRITE, FUTURE_DISPOSE, FUTURE_SUBSCRIBE, FUTURE_TAKE_VALUE, HTTP, HTTP_CREATE_REQUEST, HTTP_OUTGOING_BODY_DISPOSE, HTTP_OUTPUT_STREAM_FINISH, HTTP_SERVER_CLEAR_OUTGOING_RESPONSE, HTTP_SERVER_SET_OUTGOING_RESPONSE, HTTP_SERVER_START, HTTP_SERVER_STOP, HTTP_SERVER_GET_ADDRESS, INPUT_STREAM_BLOCKING_READ, INPUT_STREAM_BLOCKING_SKIP, INPUT_STREAM_CREATE, INPUT_STREAM_DISPOSE, INPUT_STREAM_READ, INPUT_STREAM_SKIP, INPUT_STREAM_SUBSCRIBE, OUTPUT_STREAM_BLOCKING_FLUSH, OUTPUT_STREAM_BLOCKING_SPLICE, OUTPUT_STREAM_BLOCKING_WRITE_AND_FLUSH, OUTPUT_STREAM_BLOCKING_WRITE_ZEROES_AND_FLUSH, OUTPUT_STREAM_CHECK_WRITE, OUTPUT_STREAM_CREATE, OUTPUT_STREAM_DISPOSE, OUTPUT_STREAM_FLUSH, OUTPUT_STREAM_SPLICE, OUTPUT_STREAM_SUBSCRIBE, OUTPUT_STREAM_WRITE, OUTPUT_STREAM_WRITE_ZEROES, POLL_POLLABLE_BLOCK, POLL_POLLABLE_DISPOSE, POLL_POLLABLE_READY, POLL_POLL_LIST, SOCKET_RESOLVE_ADDRESS_CREATE_REQUEST, SOCKET_RESOLVE_ADDRESS_SUBSCRIBE_REQUEST, SOCKET_RESOLVE_ADDRESS_DISPOSE_REQUEST, SOCKET_RESOLVE_ADDRESS_TAKE_REQUEST, SOCKET_GET_DEFAULT_RECEIVE_BUFFER_SIZE, SOCKET_GET_DEFAULT_SEND_BUFFER_SIZE, SOCKET_TCP_ACCEPT, SOCKET_TCP_BIND_FINISH, SOCKET_TCP_BIND_START, SOCKET_TCP_CONNECT_FINISH, SOCKET_TCP_CONNECT_START, SOCKET_TCP_CREATE_HANDLE, SOCKET_TCP_DISPOSE, SOCKET_TCP_GET_LOCAL_ADDRESS, SOCKET_TCP_GET_REMOTE_ADDRESS, SOCKET_TCP_IS_LISTENING, SOCKET_TCP_LISTEN_FINISH, SOCKET_TCP_LISTEN_START, SOCKET_TCP_SET_KEEP_ALIVE, SOCKET_TCP_SET_LISTEN_BACKLOG_SIZE, SOCKET_TCP_SHUTDOWN, SOCKET_TCP_SUBSCRIBE, SOCKET_UDP_BIND_FINISH, SOCKET_UDP_BIND_START, SOCKET_UDP_CREATE_HANDLE, SOCKET_UDP_DISPOSE, SOCKET_UDP_GET_LOCAL_ADDRESS, SOCKET_UDP_GET_RECEIVE_BUFFER_SIZE, SOCKET_UDP_GET_REMOTE_ADDRESS, SOCKET_UDP_GET_SEND_BUFFER_SIZE, SOCKET_UDP_GET_UNICAST_HOP_LIMIT, SOCKET_UDP_SET_RECEIVE_BUFFER_SIZE, SOCKET_UDP_SET_SEND_BUFFER_SIZE, SOCKET_UDP_SET_UNICAST_HOP_LIMIT, SOCKET_UDP_STREAM, SOCKET_UDP_SUBSCRIBE, SOCKET_INCOMING_DATAGRAM_STREAM_RECEIVE, SOCKET_OUTGOING_DATAGRAM_STREAM_CHECK_SEND, SOCKET_OUTGOING_DATAGRAM_STREAM_SEND, SOCKET_DATAGRAM_STREAM_SUBSCRIBE, SOCKET_DATAGRAM_STREAM_DISPOSE, STDERR, STDIN, STDOUT, reverseMap, } from "./calls.js";
|
|
10
|
+
import { adviseFileResource, fileResourceFd, getFileResourceType, metadataHashFileResource, openFileResource, readFileResource, releaseFileResource, retainFileResource, setFileResourceSize, setFileResourceTimes, statFileResource, syncFileResource, syncFileResourceData, writeFileResource, } from "./worker-filesystem.js";
|
|
11
11
|
import { SOCKET_STATE_BIND, SOCKET_STATE_BOUND, SOCKET_STATE_CONNECT, SOCKET_STATE_CONNECTION, SOCKET_STATE_LISTEN, SOCKET_STATE_LISTENER, socketResolveAddress, getDefaultSendBufferSize, getDefaultReceiveBufferSize, } from "./worker-sockets.js";
|
|
12
12
|
import { createTcpSocket, socketTcpAccept, socketTcpBindStart, socketTcpConnectStart, socketTcpDispose, socketTcpFinish, socketTcpGetLocalAddress, socketTcpGetRemoteAddress, socketTcpListenStart, socketTcpSetKeepAlive, socketTcpSetListenBacklogSize, socketTcpShutdown, tcpSockets, } from "./worker-socket-tcp.js";
|
|
13
13
|
import { createUdpSocket, datagramStreams, socketDatagramStreamDispose, socketIncomingDatagramStreamReceive, socketOutgoingDatagramStreamCheckSend, socketOutgoingDatagramStreamSend, socketUdpBindFinish, socketUdpBindStart, socketUdpDispose, socketUdpGetLocalAddress, socketUdpGetReceiveBufferSize, socketUdpGetRemoteAddress, socketUdpGetSendBufferSize, socketUdpGetUnicastHopLimit, socketUdpSetReceiveBufferSize, socketUdpSetSendBufferSize, socketUdpSetUnicastHopLimit, socketUdpStream, udpSockets, } from "./worker-socket-udp.js";
|
|
@@ -370,6 +370,8 @@ function handle(call, id, payload) {
|
|
|
370
370
|
return openFileResource(payload.path, payload.flags);
|
|
371
371
|
case FILESYSTEM_DESCRIPTOR_CLOSE:
|
|
372
372
|
return releaseFileResource(id);
|
|
373
|
+
case FILESYSTEM_DESCRIPTOR_ADVISE:
|
|
374
|
+
return adviseFileResource(id, payload.offset, payload.length, payload.advice);
|
|
373
375
|
case FILESYSTEM_DESCRIPTOR_SYNC_DATA:
|
|
374
376
|
return syncFileResourceData(id);
|
|
375
377
|
case FILESYSTEM_DESCRIPTOR_GET_TYPE:
|
|
@@ -13,7 +13,7 @@ declare class Descriptor implements IDescriptor {
|
|
|
13
13
|
readViaStream(offset: any): any;
|
|
14
14
|
writeViaStream(offset: any): any;
|
|
15
15
|
appendViaStream(): any;
|
|
16
|
-
advise(
|
|
16
|
+
advise(offset: any, length: any, advice: any): void;
|
|
17
17
|
syncData(): void;
|
|
18
18
|
getFlags(): any;
|
|
19
19
|
getType(): any;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { earlyDispose, inputStreamCreate, ioCall, outputStreamCreate, registerDispose, } from "../io/worker-io.js";
|
|
2
|
-
import { FILE, FILESYSTEM_DESCRIPTOR_CLOSE, FILESYSTEM_DESCRIPTOR_GET_TYPE, FILESYSTEM_DESCRIPTOR_METADATA_HASH, FILESYSTEM_DESCRIPTOR_OPEN, FILESYSTEM_DESCRIPTOR_READ, FILESYSTEM_DESCRIPTOR_SET_SIZE, FILESYSTEM_DESCRIPTOR_SET_TIMES, FILESYSTEM_DESCRIPTOR_STAT, FILESYSTEM_DESCRIPTOR_SYNC, FILESYSTEM_DESCRIPTOR_SYNC_DATA, FILESYSTEM_DESCRIPTOR_WRITE, INPUT_STREAM_CREATE, OUTPUT_STREAM_CREATE, } from "../io/calls.js";
|
|
2
|
+
import { FILE, FILESYSTEM_DESCRIPTOR_ADVISE, FILESYSTEM_DESCRIPTOR_CLOSE, FILESYSTEM_DESCRIPTOR_GET_TYPE, FILESYSTEM_DESCRIPTOR_METADATA_HASH, FILESYSTEM_DESCRIPTOR_OPEN, FILESYSTEM_DESCRIPTOR_READ, FILESYSTEM_DESCRIPTOR_SET_SIZE, FILESYSTEM_DESCRIPTOR_SET_TIMES, FILESYSTEM_DESCRIPTOR_STAT, FILESYSTEM_DESCRIPTOR_SYNC, FILESYSTEM_DESCRIPTOR_SYNC_DATA, FILESYSTEM_DESCRIPTOR_WRITE, INPUT_STREAM_CREATE, OUTPUT_STREAM_CREATE, } from "../io/calls.js";
|
|
3
3
|
import { constants, linkSync, lstatSync, lutimesSync, mkdirSync, opendirSync, readlinkSync, renameSync, rmdirSync, statSync, symlinkSync, unlinkSync, utimesSync, } from "node:fs";
|
|
4
4
|
import { platform } from "node:process";
|
|
5
5
|
const symbolDispose = Symbol.dispose || Symbol.for("dispose");
|
|
@@ -100,10 +100,20 @@ class Descriptor {
|
|
|
100
100
|
appendViaStream() {
|
|
101
101
|
return this.writeViaStream(this.stat().size);
|
|
102
102
|
}
|
|
103
|
-
advise(
|
|
103
|
+
advise(offset, length, advice) {
|
|
104
104
|
if (this.getType() === "directory") {
|
|
105
105
|
throw "bad-descriptor";
|
|
106
106
|
}
|
|
107
|
+
try {
|
|
108
|
+
ioCall(FILESYSTEM_DESCRIPTOR_ADVISE, this.#fileResourceId, {
|
|
109
|
+
offset,
|
|
110
|
+
length,
|
|
111
|
+
advice,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
catch (e) {
|
|
115
|
+
throw convertFsError(e);
|
|
116
|
+
}
|
|
107
117
|
}
|
|
108
118
|
syncData() {
|
|
109
119
|
if (this.#hostPreopen) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bytecodealliance/preview2-shim",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.22.0",
|
|
4
4
|
"description": "WASI Preview2 shim for JS environments",
|
|
5
5
|
"homepage": "https://github.com/bytecodealliance/jco#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -56,6 +56,9 @@
|
|
|
56
56
|
"types": "./types/interfaces/*.d.ts"
|
|
57
57
|
}
|
|
58
58
|
},
|
|
59
|
+
"dependencies": {
|
|
60
|
+
"@bytecodealliance/jco-node-fs": "0.2.0"
|
|
61
|
+
},
|
|
59
62
|
"devDependencies": {
|
|
60
63
|
"@bytecodealliance/componentize-js": "0.22.0",
|
|
61
64
|
"@bytecodealliance/jco": "1.25.2",
|