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
JavaScript
;
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