Skip to content

Commit 0177905

Browse files
authored
feat: add support for namespaces (#403)
1 parent 5763776 commit 0177905

File tree

3 files changed

+288
-246
lines changed

3 files changed

+288
-246
lines changed

.changeset/lovely-readers-find.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@ts-safeql/eslint-plugin": patch
3+
---
4+
5+
Add support for namespace types in type annotations

packages/eslint-plugin/src/rules/check-sql.test.ts

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2107,4 +2107,62 @@ RuleTester.describe("check-sql", () => {
21072107
},
21082108
],
21092109
});
2110+
2111+
ruleTester.run("namespace import", rules["check-sql"], {
2112+
valid: [
2113+
{
2114+
name: "select statement with type imported from inline namespace",
2115+
options: withConnection(connections.base),
2116+
code: `
2117+
namespace Caregiver {
2118+
export interface Name {
2119+
firstName: string;
2120+
lastName: string;
2121+
}
2122+
}
2123+
2124+
function run() {
2125+
const result = conn.query<Caregiver.Name>(sql\`
2126+
select first_name as "firstName", last_name as "lastName" from caregiver
2127+
\`);
2128+
}
2129+
`,
2130+
},
2131+
],
2132+
invalid: [
2133+
{
2134+
name: "incorrect type annotation with namespace type",
2135+
options: withConnection(connections.base),
2136+
code: `
2137+
namespace Caregiver {
2138+
export interface Name {
2139+
firstName: string;
2140+
lastName: string;
2141+
}
2142+
}
2143+
2144+
function run() {
2145+
const result = conn.query<Caregiver.Name>(sql\`
2146+
select first_name, last_name from caregiver
2147+
\`);
2148+
}
2149+
`,
2150+
output: `
2151+
namespace Caregiver {
2152+
export interface Name {
2153+
firstName: string;
2154+
lastName: string;
2155+
}
2156+
}
2157+
2158+
function run() {
2159+
const result = conn.query<{ first_name: string; last_name: string }>(sql\`
2160+
select first_name, last_name from caregiver
2161+
\`);
2162+
}
2163+
`,
2164+
errors: [{ messageId: "incorrectTypeAnnotations" }],
2165+
},
2166+
],
2167+
});
21102168
});

0 commit comments

Comments
 (0)