chipmunkdb-node-client
Version:
464 lines (454 loc) • 17.9 kB
JavaScript
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define([], factory);
else {
var a = factory();
for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
}
})(global, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 0);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports, __webpack_require__) {
;
Object.defineProperty(exports, "__esModule", { value: true });
var ChipmunkDbClient_1 = __webpack_require__(1);
exports.default = ChipmunkDbClient_1.ChipmunkDbClient;
/***/ }),
/* 1 */
/***/ (function(module, exports, __webpack_require__) {
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ChipmunkDbClient = exports.InsertWriteMode = exports.FilterEntry = void 0;
var axios_1 = __importDefault(__webpack_require__(2));
var FilterEntry = /** @class */ (function () {
function FilterEntry() {
this.key = "";
}
FilterEntry.create = function (key, tags) {
var f = new FilterEntry();
f.key = key;
if (tags)
f.tags = tags;
return f;
};
return FilterEntry;
}());
exports.FilterEntry = FilterEntry;
var InsertWriteMode;
(function (InsertWriteMode) {
InsertWriteMode["APPEND"] = "append";
InsertWriteMode["CREATE"] = "create";
})(InsertWriteMode = exports.InsertWriteMode || (exports.InsertWriteMode = {}));
var ChipmunkDbClient = /** @class */ (function () {
function ChipmunkDbClient(host, port) {
if (port === void 0) { port = 8091; }
this.host = host;
this.port = port;
this.scheme = "http://";
}
ChipmunkDbClient.prototype.getHostPath = function () {
return this.scheme + this.host + ":" + this.port;
};
ChipmunkDbClient.prototype.queryMerge = function (query, joinQueries, domain) {
var _this = this;
return new Promise(function (resolve, reject) {
var domainstr = "";
if (typeof domain !== "undefined") {
domainstr = "&domains=" + domain;
}
var joins = "";
joins = "&q=" + joinQueries.join("&q=");
return axios_1.default.get(_this.getHostPath() + '/query?q=' + query + domainstr + joins + "&options=merge_tables")
.then(function (response) {
// handle success
try {
if (response.status == 200) {
var result = (typeof response.data === "string") ?
JSON.parse(response.data.replace(/\bNaN\b/g, "null")).result :
response.data.result;
return resolve(result);
}
reject(response.data);
}
catch (e) {
reject(e);
}
})
.catch(function (error) {
reject((error.response) ? error.response.data : error);
});
});
};
ChipmunkDbClient.prototype.query = function (query, domain) {
var _this = this;
return new Promise(function (resolve, reject) {
var domainstr = "";
if (typeof domain !== "undefined" && domain != null) {
domainstr = "&domains=" + domain;
}
return axios_1.default.get(_this.getHostPath() + '/query?q=' + query + domainstr)
.then(function (response) {
// handle success
try {
if (response.status == 200) {
var result = (typeof response.data === "string") ?
JSON.parse(response.data.replace(/\bNaN\b/g, "null")).result :
response.data.result;
return resolve(result);
}
reject(response.data);
}
catch (e) {
reject(e);
}
})
.catch(function (error) {
reject((error.response) ? error.response.data : error);
});
});
};
ChipmunkDbClient.prototype.dropColumns = function (collection, columns, domain) {
var _this = this;
return new Promise(function (resolve, reject) {
return axios_1.default.delete(_this.getHostPath() + '/collection/' + collection + "/dropColumns", {
headers: {
"x-data": JSON.stringify({
"domain": (domain) ? domain : null,
"columns": columns.join(",")
})
}
})
.then(function (response) {
// handle success
if (response.status == 200) {
return resolve(response.data.success);
}
reject(response.data);
})
.catch(function (error) {
reject((error.response) ? error.response.data : error);
});
});
};
ChipmunkDbClient.prototype.dropCollection = function (collection) {
var _this = this;
return new Promise(function (resolve, reject) {
return axios_1.default.post(_this.getHostPath() + '/collection/' + collection + "/drop", {
"collection": collection, "drop": true
})
.then(function (response) {
// handle success
if (response.status == 200) {
return resolve(true);
}
reject(response.data);
})
.catch(function (error) {
reject((error.response) ? error.response.data : error);
});
});
};
ChipmunkDbClient.prototype.getDocument = function (directory, document) {
var _this = this;
return new Promise(function (resolve, reject) {
return axios_1.default.get(_this.getHostPath() + '/directory/' + directory + "/" + document)
.then(function (response) {
// handle success
if (response.status == 200) {
return resolve(response.data);
}
reject(response.data);
})
.catch(function (error) {
reject((error.response) ? error.response.data : error);
});
});
};
ChipmunkDbClient.prototype.getAllDocuments = function (directory) {
var _this = this;
if (directory === void 0) { directory = ""; }
return new Promise(function (resolve, reject) {
var dir = _this.getHostPath() + '/directories';
if (directory != "") {
dir = _this.getHostPath() + "/directory/" + directory;
}
return axios_1.default.get(dir)
.then(function (response) {
if (typeof response.data === "string") {
response.data = JSON.parse(response.data);
}
return resolve((typeof response.data.directories !== "undefined") ? response.data.directories : response.data.documents);
});
});
};
ChipmunkDbClient.prototype.saveDocument = function (directory, document, data, type) {
var _this = this;
if (type === void 0) { type = "single"; }
return new Promise(function (resolve, reject) {
return axios_1.default.post(_this.getHostPath() + '/directory/' + directory + "/" + document, {
"data": data, "type": type
}, {
maxContentLength: 100000000,
maxBodyLength: 1000000000
})
.then(function (response) {
// handle success
if (response.status == 200) {
return resolve(response.data);
}
reject(response.data);
})
.catch(function (error) {
reject((error.response) ? error.response.data : error);
});
});
};
ChipmunkDbClient.prototype.getAllCollections = function () {
var _this = this;
return new Promise(function (resolve, reject) {
return axios_1.default.get(_this.getHostPath() + '/collections')
.then(function (response) {
// handle success
if (response.status == 200) {
if (typeof response.data === "string") {
response.data = JSON.parse(response.data);
}
var cols = response.data.collections.map(function (c) {
try {
// @ts-ignore
c.columns = JSON.parse(c.columns);
}
catch (e) {
}
try {
// @ts-ignore
c.domains = JSON.parse(c.domains);
}
catch (e) {
}
return c;
});
return resolve(cols);
}
reject(response.data);
})
.catch(function (error) {
reject((error.response) ? error.response.data : error);
});
});
};
ChipmunkDbClient.prototype.insertData = function (collection, rows, domain, mode) {
var _this = this;
return new Promise(function (resolve, reject) {
var domainStr = "";
if (typeof mode === "undefined") {
mode = InsertWriteMode.APPEND;
}
if (typeof domain !== "undefined") {
domainStr = "?domain=" + domain;
}
return axios_1.default.post(_this.getHostPath() + '/collection/' + collection + "/insertData", {
data: rows
}, {
headers: {
"x-data": JSON.stringify({
"domain": domain,
"mode": mode.toString()
}),
},
maxContentLength: 100000000,
maxBodyLength: 1000000000
})
.then(function (response) {
// handle success
if (response.status == 200) {
return resolve(response.data.result);
}
reject(response.data);
})
.catch(function (error) {
reject((error.response) ? error.response.data : error);
});
});
};
ChipmunkDbClient.prototype.getAllStorages = function () {
var _this = this;
return new Promise(function (resolve, reject) {
var dir = _this.getHostPath() + '/storages';
return axios_1.default.get(dir)
.then(function (response) {
if (typeof response.data === "string") {
response.data = JSON.parse(response.data);
}
return resolve((typeof response.data.storages !== "undefined") ? response.data.storages : []);
});
});
};
ChipmunkDbClient.prototype.hasStorage = function (name) {
var _this = this;
return new Promise(function (resolve, reject) {
var dir = _this.getHostPath() + '/storages';
return axios_1.default.get(dir)
.then(function (response) {
try {
if (typeof response.data === "string") {
response.data = JSON.parse(response.data);
}
var storages = response.data.storages;
if (storages.find(function (f) { return f.document == name; })) {
return resolve(true);
}
}
catch (e) {
reject(e);
}
return resolve(false);
});
});
};
ChipmunkDbClient.prototype.getStorageData = function (s) {
var _this = this;
return new Promise(function (resolve, reject) {
var dir = _this.getHostPath() + '/storage/' + s;
return axios_1.default.get(dir)
.then(function (response) {
try {
if (typeof response.data === "string") {
response.data = JSON.parse(response.data);
}
return resolve((typeof response.data !== "undefined") ? response.data : []);
}
catch (e) {
reject(e);
}
});
});
};
ChipmunkDbClient.prototype.getStorageFiltered = function (s, filters) {
var _this = this;
return new Promise(function (resolve, reject) {
var dir = _this.getHostPath() + '/storage/' + s + "/filter";
return axios_1.default.post(dir, JSON.stringify(filters))
.then(function (response) {
try {
if (typeof response.data === "string") {
response.data = JSON.parse(response.data);
}
var data = response.data.data;
for (var _i = 0, data_1 = data; _i < data_1.length; _i++) {
var d = data_1[_i];
d.datetime = new Date(d.datetime);
}
return resolve(data);
}
catch (e) {
reject(e);
}
})
.catch(function (err) {
return reject(err);
});
});
};
return ChipmunkDbClient;
}());
exports.ChipmunkDbClient = ChipmunkDbClient;
/***/ }),
/* 2 */
/***/ (function(module, exports) {
module.exports = require("axios");
/***/ })
/******/ ]);
});
//# sourceMappingURL=index.js.map