(db: Database, dump: DumpIn)
| 542 | }; |
| 543 | |
| 544 | const setDatabase = async (db: Database, dump: DumpIn) => { |
| 545 | await cmd(db, 'BEGIN'); |
| 546 | await Promise.all( |
| 547 | Object.entries(dump).map(async ([name, [sql, rows]]) => { |
| 548 | await cmd(db, sql); |
| 549 | await Promise.all( |
| 550 | rows.map(async (row) => { |
| 551 | Object.entries(row).forEach(([column, value], index) => { |
| 552 | if (index == 0 || !jsonValues) { |
| 553 | row[column] = value; |
| 554 | } else { |
| 555 | row[column] = JSON.stringify(value); |
| 556 | } |
| 557 | }); |
| 558 | await cmd( |
| 559 | db, |
| 560 | 'INSERT INTO ' + |
| 561 | escapeId(name) + |
| 562 | '(' + |
| 563 | Object.keys(row) |
| 564 | .map((cellId) => escapeId(cellId)) |
| 565 | .join(',') + |
| 566 | ') VALUES (' + |
| 567 | Object.keys(row) |
| 568 | .map((_, index) => '$' + (index + 1)) |
| 569 | .join(',') + |
| 570 | ')', |
| 571 | Object.values(row), |
| 572 | ); |
| 573 | }), |
| 574 | ); |
| 575 | }), |
| 576 | ); |
| 577 | await cmd(db, 'END'); |
| 578 | }; |
| 579 | |
| 580 | return [getDatabase, setDatabase]; |
| 581 | }; |
no test coverage detected
searching dependent graphs…