Напоминает ли эта Deno Repl в браузере FIFO, Unix Domain Dockets, что -то еще?Javascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Напоминает ли эта Deno Repl в браузере FIFO, Unix Domain Dockets, что -то еще?

Сообщение Anonymous »

Эксперимент с файловой системой, о котором я думал на некоторое время. Каким-то образом создание сокета домена FIFO или Unix, которое является двунаправленным соединением с потоковыми возможностями между произвольными веб-страницами и любой программой, которую я запускаю локально-без использования нативного обмена сообщениями, который представляет собой МПК в формате, подобном JSON, по крайней мере, на хроме. Как это работает? Я думаю, что вроде сочетания обоих. Или что -то еще? Не то чтобы мне нужно имя или ящик для канала связи. Я просто забочусь о том, что он делает то, что я говорю ему. Просто любопытно, вписывается ли система в одну из этих стандартных коробок Unix? Что -то еще ...? < /P>
repl.js
for await (const e of Deno.watchFs("/home/user/Documents")) {
for (const [index, path] of Object.entries(e.paths)) {
if (path.split("/").pop() === "sock") {
const input = Deno.readTextFileSync(path);
console.log(e.kind, path);
if (input.length > 0) {
console.log(input);
const command = new Deno.Command(Deno.execPath(), {
args: [
"eval",
input,
],
});
const { code, stdout, stderr } = command.outputSync();
await Deno.stdout.write(stdout);
Deno.writeFileSync(path, stdout);
} else {
continue;
}
}
}
}
< /code>
repl-sock.js
startIn: "documents",
suggestedName: "sock",
});

async function repl(script, fs) {
let readWrites = 0;
const { resolve, promise } = Promise.withResolvers();
const fso = new FileSystemObserver(async ([{
changedHandle,
root,
type,
}], record) => {
try {
if (++readWrites === 2) {
readWrites = 0;
const text = await (await changedHandle.getFile()).text();
fso.unobserve(fs);
fso.disconnect();
const currentHandle = await changedHandle.createWritable();
await currentHandle.truncate(0);
await currentHandle.close();
resolve(text);
}
} catch (e) {
console.log(e);
}
});

fso.observe(fs);
return new Response(script).body.pipeTo(await handle.createWritable())
.then(() => promise).then(console.log).then(() =>
console.log(`Done writing to and reading from ${handle.name}`)
).catch((e) => console.log(e));
}
< /code>
Usage, from DevTools console или фрагменты на произвольной веб -странице
repl(`console.log(Deno.version)`, handle).then(console.log)

// { deno: "2.2.6+b880087", v8: "13.5.212.4-rusty", typescript: "5.7.3" }
// Done writing to and reading from sock


Подробнее здесь: https://stackoverflow.com/questions/795 ... -something
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»