mysql.js 721 B

123456789101112131415
  1. import { createPool } from 'mariadb'
  2. import { cpus } from 'node:os'
  3. import { clientOpts } from '../config.js'
  4. const pool = createPool({ ...clientOpts, connectionLimit: cpus().length })
  5. const execute = (text, values) => pool.execute(text, values || undefined)
  6. export const fortunes = () => execute('SELECT id, message FROM fortune')
  7. export const find = (id) => execute('SELECT id, randomNumber FROM world WHERE id = ?', [id]).then(arr => arr[0])
  8. export const getAllWorlds = () => execute('SELECT id, randomNumber FROM world')
  9. export const bulkUpdate = (worlds) => pool.batch('UPDATE world SET randomNumber = ? WHERE id = ?', worlds.map(world => [world.randomNumber, world.id]).sort((a, b) => (a[1] < b[1]) ? -1 : 1))