Socket
Socket
Sign inDemoInstall

@typescript/server-replay

Package Overview
Dependencies
Maintainers
8
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@typescript/server-replay - npm Package Compare versions

Comparing version 0.2.11 to 0.2.12

2

package.json

@@ -5,3 +5,3 @@ {

"homepage": "https://github.com/microsoft/typescript-server-replay#readme",
"version": "0.2.11",
"version": "0.2.12",
"license": "MIT",

@@ -8,0 +8,0 @@ "description": "Replay server requests from a file",

@@ -35,3 +35,14 @@ const sh = require("@typescript/server-harness");

},
"s": {
alias: ["simple"],
describe: "Replay only file opening and closing, plus the final request",
type: "boolean",
},
"S": {
alias: ["superSimple", "super-simple"],
describe: "Replay only the final file opening and the final request",
type: "boolean",
},
})
.conflicts("s", "S")
.help("h").alias("h", "help")

@@ -52,2 +63,4 @@ .strict())

const unattended = !!args.u;
const simple = !!args.s;
const superSimple = !!args.S;

@@ -84,3 +97,3 @@ /**

let sawExit = false;
const requests = [];
let requests = [];

@@ -111,3 +124,3 @@

}
if (request.command === "applyChangedToOpenFiles") {
else if (request.command === "applyChangedToOpenFiles") {
for (const openFile of request.arguments.openFiles) {

@@ -137,2 +150,9 @@ const openFileContents = fs.readFileSync(openFile.fileName, { encoding: "utf-8" });

if (!requests.length) {
if (!unattended) {
console.log("No requests to replay");
}
process.exit(0);
}
if (!sawExit && !unattended) {

@@ -142,2 +162,68 @@ requests.push({ "seq": 999999, "command": "exit" });

if (simple) {
const newRequests = [];
let i = 0;
if (requests[i].command === "configure") {
newRequests.push(requests[i]);
i++;
}
let j = requests.length - 1;
if (requests[j].command === "exit") {
j--;
}
for (; i < j; i++) {
const req = requests[i];
if (req.command === "updateOpen" || req.command === "applyChangedToOpenFiles") {
if (req.arguments.openFiles?.length || req.arguments.closedFiles?.length) {
newRequests.push(req);
}
}
}
for (j = Math.max(i, j); j < requests.length; j++) {
newRequests.push(requests[j]);
}
requests = newRequests;
}
else if (superSimple) {
const newRequests = [];
let h = 0;
if (requests[h].command === "configure") {
newRequests.push(requests[h]);
h++;
}
let i = requests.length - 1;
for (; i >= h; i--) {
const req = requests[i];
if (req.command === "updateOpen" || req.command === "applyChangedToOpenFiles") {
if (req.arguments.openFiles?.length) {
// We're not opening other files, so changeFiles and closeFiles can only cause problems, if they're present
req.arguments.changedFiles = [];
req.arguments.closedFiles = [];
newRequests.push(req);
break;
}
}
}
// NB: i === h-1 if no file open request was found and i >= h-1 in all cases
let j = requests.length - 1;
if (requests[j].command === "exit") {
if (j - 1 > i) {
newRequests.push(requests[j - 1]);
}
newRequests.push(requests[j]);
}
else if (j > i) {
newRequests.push(requests[j]);
}
requests = newRequests;
}
if (traceDir) {

@@ -144,0 +230,0 @@ await fs.promises.mkdir(traceDir, { recursive: true });

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc