pw-js-api
Version:
A PixelWalker Library, aims to be minimal with support for browsers.
86 lines • 7.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.queryToString = queryToString;
exports.mergeObjects = mergeObjects;
exports.isCustomPacket = isCustomPacket;
function queryToString(query) {
if (typeof query === "undefined")
return "";
let str = "";
if (query.filter) {
if (typeof query.filter !== "string") {
str += "&filter=";
const filters = Object.entries(query.filter);
for (let i = 0, len = filters.length; i < len; i++) {
const filt = filters[i];
if (typeof filt[1] === "string")
str += `${filt[0]}="${filt[1]}"`;
// boolean gets toString() to true or false so eh
else
str += `${filt[0]}=${filt[1]}`;
}
}
else
str += "&filter=" + query.filter;
}
if (query.sort) {
if (typeof query.filter !== "string") {
str += "&sort=";
// if (Array.isArray(query.sort)) {
// } else {
const sorts = Array.isArray(query.sort) ? query.sort : Object.entries(query.sort);
for (let i = 0, len = sorts.length; i < len; i++) {
const sort = sorts[i];
if (typeof sort === "string")
str += sort + ",";
else if (sort[1] === undefined)
str += sort[0] + ",";
else if (sort[1] === "ASC")
str += sort[0] + ",";
else if (sort[1] === "DESC")
str += "-" + sort[0] + ",";
}
if (sorts.length)
str = str.slice(0, -1);
// }
}
else
str += "&sort=" + query.sort;
}
return str;
}
/**
* This takes in two parameters - Object A and B.
*
* Object A will be used as the object to add properties from Object B to.
* If some of the properties in Object B are also objects, this will run recursively to ensure they are all added.
*
* Annoyingly, due to how Typescript works, the only way I could get an object with combined properties is if I return it so rip mutability.
*
* IGNORE THE LAST TWO PARAMETERS.
*/
function mergeObjects(objA, objB, depth = 0, prevObj) {
const keys = Object.keys(objB);
const obj = depth > 0 ? objA : structuredClone(objA);
for (let i = 0; i < keys.length; i++) {
const propA = objA[keys[i]];
const propB = objB[keys[i]];
if (typeof propB === "object" && propB !== null) {
if (typeof propA !== "object" || propA === null) {
obj[keys[i]] = {};
}
mergeObjects(obj[keys[i]], propB, depth + 1);
}
else
obj[keys[i]] = propB;
}
return obj;
}
// console.log(queryToString<ColWorld>({ filter: { id: "a" } }));
// console.log(queryToString<ColWorld>({ filter: { id: "a", created: "nice" } }));
// console.log(queryToString<ColWorld>({ filter: "a~b,ok=lol" }));
// console.log(queryToString<ColWorld>({ sort: ["collectionId", ["id", "ASC"], "collectionName", ["created", "DESC"], ["description"]] }));
function isCustomPacket(type) {
return type === "debug" || type === "unknown" || type === "raw";
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlzYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi91dGlsL01pc2MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSxzQ0E2Q0M7QUFZRCxvQ0FrQkM7QUFRRCx3Q0FFQztBQXJGRCxTQUFnQixhQUFhLENBQW9CLEtBQThCO0lBQzNFLElBQUksT0FBTyxLQUFLLEtBQUssV0FBVztRQUFFLE9BQU8sRUFBRSxDQUFDO0lBRTVDLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztJQUViLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2YsSUFBSSxPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbkMsR0FBRyxJQUFJLFVBQVUsQ0FBQztZQUVsQixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUU3QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ2pELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFeEIsSUFBSSxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRO29CQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztnQkFDbEUsaURBQWlEOztvQkFDNUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3hDLENBQUM7UUFDTCxDQUFDOztZQUFNLEdBQUcsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsSUFB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