sqlite-prepare
Version:
A type-safe SQL query builder for Cloudflare D1
44 lines (43 loc) • 1.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.into = into;
exports.insert = insert;
const parseValue_1 = require("./parseValue");
/**
* Creates a table reference for insert operations
* @param table - The table name to insert into
* @returns The table name
*/
function into(table) {
return table;
}
/**
* Creates an insert query for the specified table and values
* @param table - The table name to insert into
* @param values - Object containing column-value pairs to insert
* @returns An InsertQuery object
*
* @example
* // Basic insert
* const query = insert(into('users'), { name: 'John', age: 30 });
*
* @example
* // Using raw SQL for a value
* const query = insert(into('users'), { created_at: raw('NOW()') });
*
* @example
* // Using a subquery for a value
* const subquery = build`SELECT id FROM active_users WHERE status = ${'active'}`;
* const query = insert(into('users'), { user_id: subquery });
*/
function insert(table, values) {
const parsedValues = {};
for (const [key, value] of Object.entries(values)) {
parsedValues[key] = (0, parseValue_1.parseValue)(value);
}
return {
__insert: true,
table,
values: parsedValues
};
}