UNPKG

@sugarcube/plugin-sql

Version:

Import and export Sugarcube data and queries from and to SQL databases.

60 lines (49 loc) 1.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _fp = require("lodash/fp"); var _dashp = require("dashp"); var _core = require("@sugarcube/core"); var _db = require("../db"); const querySource = "query_type"; const plugin = async (envelope, { cfg, log, stats }) => { const debug = (0, _fp.get)("sql.debug", cfg); const engine = (0, _fp.get)("sql.engine", cfg); const database = (0, _fp.get)("sql.database", cfg); const host = (0, _fp.get)("sql.host", cfg); const port = (0, _fp.get)("sql.port", cfg); const user = (0, _fp.get)("sql.user", cfg); const password = (0, _fp.get)("sql.password", cfg); const queriesByType = _core.envelope.queriesByType(querySource, envelope); let db; if (engine === "postgres") db = (0, _db.connectPostgres)({ database, host, port, user, password, debug }); if (engine === "sqlite") db = (0, _db.connectSqlite)({ database: database === "sugarcube" ? `${database}.db` : database, debug }, log); const queries = queriesByType.length === 0 ? await db.queries.listAll() : await (0, _dashp.flatmapP)(async queryType => { const qs = await db.queries.listByType(queryType); log.info(`Importing ${qs.length} queries of type '${queryType}'.`); // we merge the tags into the query object itself for backwards compatibility. return qs; }, queriesByType); stats.count("queries", queries.length); db.close(); return _core.envelope.concatQueries(queries, envelope); }; plugin.argv = {}; plugin.desc = "Import queries into the pipeline."; var _default = plugin; exports.default = _default;