|
2 | 2 |
|
3 | 3 | ## v0.2 |
4 | 4 |
|
5 | | -- [ ] **Inline template support** — Allow passing SQL strings directly without requiring a `.sql` file, reducing boilerplate for short one-off queries |
6 | | -- [ ] **Export rendered SQL to file** — Add an option to write the rendered SQL to a file for debugging and audit purposes |
7 | | -- [ ] **TypeDescriptor `description` field** — Add an optional `description` property to `TypeDescriptor` so schema validation errors can display the expected format (e.g. `Expected: ISO date YYYY-MM-DD`) |
| 5 | +- [ ] **Inline template support** - Allow passing SQL strings directly without requiring a `.sql` file, reducing boilerplate for short one-off queries |
| 6 | +- [ ] **Export rendered SQL to file** - Add an option to write the rendered SQL to a file for debugging and audit purposes |
| 7 | +- [ ] **TypeDescriptor `description` field** - Add an optional `description` property to `TypeDescriptor` so schema validation errors can display the expected format (e.g. `Expected: ISO date YYYY-MM-DD`) |
8 | 8 |
|
9 | 9 | ## Maybe |
10 | 10 |
|
11 | | -- [ ] **Template caching** — Cache loaded templates in a `Map` to avoid redundant `readFileSync` calls when `defineQuery` is used outside module scope |
12 | | -- [ ] **Conditional blocks / IN-list expansion** — Support optional WHERE clauses (`{{#if}}`) and array expansion (`WHERE id IN ({{ids}})`). Would change the library's templating nature significantly — evaluate only if `.sql` file duplication becomes a real pain point |
13 | | -- [ ] **Async `loadTemplate`** — Non-blocking file reads for server environments (Express, Fastify). Not needed for current Lambda/script use cases |
14 | | -- [ ] **Query execution integration** — Return parameterized output or integrate with Athena SDK. Intentionally out of scope to preserve single responsibility — better suited as a separate package |
15 | | -- [ ] **Parameterized output mode** — Return `{ sql: string, params: unknown[] }` with `$1, $2` placeholders for engines that support it. Not applicable to Athena but could broaden adoption |
16 | | -- [ ] **Allowlist approach for `schema.string`** — Require a regex allowlist instead of relying on the denylist. Already achievable via custom schema types, so built-in support is low priority |
| 11 | +- [ ] **Template caching** - Cache loaded templates in a `Map` to avoid redundant `readFileSync` calls when `defineQuery` is used outside module scope |
| 12 | +- [ ] **Conditional blocks / IN-list expansion** - Support optional WHERE clauses (`{{#if}}`) and array expansion (`WHERE id IN ({{ids}})`). Would change the library's templating nature significantly - evaluate only if `.sql` file duplication becomes a real pain point |
| 13 | +- [ ] **Async `loadTemplate`** - Non-blocking file reads for server environments (Express, Fastify). Not needed for current Lambda/script use cases |
| 14 | +- [ ] **Query execution integration** - Return parameterized output or integrate with Athena SDK. Intentionally out of scope to preserve single responsibility - better suited as a separate package |
| 15 | +- [ ] **Parameterized output mode** - Return `{ sql: string, params: unknown[] }` with `$1, $2` placeholders for engines that support it. Not applicable to Athena but could broaden adoption |
| 16 | +- [ ] **Allowlist approach for `schema.string`** - Require a regex allowlist instead of relying on the denylist. Already achievable via custom schema types, so built-in support is low priority |
0 commit comments