Waddler SQL identifier

This guide assumes familiarity with:

sql.identifier lets you conveniently pass identifiers to SQL query with automatic escaping:

await sql`select * from ${sql.identifier("users")}`;
await sql`select ${sql.identifier("id")} from ${sql.identifier("users")}`;
await sql`select ${sql.identifier(["id", "name", "email"])} from ${sql.identifier("users")}`;
select * from [users];
select [id] from [users];
select [id], [name], [email] from [users];

You can explicitely provide schema, table and column to the query:

tables
columns
columns and tables
const users = sql.identifier({ schema: "public", table: "users" });
await sql`select * from ${users}`;
select * from [public].[users];

SQL identifier has support for as:

const table = sql.identifier({ schema: "public", table: "users", as: "u" })
const id = sql.identifier({ table: "u", column: "id", as: "userId" });
await sql`select ${columns} from ${table}`;
select [u].[id] as [userId] from [public].[users] as [u];