Created
March 15, 2023 16:59
-
-
Save pokey/fd21867c185306b553676953a1558d05 to your computer and use it in GitHub Desktop.
Cursorless monorepo DX experiments
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From ce4f530318564957f13b3451412e9e8259e680a7 Mon Sep 17 00:00:00 2001 | |
From: Pokey Rule <[email protected]> | |
Date: Wed, 15 Mar 2023 15:48:56 +0000 | |
Subject: [PATCH] [DX experiment] Import / auto-import tests | |
--- | |
.../cursorless-engine/src/autoImportTest.ts | 17 ++++++++++ | |
packages/cursorless-engine/src/importTest.ts | 34 +++++++++++++++++++ | |
.../cursorless-vscode/src/autoImportTest.ts | 8 +++++ | |
packages/cursorless-vscode/src/importTest.ts | 30 ++++++++++++++++ | |
4 files changed, 89 insertions(+) | |
create mode 100644 packages/cursorless-engine/src/autoImportTest.ts | |
create mode 100644 packages/cursorless-engine/src/importTest.ts | |
create mode 100644 packages/cursorless-vscode/src/autoImportTest.ts | |
create mode 100644 packages/cursorless-vscode/src/importTest.ts | |
diff --git a/packages/cursorless-engine/src/autoImportTest.ts b/packages/cursorless-engine/src/autoImportTest.ts | |
new file mode 100644 | |
index 000000000..6a97c2de4 | |
--- /dev/null | |
+++ b/packages/cursorless-engine/src/autoImportTest.ts | |
@@ -0,0 +1,17 @@ | |
+// D7.1: Should not get vscode | |
+// window | |
+ | |
+// D7.2: Should not get vscode-uri | |
+// URI | |
+ | |
+// D8.2: Should get lodash | |
+// sortBy | |
+ | |
+// D9: Should get @cursorless/common | |
+// textFormatters | |
+ | |
+// D10: Should not get @cursorless/vscode-common | |
+// openNewEditor | |
+ | |
+// D11.2: Should not get @cursorless/cursorless-vscode-e2e | |
+// skipIfWindowsCi | |
diff --git a/packages/cursorless-engine/src/importTest.ts b/packages/cursorless-engine/src/importTest.ts | |
new file mode 100644 | |
index 000000000..8fd1eb1f4 | |
--- /dev/null | |
+++ b/packages/cursorless-engine/src/importTest.ts | |
@@ -0,0 +1,34 @@ | |
+// D1.1: Disallow vscode if not listed in package.json | |
+// import { TextEditor } from "vscode"; | |
+ | |
+// D1.1: Disallow vscode if not listed in package.json | |
+// import * as vscode from "vscode"; | |
+ | |
+// D1.2: Disallow external imports if not listed in package.json | |
+// import { URI } from "vscode-uri"; | |
+ | |
+// D1.2: Disallow external imports if not listed in package.json | |
+// import { v4 as uuid } from "uuid"; | |
+ | |
+// D2: Allow imports from internal packages listed in package.json | |
+// import { textFormatters } from "@cursorless/common"; | |
+ | |
+// D3 Disallow importing internal packages using non-preferred syntax | |
+// import { Range } from "../../common"; | |
+ | |
+// D4.1: Disallow internal imports not listed in package.json using | |
+// non-preferred syntax | |
+// import { openNewEditor } from "../../vscode-common"; | |
+ | |
+// D4.2: Disallow internal imports not listed in package.json using preferred | |
+// syntax | |
+// import { runCursorlessCommand } from "@cursorless/vscode-common"; | |
+ | |
+// D5.2: Disallow internal relative imports outside of package | |
+// import { skipIfWindowsCi } from "../../cursorless-vscode-e2e/src/suite/skipIfWindowsCi"; | |
+ | |
+// D5.2: Disallow internal relative imports outside of package | |
+// import vscodeEdit from "../../cursorless-vscode-core/src/ide/vscode/VscodeEdit"; | |
+ | |
+// D6.2: Allow imports from external packages listed in package.json (not vscode) | |
+// import { sortBy } from "lodash"; | |
diff --git a/packages/cursorless-vscode/src/autoImportTest.ts b/packages/cursorless-vscode/src/autoImportTest.ts | |
new file mode 100644 | |
index 000000000..012b3afa6 | |
--- /dev/null | |
+++ b/packages/cursorless-vscode/src/autoImportTest.ts | |
@@ -0,0 +1,8 @@ | |
+// D7.2: Should not get lodash | |
+// sortBy | |
+ | |
+// D8.1: Should get vscode | |
+// window | |
+ | |
+// D11.1: Should not get @cursorless/cursorless-vscode-core/ide/vscode/VscodeMessages | |
+// VscodeMessages | |
diff --git a/packages/cursorless-vscode/src/importTest.ts b/packages/cursorless-vscode/src/importTest.ts | |
new file mode 100644 | |
index 000000000..15652ed00 | |
--- /dev/null | |
+++ b/packages/cursorless-vscode/src/importTest.ts | |
@@ -0,0 +1,30 @@ | |
+// D1.2: Disallow external imports if not listed in package.json | |
+// import { URI } from "vscode-uri"; | |
+ | |
+// D1.2: Disallow external imports if not listed in package.json | |
+// import { v4 as uuid } from "uuid"; | |
+ | |
+// D2: Allow imports from internal packages listed in package.json | |
+// import { runCursorlessCommand } from "@cursorless/vscode-common"; | |
+ | |
+// D2: Allow imports from internal packages listed in package.json | |
+// import { textFormatters } from "@cursorless/common"; | |
+ | |
+// D2: Allow imports from internal packages listed in package.json | |
+// import { VscodeIDE } from "@cursorless/cursorless-vscode-core"; | |
+ | |
+// D5.1a: Disallow internal relative imports outside of package | |
+// import vscodeEdit from "@cursorless/cursorless-vscode-core/ide/vscode/VscodeEdit"; | |
+ | |
+// D5.1a: Disallow internal relative imports outside of package | |
+// import vscodeEdit from "@cursorless/cursorless-vscode-core/src/ide/vscode/VscodeEdit"; | |
+ | |
+// D5.2: Disallow internal relative imports outside of package | |
+// import { skipIfWindowsCi } from "../../cursorless-vscode-e2e/src/suite/skipIfWindowsCi"; | |
+ | |
+// D5.2a: Disallow internal relative imports outside of package even if you | |
+// depend on the module | |
+// import VscodeMessages from "../../cursorless-vscode-core/src/ide/vscode/VscodeMessages"; | |
+ | |
+// D6.1: Allow imports from external packages listed in package.json (vscode) | |
+// import * as vscode from "vscode"; | |
-- | |
2.39.2 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment