Update pipe-ipc.js

This commit is contained in:
Namhyeon Go 2023-09-19 16:23:09 +09:00 committed by GitHub
parent e28f346447
commit f40a45c5f1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -61,6 +61,14 @@ function createUUIDv4() {
});
}
function createFSO() {
return CreateObject("Scripting.FileSystemObject");
}
function createADO() {
return CreateObject("ADODB.Stream");
}
function PipeIPC() {
this.path = "data\\.pipe_:pipename";
this.delimiter = "\r\n";
@ -107,7 +115,7 @@ function PipeIPC() {
this.openWriter = function(iomode) {
while (this.writer == null) {
try {
this.writer = CreateObject("Scripting.FileSystemObject").OpenTextFile(this.path, iomode, true, TristateTrue);
this.writer = createFSO().OpenTextFile(this.path, iomode, true, TristateTrue);
} catch (e) {}
}
};
@ -122,7 +130,7 @@ function PipeIPC() {
this.openReader = function() {
while (this.reader == null) {
try {
this.reader = CreateObject("Scripting.FileSystemObject").OpenTextFile(this.path, ForReading, true, TristateTrue);
this.reader = createFSO().OpenTextFile(this.path, ForReading, true, TristateTrue);
} catch (e) {}
}
};
@ -148,7 +156,7 @@ function PipeIPC() {
this.openRecorder = function(iomode) {
while (this.recorder == null) {
try {
this.recorder = CreateObject("Scripting.FileSystemObject").OpenTextFile(this.tmpfile, iomode, true, TristateTrue);
this.recorder = createFSO().OpenTextFile(this.tmpfile, iomode, true, TristateTrue);
} catch (e) {}
}
};
@ -217,7 +225,7 @@ function PipeIPC() {
// define functions
var StripAdoBOM = function(adoObj) {
var newAdoObj = CreateObject("ADODB.Stream");
var newAdoObj = createADO();
newAdoObj.Type = adTypeBinary;
newAdoObj.Mode = adModeReadWrite;
newAdoObj.Open();
@ -231,7 +239,7 @@ function PipeIPC() {
while (!isCommited) {
try {
// Open a temporary file
var fso = CreateObject("Scripting.FileSystemObject").OpenTextFile(src, ForReading, true, TristateTrue);
var fso = createFSO().OpenTextFile(src, ForReading, true, TristateTrue);
var text = fso.ReadAll();
var sentences = text.split(this.delimiter);
var newSentences = [], str = '';
@ -247,7 +255,7 @@ function PipeIPC() {
}
// Convert UTF-16 BOM to UTF-8
var ado = CreateObject("ADODB.Stream");
var ado = createADO();
ado.Type = adTypeText;
ado.Charset = charset;
ado.Open();
@ -257,12 +265,12 @@ function PipeIPC() {
ado.Close();
// Write a new temporary file
/*
var _fso = CreateObject("Scripting.FileSystemObject").OpenTextFile(src, ForWriting, true, TristateTrue);
_fso.Write(str);
_fso.Close();
*/
if (this.maxSentences > 0) {
var handler = createFSO().OpenTextFile(src, ForWriting, true, TristateTrue);
handler.Write(str);
handler.Close();
}
// Close the temporary file
fso.Close();
@ -324,19 +332,19 @@ function PipeIPC() {
this.destroy = function() {
this.close();
CreateObject("Scripting.FileSystemObject").DeleteFile(this.path);
createFSO().DeleteFile(this.path);
};
this.readTextFromFile = function(filename) {
var text = '';
var isLoaded = false;
var isFileExists = CreateObject("Scripting.FileSystemObject").FileExists(filename);
var isFileExists = createFSO().FileExists(filename);
if (isFileExists) {
//console.info("File", filename, "exists");
while (!isLoaded) {
try {
var ado = CreateObject("ADODB.Stream");
var ado = createADO();
ado.CharSet = this.charset;
ado.Open();
ado.LoadFromFile(filename);
@ -384,7 +392,7 @@ exports.adSaveCreateNotExist = adSaveCreateNotExist;
exports.adSaveCreateOverWrite = adSaveCreateOverWrite;
exports.adModeReadWrite = adModeReadWrite;
exports.VERSIONINFO = "PIPE-based IPC Module (pipe-ipc.js) version 0.1.7";
exports.VERSIONINFO = "PIPE-based IPC Module (pipe-ipc.js) version 0.1.6";
exports.AUTHOR = "abuse@catswords.net";
exports.global = global;
exports.require = require;