UNPKG

redash-loader

Version:

`redash-loader` is command line tool make it possible to fetch redash content(query and dashboard) from your Redash. <br>

52 lines 2.25 kB
#!/usr/bin/env node "use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); require("dotenv/config"); const commander_1 = require("commander"); const client_1 = require("./redash/client"); const writeFile_1 = require("./writeFile"); const make_dir_1 = __importDefault(require("make-dir")); const loadQuery = async (client) => { const queries = await client.paginate(client.fetchQueries); queries.map(async (query) => { await (0, make_dir_1.default)(`./query/query_${query.id}`); (0, writeFile_1.writeSqlFile)(query); (0, writeFile_1.writeFile)(`./query/query_${query.id}/query_${query.id}.json`, JSON.stringify(query)); }); return console.log(`${queries.length} queries loaded✨`); }; const loadDashboard = async (client) => { const dashboards = await client.paginate(client.fetchDashboards); dashboards.map(async (dashboard) => { await (0, make_dir_1.default)(`./dashboard/dashboard_${dashboard.id}`); (0, writeFile_1.writeFile)(`./dashboard/dashboard_${dashboard.id}/dashboard_${dashboard.id}.json`, JSON.stringify(dashboard)); }); return console.log(`${dashboards.length} dashboards loaded✨`); }; const program = new commander_1.Command(); program.version("0.0.1", "-v, --version"); program .command("load <type>") .description("load Redash content(query, dashboard, all)") .requiredOption("-k, --api-key <key>", "input your Redash API KEY") .requiredOption("-u, --redash-url <url>", "input your Redash url") .action(async (type, options) => { const client = new client_1.RedashClient(options.apiKey, options.redashUrl); switch (type) { case "query": return await loadQuery(client); case "dashboard": return await loadDashboard(client); case "all": await loadQuery(client); await loadDashboard(client); return; default: return console.log(`${type} is not found. Please input query, dashboard or all.`); } }); program.parse(process.argv); //# sourceMappingURL=index.js.map