@tui-sandbox/library 9.3.0 → 9.5.1
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/CHANGELOG.md +21 -0
- package/dist/browser/assets/{index-CwXs-hE_.js → index-BZnWo448.js} +6 -6
- package/dist/browser/index.html +1 -1
- package/dist/src/server/cypress-support/contents.js +1 -1
- package/dist/src/server/server.js +3 -2
- package/dist/src/server/server.js.map +1 -1
- package/dist/src/server/terminal/runBlockingShellCommand.js +1 -1
- package/dist/src/server/terminal/runBlockingShellCommand.js.map +1 -1
- package/dist/src/server/utilities/timeoutable.d.ts +1 -0
- package/dist/src/server/utilities/timeoutable.js +16 -0
- package/dist/src/server/utilities/timeoutable.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -7
- package/src/server/cypress-support/contents.ts +1 -1
- package/src/server/server.ts +3 -2
- package/src/server/terminal/runBlockingShellCommand.ts +1 -1
- package/src/server/utilities/timeoutable.ts +15 -0
package/dist/browser/index.html
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<title>tui-sandbox integration tests</title>
|
|
6
|
-
<script type="module" crossorigin src="/assets/index-
|
|
6
|
+
<script type="module" crossorigin src="/assets/index-BZnWo448.js"></script>
|
|
7
7
|
<link rel="stylesheet" crossorigin href="/assets/index-D6fBrqAi.css">
|
|
8
8
|
</head>
|
|
9
9
|
<body>
|
|
@@ -63,7 +63,7 @@ export type NeovimContext = {
|
|
|
63
63
|
|
|
64
64
|
/** Arguments for starting the neovim server. They are built based on your test
|
|
65
65
|
* environment in a type safe manner. */
|
|
66
|
-
type MyStartNeovimServerArguments = OverrideProperties<
|
|
66
|
+
export type MyStartNeovimServerArguments = OverrideProperties<
|
|
67
67
|
StartNeovimGenericArguments,
|
|
68
68
|
{
|
|
69
69
|
filename?: MyTestDirectoryFile | { openInVerticalSplits: MyTestDirectoryFile[] }
|
|
@@ -6,6 +6,7 @@ import * as neovim from "./neovim/index.js";
|
|
|
6
6
|
import * as terminal from "./terminal/index.js";
|
|
7
7
|
import { TestServer } from "./TestServer.js";
|
|
8
8
|
import { tabIdSchema } from "./utilities/tabId.js";
|
|
9
|
+
import { timeoutable } from "./utilities/timeoutable.js";
|
|
9
10
|
const luaCodeInputSchema = z.object({ tabId: tabIdSchema, luaCode: z.string() });
|
|
10
11
|
const exCommandInputSchema = z.object({
|
|
11
12
|
tabId: tabIdSchema,
|
|
@@ -74,10 +75,10 @@ export async function createAppRouter(config) {
|
|
|
74
75
|
return neovim.runBlockingShellCommand(options.signal, options.input, options.input.allowFailure ?? false);
|
|
75
76
|
}),
|
|
76
77
|
runLuaCode: trpc.procedure.input(luaCodeInputSchema).mutation(options => {
|
|
77
|
-
return neovim.runLuaCode(options.input);
|
|
78
|
+
return timeoutable(10_000, neovim.runLuaCode(options.input));
|
|
78
79
|
}),
|
|
79
80
|
runExCommand: trpc.procedure.input(exCommandInputSchema).mutation(options => {
|
|
80
|
-
return neovim.runExCommand(options.input);
|
|
81
|
+
return timeoutable(10_000, neovim.runExCommand(options.input));
|
|
81
82
|
}),
|
|
82
83
|
}),
|
|
83
84
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/server/server.ts"],"names":[],"mappings":"AACA,OAAO,yDAAyD,CAAA;AAEhE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAC5E,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/server/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@ export async function executeBlockingShellCommand(testDirectory, input, signal,
|
|
|
19
19
|
cwd,
|
|
20
20
|
env,
|
|
21
21
|
});
|
|
22
|
-
console.log(`Successfully ran shell blockingCommand (${input.command}) with stdout: ${result.stdout}, stderr: ${result.stderr}`);
|
|
22
|
+
console.log(`Successfully ran shell blockingCommand (${input.command}) in cwd: '${cwd}' with stdout: ${result.stdout}, stderr: ${result.stderr}`);
|
|
23
23
|
return {
|
|
24
24
|
type: "success",
|
|
25
25
|
stdout: result.stdout,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runBlockingShellCommand.js","sourceRoot":"","sources":["../../../../src/server/terminal/runBlockingShellCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,yDAAyD,CAAA;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,IAAI,MAAM,MAAM,CAAA;AAIvB,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,aAA4B,EAC5B,KAA2B,EAC3B,MAA+B,EAC/B,YAAqB,EACrB,GAAsB;IAEtB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAExC,MAAM,GAAG,GAAG,MAAM,CAAC;QACjB,gBAAgB,EAAE,aAAa,CAAC,gBAAgB;QAChD,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,WAAW,EAAE,KAAK,CAAC,GAAG;QACtB,IAAI,EAAE,aAAa,CAAC,gBAAgB;KACrC,CAAC,CAAA;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE;YAC9C,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,GAAG;YACH,GAAG;SACJ,CAAC,CAAA;QACF,OAAO,CAAC,GAAG,CACT,2CAA2C,KAAK,CAAC,OAAO,kBAAkB,MAAM,CAAC,MAAM,aAAa,MAAM,CAAC,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"runBlockingShellCommand.js","sourceRoot":"","sources":["../../../../src/server/terminal/runBlockingShellCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,yDAAyD,CAAA;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,IAAI,MAAM,MAAM,CAAA;AAIvB,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,aAA4B,EAC5B,KAA2B,EAC3B,MAA+B,EAC/B,YAAqB,EACrB,GAAsB;IAEtB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAExC,MAAM,GAAG,GAAG,MAAM,CAAC;QACjB,gBAAgB,EAAE,aAAa,CAAC,gBAAgB;QAChD,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,WAAW,EAAE,KAAK,CAAC,GAAG;QACtB,IAAI,EAAE,aAAa,CAAC,gBAAgB;KACrC,CAAC,CAAA;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE;YAC9C,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,GAAG;YACH,GAAG;SACJ,CAAC,CAAA;QACF,OAAO,CAAC,GAAG,CACT,2CAA2C,KAAK,CAAC,OAAO,cAAc,GAAG,kBAAkB,MAAM,CAAC,MAAM,aAAa,MAAM,CAAC,MAAM,EAAE,CACrI,CAAA;QACD,OAAO;YACL,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;SACe,CAAA;IACxC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,wCAAwC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAA;QACzE,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO;gBACL,IAAI,EAAE,QAAQ;aACf,CAAA;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wCAAwC,KAAK,CAAC,OAAO,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;IACzF,CAAC;AACH,CAAC;AAQD,MAAM,UAAU,MAAM,CAAC,IAAqB;IAC1C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IACtD,CAAC;IACD,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAA;AACtC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function timeoutable<T>(ms: number, promise: Promise<T>): Promise<T>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export async function timeoutable(ms, promise) {
|
|
2
|
+
let timeoutId = undefined;
|
|
3
|
+
const timeout = new Promise((_, reject) => {
|
|
4
|
+
timeoutId = setTimeout(() => {
|
|
5
|
+
reject(new Error(`Timeout after ${ms}ms`));
|
|
6
|
+
}, ms);
|
|
7
|
+
});
|
|
8
|
+
try {
|
|
9
|
+
await Promise.race([timeout, promise]);
|
|
10
|
+
return await promise;
|
|
11
|
+
}
|
|
12
|
+
finally {
|
|
13
|
+
clearTimeout(timeoutId); // Ensure the timeout is cleared
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=timeoutable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeoutable.js","sourceRoot":"","sources":["../../../../src/server/utilities/timeoutable.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,WAAW,CAAI,EAAU,EAAE,OAAmB;IAClE,IAAI,SAAS,GAA+B,SAAS,CAAA;IACrD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;QAC9C,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAC1B,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAA;QAC5C,CAAC,EAAE,EAAE,CAAC,CAAA;IACR,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;QACtC,OAAO,MAAM,OAAO,CAAA;IACtB,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,SAAS,CAAC,CAAA,CAAC,gCAAgC;IAC1D,CAAC;AACH,CAAC"}
|