/
opt
/
canhelp
/
node_modules
/
kysely
/
dist
/
esm
/
parser
/
/opt/canhelp/node_modules/kysely/dist/esm/parser
mkdir
upload
Name
Size
Mode
Actions
binary-operation-parser.d.ts
2210
0644
edit
dl
rm
binary-operation-parser.js
3184
0644
edit
dl
rm
coalesce-parser.d.ts
2178
0644
edit
dl
rm
coalesce-parser.js
60
0644
edit
dl
rm
collate-parser.d.ts
71
0644
edit
dl
rm
collate-parser.js
59
0644
edit
dl
rm
data-type-parser.d.ts
373
0644
edit
dl
rm
data-type-parser.js
534
0644
edit
dl
rm
default-value-parser.d.ts
304
0644
edit
dl
rm
default-value-parser.js
372
0644
edit
dl
rm
delete-from-parser.d.ts
820
0644
edit
dl
rm
delete-from-parser.js
63
0644
edit
dl
rm
expression-parser.d.ts
1631
0644
edit
dl
rm
expression-parser.js
1058
0644
edit
dl
rm
fetch-parser.d.ts
180
0644
edit
dl
rm
fetch-parser.js
592
0644
edit
dl
rm
group-by-parser.d.ts
634
0644
edit
dl
rm
group-by-parser.js
523
0644
edit
dl
rm
identifier-parser.d.ts
177
0644
edit
dl
rm
identifier-parser.js
662
0644
edit
dl
rm
insert-values-parser.d.ts
1175
0644
edit
dl
rm
insert-values-parser.js
2585
0644
edit
dl
rm
join-parser.d.ts
907
0644
edit
dl
rm
join-parser.js
1146
0644
edit
dl
rm
merge-into-parser.d.ts
600
0644
edit
dl
rm
merge-into-parser.js
62
0644
edit
dl
rm
merge-parser.d.ts
570
0644
edit
dl
rm
merge-parser.js
1194
0644
edit
dl
rm
on-commit-action-parse.d.ts
163
0644
edit
dl
rm
on-commit-action-parse.js
313
0644
edit
dl
rm
on-modify-action-parser.d.ts
189
0644
edit
dl
rm
on-modify-action-parser.js
342
0644
edit
dl
rm
order-by-parser.d.ts
1702
0644
edit
dl
rm
order-by-parser.js
2798
0644
edit
dl
rm
parse-utils.d.ts
726
0644
edit
dl
rm
parse-utils.js
1388
0644
edit
dl
rm
partition-by-parser.d.ts
612
0644
edit
dl
rm
partition-by-parser.js
347
0644
edit
dl
rm
reference-parser.d.ts
3616
0644
edit
dl
rm
reference-parser.js
3817
0644
edit
dl
rm
returning-parser.d.ts
926
0644
edit
dl
rm
returning-parser.js
61
0644
edit
dl
rm
savepoint-parser.d.ts
535
0644
edit
dl
rm
savepoint-parser.js
424
0644
edit
dl
rm
select-from-parser.d.ts
725
0644
edit
dl
rm
select-from-parser.js
63
0644
edit
dl
rm
select-parser.d.ts
4230
0644
edit
dl
rm
select-parser.js
1738
0644
edit
dl
rm
set-operation-parser.d.ts
565
0644
edit
dl
rm
set-operation-parser.js
687
0644
edit
dl
rm
table-parser.d.ts
2692
0644
edit
dl
rm
table-parser.js
1641
0644
edit
dl
rm
top-parser.d.ts
172
0644
edit
dl
rm
top-parser.js
702
0644
edit
dl
rm
tuple-parser.d.ts
2094
0644
edit
dl
rm
tuple-parser.js
57
0644
edit
dl
rm
unary-operation-parser.d.ts
697
0644
edit
dl
rm
unary-operation-parser.js
625
0644
edit
dl
rm
update-parser.d.ts
904
0644
edit
dl
rm
update-parser.js
58
0644
edit
dl
rm
update-set-parser.d.ts
1484
0644
edit
dl
rm
update-set-parser.js
1060
0644
edit
dl
rm
value-parser.d.ts
1332
0644
edit
dl
rm
value-parser.js
1322
0644
edit
dl
rm
with-parser.d.ts
3002
0644
edit
dl
rm
with-parser.js
1437
0644
edit
dl
rm
Edit:
/opt/canhelp/node_modules/kysely/dist/esm/parser/insert-values-parser.js
(2585B)
/// <reference types="./insert-values-parser.d.ts" /> import { ColumnNode } from '../operation-node/column-node.js'; import { PrimitiveValueListNode } from '../operation-node/primitive-value-list-node.js'; import { ValueListNode } from '../operation-node/value-list-node.js'; import { freeze, isFunction, isReadonlyArray, isUndefined, } from '../util/object-utils.js'; import { parseValueExpression } from './value-parser.js'; import { ValuesNode } from '../operation-node/values-node.js'; import { isExpressionOrFactory } from './expression-parser.js'; import { DefaultInsertValueNode } from '../operation-node/default-insert-value-node.js'; import { expressionBuilder, } from '../expression/expression-builder.js'; export function parseInsertExpression(arg) { const objectOrList = isFunction(arg) ? arg(expressionBuilder()) : arg; const list = isReadonlyArray(objectOrList) ? objectOrList : freeze([objectOrList]); return parseInsertColumnsAndValues(list); } function parseInsertColumnsAndValues(rows) { const columns = parseColumnNamesAndIndexes(rows); return [ freeze([...columns.keys()].map(ColumnNode.create)), ValuesNode.create(rows.map((row) => parseRowValues(row, columns))), ]; } function parseColumnNamesAndIndexes(rows) { const columns = new Map(); for (const row of rows) { const cols = Object.keys(row); for (const col of cols) { if (!columns.has(col) && row[col] !== undefined) { columns.set(col, columns.size); } } } return columns; } function parseRowValues(row, columns) { const rowColumns = Object.keys(row); const rowValues = Array.from({ length: columns.size, }); let hasUndefinedOrComplexColumns = false; let indexedRowColumns = rowColumns.length; for (const col of rowColumns) { const columnIdx = columns.get(col); if (isUndefined(columnIdx)) { indexedRowColumns--; continue; } const value = row[col]; if (isUndefined(value) || isExpressionOrFactory(value)) { hasUndefinedOrComplexColumns = true; } rowValues[columnIdx] = value; } const hasMissingColumns = indexedRowColumns < columns.size; if (hasMissingColumns || hasUndefinedOrComplexColumns) { const defaultValue = DefaultInsertValueNode.create(); return ValueListNode.create(rowValues.map((it) => isUndefined(it) ? defaultValue : parseValueExpression(it))); } return PrimitiveValueListNode.create(rowValues); }
Save
cmd:
run