firebase-tools
Version:
Command-Line Interface for Firebase
38 lines (37 loc) • 1.37 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.RTDBListRemote = void 0;
const apiv2_1 = require("../apiv2");
const url_1 = require("url");
const logger_1 = require("../logger");
const utils = require("../utils");
class RTDBListRemote {
constructor(instance, host) {
this.instance = instance;
this.host = host;
const url = new url_1.URL(utils.getDatabaseUrl(this.host, this.instance, "/"));
this.apiClient = new apiv2_1.Client({ urlPrefix: url.origin, auth: true });
}
async listPath(path, numSubPath, startAfter, timeout) {
const url = new url_1.URL(utils.getDatabaseUrl(this.host, this.instance, path + ".json"));
const params = {
shallow: true,
limitToFirst: numSubPath,
};
if (startAfter) {
params.startAfter = startAfter;
}
if (timeout) {
params.timeout = `${timeout}ms`;
}
const t0 = Date.now();
const res = await this.apiClient.get(url.pathname, {
queryParams: params,
});
const paths = res.body ? Object.keys(res.body) : [];
const dt = Date.now() - t0;
logger_1.logger.debug(`[database] sucessfully fetched ${paths.length} path at ${path} ${dt}`);
return paths;
}
}
exports.RTDBListRemote = RTDBListRemote;
;