UNPKG

@tanstack/optimistic

Version:

Core optimistic updates library

44 lines (43 loc) 1.51 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const d2ts = require("@electric-sql/d2ts"); function processKeyBy(resultPipeline, query) { if (!query.keyBy) { return resultPipeline; } const keyByParam = query.keyBy; resultPipeline = resultPipeline.pipe( d2ts.keyBy((row) => { if (Array.isArray(keyByParam)) { const keyValues = {}; for (const keyColumn of keyByParam) { const columnName = keyColumn.startsWith(`@`) ? keyColumn.substring(1) : keyColumn; if (columnName in row) { keyValues[columnName] = row[columnName]; } else { throw new Error( `Key column "${columnName}" not found in result set. Make sure it's included in the select clause.` ); } } return JSON.stringify(keyValues); } else { const columnName = keyByParam.startsWith(`@`) ? keyByParam.substring(1) : keyByParam; if (!(columnName in row)) { throw new Error( `Key column "${columnName}" not found in result set. Make sure it's included in the select clause.` ); } const keyValue = row[columnName]; if (typeof keyValue === `string` || typeof keyValue === `number`) { return keyValue; } else { return JSON.stringify(keyValue); } } }) ); return resultPipeline; } exports.processKeyBy = processKeyBy; //# sourceMappingURL=key-by.cjs.map