1 | 'use strict';
|
2 |
|
3 | const KeyvSql = require('@keyv/sql');
|
4 | const mysql = require('mysql2/promise');
|
5 |
|
6 | class KeyvMysql extends KeyvSql {
|
7 | constructor(opts) {
|
8 | if (typeof opts === 'string') {
|
9 | opts = { uri: opts };
|
10 | }
|
11 | opts = Object.assign({
|
12 | dialect: 'mysql',
|
13 | uri: 'mysql://localhost'
|
14 | }, opts);
|
15 |
|
16 | opts.connect = () => Promise.resolve()
|
17 | .then(() => mysql.createConnection(opts.uri))
|
18 | .then(connection => {
|
19 | return sql => connection.execute(sql)
|
20 | .then(data => data[0]);
|
21 | });
|
22 |
|
23 | super(opts);
|
24 | }
|
25 | }
|
26 |
|
27 | module.exports = KeyvMysql;
|