iagate-querykit
Version:
QueryKit: lightweight TypeScript query toolkit with models, views, triggers, events, scheduler and adapters (better-sqlite3).
53 lines (52 loc) • 1.19 kB
JavaScript
/**
* Classe para representar SQL raw (bruto) no QueryKit.
* Permite inserir SQL customizado diretamente nas queries.
*
* @example
* ```typescript
* // Dados iniciais
* const rawSql = new Raw('COUNT(*) as total');
*
* // Como usar
* const query = table('users').select(rawSql);
*
* // Output: QueryBuilder com SQL raw incluído
* ```
*/
export class Raw {
sql;
/**
* Cria uma instância de Raw com SQL customizado.
*
* @param sql - String SQL para usar como raw
*/
constructor(sql) {
this.sql = sql;
}
/**
* Retorna o SQL raw como string.
*
* @returns String SQL armazenada
*/
toSQL() { return this.sql; }
}
/**
* Factory function para criar instâncias de Raw.
* Forma mais concisa de criar SQL raw.
*
* @param sql - String SQL para usar como raw
* @returns Nova instância de Raw
*
* @example
* ```typescript
* // Dados iniciais
* const sql = 'UPPER(name) as name_upper';
*
* // Como usar
* const rawField = raw(sql);
* const query = table('users').select(rawField);
*
* // Output: QueryBuilder com campo SQL raw UPPER(name)
* ```
*/
export function raw(sql) { return new Raw(sql); }