@skbkontur/cassandra-distributed-task-queue-ui
Version:
.NET library implementing distributed task queue machinery using Apache Cassandra
47 lines • 1.54 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.QueryStringMapping = void 0;
const tslib_1 = require("tslib");
const qs_1 = tslib_1.__importDefault(require("qs"));
class QueryStringMapping {
constructor(parsers, stringifiers) {
Object.defineProperty(this, "parsers", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
Object.defineProperty(this, "stringifiers", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
this.parsers = parsers;
this.stringifiers = stringifiers;
}
parse(queryString) {
const parsedQueryString = qs_1.default.parse((queryString || "").replace(/^\?/, ""));
let result = {};
for (const parser of this.parsers) {
result = parser(result, parsedQueryString);
}
return result;
}
stringify(entity) {
if (entity === null) {
return "";
}
let parsedQueryString = {};
for (const stringifier of this.stringifiers) {
parsedQueryString = stringifier(entity, parsedQueryString);
}
const result = qs_1.default.stringify(parsedQueryString, { format: "RFC1738" });
if (result.length === 0) {
return "";
}
return "?" + result;
}
}
exports.QueryStringMapping = QueryStringMapping;
//# sourceMappingURL=QueryStringMapping.js.map
;