/
database-remove.js
47 lines (43 loc) · 1.55 KB
/
database-remove.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
"use strict";
var Command = require("../command");
var requireInstance = require("../requireInstance");
var requirePermissions = require("../requirePermissions");
var DatabaseRemove = require("../database/remove").default;
var api = require("../api");
var utils = require("../utils");
var { prompt } = require("../prompt");
var clc = require("cli-color");
var _ = require("lodash");
module.exports = new Command("database:remove <path>")
.description("remove data from your Firebase at the specified path")
.option("-y, --confirm", "pass this option to bypass confirmation prompt")
.option(
"--instance <instance>",
"use the database <instance>.firebaseio.com (if omitted, use default database instance)"
)
.before(requirePermissions, ["firebasedatabase.instances.update"])
.before(requireInstance)
.action(function(path, options) {
if (!_.startsWith(path, "/")) {
return utils.reject("Path must begin with /", { exit: 1 });
}
return prompt(options, [
{
type: "confirm",
name: "confirm",
default: false,
message:
"You are about to remove all data at " +
clc.cyan(utils.addSubdomain(api.realtimeOrigin, options.instance) + path) +
". Are you sure?",
},
]).then(function() {
if (!options.confirm) {
return utils.reject("Command aborted.", { exit: 1 });
}
var removeOps = new DatabaseRemove(options.instance, path);
return removeOps.execute().then(function() {
utils.logSuccess("Data removed successfully");
});
});
});