@technobuddha/library
Version:
A large library of useful functions
34 lines • 3.31 kB
JavaScript
import { empty, space } from "./constants.js";
import { escapeGraphQL } from "./escape-graphql.js";
import { isArrayLike } from "./is-array-like.js";
import { isBoolean } from "./is-boolean.js";
import { isNumber } from "./is-number.js";
import { isString } from "./is-string.js";
import { zipperMerge } from "./zipper-merge.js";
export function graphQL(template, ...args) {
if (!isString(template) && isArrayLike(template) && 'raw' in template) {
return zipperMerge(template.map((t) => t.replaceAll(/[\r\n]+\s*/gu, space)), args.map((arg) => graphQL(arg)))
.flat()
.join(empty)
.trim();
}
if (isNumber(template)) {
return template.toString();
}
if (isString(template)) {
return `"${escapeGraphQL(template)}"`;
}
if (template === null) {
return 'null';
}
if (isBoolean(template)) {
return template ? 'true' : 'false';
}
if (Array.isArray(template)) {
return `[ ${template.map((a) => graphQL(a)).join(', ')} ]`;
}
return `{ ${Object.entries(template)
.map(([key, value]) => `${key}: ${graphQL(value)}`)
.join(', ')} }`;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9ncmFwaHFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFzQ2hELE1BQU0sVUFBVSxPQUFPLENBQ3JCLFFBQTZDLEVBQzdDLEdBQUcsSUFBb0I7SUFFdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ3RFLE9BQU8sV0FBVyxDQUNoQixRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUN4RCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDaEM7YUFDRSxJQUFJLEVBQUU7YUFDTixJQUFJLENBQUMsS0FBSyxDQUFDO2FBQ1gsSUFBSSxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUN2QixPQUFPLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUN2QixPQUFPLElBQUksYUFBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7SUFDeEMsQ0FBQztJQUNELElBQUksUUFBUSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3RCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUNyQyxDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDNUIsT0FBTyxLQUFLLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQzdELENBQUM7SUFDRCxPQUFPLEtBQUssTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUF3QyxDQUFDO1NBQ2pFLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsS0FBSyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztTQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztBQUNwQixDQUFDIn0=