@tui-sandbox/library 9.1.2 → 9.1.4
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 +14 -0
- package/dist/src/browser/neovim-client.js +1 -0
- package/dist/src/browser/neovim-client.js.map +1 -0
- package/dist/src/client/color-utilities.js +1 -0
- package/dist/src/client/color-utilities.js.map +1 -0
- package/dist/src/client/color-utilities.test.js +1 -0
- package/dist/src/client/color-utilities.test.js.map +1 -0
- package/dist/src/client/index.js +1 -0
- package/dist/src/client/index.js.map +1 -0
- package/dist/src/client/neovim-terminal-client.js +1 -0
- package/dist/src/client/neovim-terminal-client.js.map +1 -0
- package/dist/src/client/terminal-terminal-client.js +1 -0
- package/dist/src/client/terminal-terminal-client.js.map +1 -0
- package/dist/src/client/validateMouseEvent.js +1 -0
- package/dist/src/client/validateMouseEvent.js.map +1 -0
- package/dist/src/client/websocket-client.js +1 -0
- package/dist/src/client/websocket-client.js.map +1 -0
- package/dist/src/scripts/tui.js +1 -0
- package/dist/src/scripts/tui.js.map +1 -0
- package/dist/src/server/TestServer.js +1 -0
- package/dist/src/server/TestServer.js.map +1 -0
- package/dist/src/server/connection/trpc.js +1 -0
- package/dist/src/server/connection/trpc.js.map +1 -0
- package/dist/src/server/cypress-support/contents.js +1 -0
- package/dist/src/server/cypress-support/contents.js.map +1 -0
- package/dist/src/server/cypress-support/createCypressSupportFile.js +1 -0
- package/dist/src/server/cypress-support/createCypressSupportFile.js.map +1 -0
- package/dist/src/server/cypress-support/createCypressSupportFile.test.js +1 -0
- package/dist/src/server/cypress-support/createCypressSupportFile.test.js.map +1 -0
- package/dist/src/server/dirtree/index.d.ts +2 -2
- package/dist/src/server/dirtree/index.js +8 -7
- package/dist/src/server/dirtree/index.js.map +1 -0
- package/dist/src/server/dirtree/index.test.js +33 -0
- package/dist/src/server/dirtree/index.test.js.map +1 -0
- package/dist/src/server/dirtree/json-to-zod.js +1 -0
- package/dist/src/server/dirtree/json-to-zod.js.map +1 -0
- package/dist/src/server/index.js +1 -0
- package/dist/src/server/index.js.map +1 -0
- package/dist/src/server/neovim/NeovimApplication.js +1 -0
- package/dist/src/server/neovim/NeovimApplication.js.map +1 -0
- package/dist/src/server/neovim/NeovimJavascriptApiClient.js +1 -0
- package/dist/src/server/neovim/NeovimJavascriptApiClient.js.map +1 -0
- package/dist/src/server/neovim/NeovimJavascriptApiClient.test.js +1 -0
- package/dist/src/server/neovim/NeovimJavascriptApiClient.test.js.map +1 -0
- package/dist/src/server/neovim/environment/createTempDir.js +1 -0
- package/dist/src/server/neovim/environment/createTempDir.js.map +1 -0
- package/dist/src/server/neovim/environment/createTempDir.test.js +1 -0
- package/dist/src/server/neovim/environment/createTempDir.test.js.map +1 -0
- package/dist/src/server/neovim/index.js +1 -0
- package/dist/src/server/neovim/index.js.map +1 -0
- package/dist/src/server/server.js +1 -0
- package/dist/src/server/server.js.map +1 -0
- package/dist/src/server/server.test.js +1 -0
- package/dist/src/server/server.test.js.map +1 -0
- package/dist/src/server/terminal/TerminalTestApplication.js +1 -0
- package/dist/src/server/terminal/TerminalTestApplication.js.map +1 -0
- package/dist/src/server/terminal/index.js +1 -0
- package/dist/src/server/terminal/index.js.map +1 -0
- package/dist/src/server/types.js +1 -0
- package/dist/src/server/types.js.map +1 -0
- package/dist/src/server/updateTestdirectorySchemaFile.js +1 -0
- package/dist/src/server/updateTestdirectorySchemaFile.js.map +1 -0
- package/dist/src/server/updateTestdirectorySchemaFile.test.js +1 -0
- package/dist/src/server/updateTestdirectorySchemaFile.test.js.map +1 -0
- package/dist/src/server/utilities/DisposableSingleApplication.js +1 -0
- package/dist/src/server/utilities/DisposableSingleApplication.js.map +1 -0
- package/dist/src/server/utilities/DisposableSingleApplication.test.js +1 -0
- package/dist/src/server/utilities/DisposableSingleApplication.test.js.map +1 -0
- package/dist/src/server/utilities/Lazy.js +1 -0
- package/dist/src/server/utilities/Lazy.js.map +1 -0
- package/dist/src/server/utilities/TerminalApplication.js +1 -0
- package/dist/src/server/utilities/TerminalApplication.js.map +1 -0
- package/dist/src/server/utilities/applicationAvailable.js +1 -0
- package/dist/src/server/utilities/applicationAvailable.js.map +1 -0
- package/dist/src/server/utilities/applicationAvailable.test.js +1 -0
- package/dist/src/server/utilities/applicationAvailable.test.js.map +1 -0
- package/dist/src/server/utilities/generator.js +1 -0
- package/dist/src/server/utilities/generator.js.map +1 -0
- package/dist/src/server/utilities/generator.test.js +1 -0
- package/dist/src/server/utilities/generator.test.js.map +1 -0
- package/dist/src/server/utilities/tabId.js +1 -0
- package/dist/src/server/utilities/tabId.js.map +1 -0
- package/dist/src/server/utilities/timeout.js +1 -0
- package/dist/src/server/utilities/timeout.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/server/dirtree/index.test.ts +33 -0
- package/src/server/dirtree/index.ts +11 -9
- package/tsconfig.json +1 -0
package/package.json
CHANGED
|
@@ -159,4 +159,37 @@ describe("dirtree", () => {
|
|
|
159
159
|
export type MyTestDirectoryFile = z.infer<typeof testDirectoryFiles>"
|
|
160
160
|
`)
|
|
161
161
|
})
|
|
162
|
+
|
|
163
|
+
it("creates an empty schema when the directory cannot be read", async () => {
|
|
164
|
+
const tree = getDirectoryTree("nonexistent")
|
|
165
|
+
const result = await buildSchemaForDirectoryTree(tree, "MyDirectoryTree")
|
|
166
|
+
expect(result).toMatchInlineSnapshot(`
|
|
167
|
+
"
|
|
168
|
+
// Note: This file is autogenerated. Do not edit it directly.
|
|
169
|
+
//
|
|
170
|
+
// Describes the contents of the test directory, which is a blueprint for
|
|
171
|
+
// files and directories. Tests can create a unique, safe environment for
|
|
172
|
+
// interacting with the contents of such a directory.
|
|
173
|
+
//
|
|
174
|
+
// Having strong typing for the test directory contents ensures that tests can
|
|
175
|
+
// be written with confidence that the files and directories they expect are
|
|
176
|
+
// actually found. Otherwise the tests are brittle and can break easily.
|
|
177
|
+
|
|
178
|
+
import { z } from "zod"
|
|
179
|
+
|
|
180
|
+
export const MyDirectoryTreeSchema = z.object({
|
|
181
|
+
type: z.literal("directory"),
|
|
182
|
+
name: z.literal("root"),
|
|
183
|
+
contents: z.object({}),
|
|
184
|
+
})
|
|
185
|
+
|
|
186
|
+
export const MyDirectoryTreeContentsSchema = MyDirectoryTreeSchema.shape.contents
|
|
187
|
+
export type MyDirectoryTreeContentsSchemaType = z.infer<typeof MyDirectoryTreeSchema>
|
|
188
|
+
|
|
189
|
+
export type MyDirectoryTree = MyDirectoryTreeContentsSchemaType["contents"]
|
|
190
|
+
|
|
191
|
+
export const testDirectoryFiles = z.enum([])
|
|
192
|
+
export type MyTestDirectoryFile = z.infer<typeof testDirectoryFiles>"
|
|
193
|
+
`)
|
|
194
|
+
})
|
|
162
195
|
})
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import assert from "assert"
|
|
2
1
|
import type { Dree } from "dree"
|
|
3
2
|
import { scan, Type } from "dree"
|
|
4
3
|
import { format, resolveConfig } from "prettier"
|
|
5
4
|
import { fileURLToPath } from "url"
|
|
6
5
|
import { jsonToZod } from "./json-to-zod.js"
|
|
7
6
|
|
|
8
|
-
type TreeResult = { dree: Dree; allFiles: Dree[] }
|
|
7
|
+
type TreeResult = { dree: Dree | undefined; allFiles: Dree[] }
|
|
9
8
|
|
|
10
9
|
/** Convert a directory tree to a TypeScript type. This is useful for testing
|
|
11
10
|
* as the initial state of the test directory is fully known in tests. */
|
|
@@ -25,9 +24,9 @@ export function getDirectoryTree(path: string): TreeResult {
|
|
|
25
24
|
dir => {
|
|
26
25
|
allFiles.push(dir)
|
|
27
26
|
}
|
|
28
|
-
)
|
|
27
|
+
) as Dree | null // https://github.com/euberdeveloper/dree/pull/51
|
|
29
28
|
|
|
30
|
-
return { dree: result, allFiles }
|
|
29
|
+
return { dree: result ?? undefined, allFiles }
|
|
31
30
|
}
|
|
32
31
|
|
|
33
32
|
type FileNode = {
|
|
@@ -42,7 +41,11 @@ type DirectoryNode = {
|
|
|
42
41
|
|
|
43
42
|
type TreeNode = FileNode | DirectoryNode
|
|
44
43
|
|
|
45
|
-
export function convertDree(root: Dree): TreeNode {
|
|
44
|
+
export function convertDree(root: Dree | undefined): TreeNode {
|
|
45
|
+
if (!root) {
|
|
46
|
+
return { type: Type.DIRECTORY, name: "root", contents: {} }
|
|
47
|
+
}
|
|
48
|
+
|
|
46
49
|
if (root.type === Type.FILE) {
|
|
47
50
|
return {
|
|
48
51
|
name: root.name,
|
|
@@ -63,10 +66,9 @@ export function convertDree(root: Dree): TreeNode {
|
|
|
63
66
|
}
|
|
64
67
|
|
|
65
68
|
export async function buildSchemaForDirectoryTree(result: TreeResult, name: string): Promise<string> {
|
|
66
|
-
const root = result.dree
|
|
67
|
-
|
|
68
|
-
const
|
|
69
|
-
const schema = (await jsonToZod(node, `${name}Schema`)).split("\n")
|
|
69
|
+
const root = convertDree(result.dree)
|
|
70
|
+
|
|
71
|
+
const schema = (await jsonToZod(root, `${name}Schema`)).split("\n")
|
|
70
72
|
|
|
71
73
|
const lines = `
|
|
72
74
|
// Note: This file is autogenerated. Do not edit it directly.
|